comparison src/json_ld_quads.ts @ 26:7fe46400f04b

jsonld module now does async
author drewp@bigasterisk.com
date Fri, 13 Dec 2019 23:52:43 -0800
parents e90d9021c6a0
children 3d8b98e9c01d
comparison
equal deleted inserted replaced
25:86270a59ae7b 26:7fe46400f04b
28 }); 28 });
29 } 29 }
30 30
31 export async function eachJsonLdQuad(jsonLdObj: object, onQuad: (q: Quad) => void) { 31 export async function eachJsonLdQuad(jsonLdObj: object, onQuad: (q: Quad) => void) {
32 32
33 return new Promise(function (resolve, reject) { 33 const expanded = await jsonld.expand(jsonLdObj);
34 34
35 jsonld.expand(jsonLdObj, function onExpand(err, expanded: JsonLd) { 35 (expanded as JsonLdArray).forEach(function (g: JsonLd) {
36 if (err) { 36 var graph = (g as { '@id': string })['@id'];
37 reject(err); 37 var graphNode = namedNode(graph);
38 (g as { '@graph': JsonLdArray })['@graph'].forEach(function (subj: { [predOrId: string]: any; }) {
39 const subjNode = namedNode(subj['@id']);
40 for (let pred in subj) {
41 if (pred === '@id') {
42 continue;
43 }
44 _emitQuad(onQuad, subjNode, pred, subj, graphNode);
38 } 45 }
39 (expanded as JsonLdArray).forEach(function (g: JsonLd) {
40 var graph = (g as { '@id': string })['@id'];
41 var graphNode = namedNode(graph);
42 (g as { '@graph': JsonLdArray })['@graph'].forEach(function (subj: { [predOrId: string]: any; }) {
43 console.log('process subj', subj)
44 const subjNode = namedNode(subj['@id']);
45 for (let pred in subj) {
46 if (pred === '@id') {
47 continue;
48 }
49 console.log('emit with', pred);
50 _emitQuad(onQuad, subjNode, pred, subj, graphNode);
51 }
52 });
53 });
54 resolve();
55 }); 46 });
56 }); 47 });
57 } 48 }
58 ;