annotate src/fetchAndParse.ts @ 102:ab7dca42afbd

rewrite ViewConfig
author drewp@bigasterisk.com
date Fri, 11 Mar 2022 23:19:35 -0800
parents 47d3b5a5bd5e
children f12feced00ce
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
102
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
1 import { Store, Parser, Quad, Prefixes } from "n3";
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
2
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
3 export async function fetchAndParse(
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
4 url: string,
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
5 store?: Store
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
6 ): Promise<Store> {
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
7 const res = await fetch(url);
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
8 const body = await res.text();
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
9 return n3Graph(body, store);
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
10 }
95
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
11
102
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
12 export async function n3Graph(n3: string, store?: Store): Promise<Store> {
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
13 if (store === undefined) {
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
14 store = new Store();
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
15 }
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
16
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
17 const parser = new Parser({ format: "N3" });
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
18 return new Promise((res, rej) => {
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
19 parser.parse(n3, (error, quad: Quad, prefixes: Prefixes) => {
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
20 if (quad) {
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
21 store!.addQuad(quad);
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
22 } else {
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
23 res(store!);
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
24 }
95
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
25 });
102
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
26 });
95
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
27 }