annotate src/fetchAndParse.ts @ 95:47d3b5a5bd5e

refactor
author drewp@bigasterisk.com
date Wed, 12 Jan 2022 22:15:13 -0800
parents
children ab7dca42afbd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
95
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
1 import { Store, Parser } from "n3";
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
2
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
3 export async function fetchAndParse(url: string): Promise<Store> {
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
4 const store = new Store();
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
5 const res = await fetch(url);
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
6 const body = await res.text();
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
7 const parser = new Parser({ format: "N3" });
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
8 await new Promise((done, rej) => {
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
9 parser.parse(body, (err, quad, prefixes) => {
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
10 if (err) {
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
11 throw err;
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
12 }
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
13 if (quad) {
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
14 store.addQuad(quad);
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
15 } else {
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
16 done(null);
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
17 }
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
18 });
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
19 });
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
20 return store;
47d3b5a5bd5e refactor
drewp@bigasterisk.com
parents:
diff changeset
21 }