annotate src/layout/fetchAndParse.ts @ 124:e26daf747e19

0.0.8
author drewp@bigasterisk.com
date Sun, 20 Mar 2022 16:40:51 -0700
parents 2468f2227d22
children
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
103
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 102
diff changeset
17 const parser = new Parser({ format: "TriG" });
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 102
diff changeset
18 await new Promise((res, rej) => {
102
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
19 parser.parse(n3, (error, quad: Quad, prefixes: Prefixes) => {
103
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 102
diff changeset
20 if (error) rej(error);
102
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
21 if (quad) {
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
22 store!.addQuad(quad);
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
23 } else {
103
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 102
diff changeset
24 res(undefined);
102
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
25 }
95
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
26 });
102
ab7dca42afbd rewrite ViewConfig
drewp@bigasterisk.com
parents: 95
diff changeset
27 });
103
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 102
diff changeset
28
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 102
diff changeset
29 return store;
95
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
30 }