Mercurial > code > home > repos > streamed-graph
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 ; |