Skip to content

Commit

Permalink
feat: req.hydra.resource.quadStream()
Browse files Browse the repository at this point in the history
  • Loading branch information
tpluscode committed Jan 14, 2021
1 parent d664e3d commit addb861
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
5 changes: 4 additions & 1 deletion StoreResourceLoader.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const clownface = require('clownface')
const ns = require('@tpluscode/rdf-ns-builders')
const { fromStream } = require('rdf-dataset-ext')
const { fromStream, toStream } = require('rdf-dataset-ext')
const rdf = { ...require('@rdfjs/data-model'), ...require('@rdfjs/dataset') }
const TermSet = require('@rdfjs/term-set')

Expand All @@ -24,6 +24,9 @@ class StoreResourceLoader {
async dataset () {
return dataset
},
quadStream () {
return toStream(dataset)
},
types
}
}
Expand Down
17 changes: 17 additions & 0 deletions test/StoreResourceLoader.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const { strictEqual } = require('assert')
const { resolve } = require('path')
const { describe, it } = require('mocha')
const { fromStream } = require('rdf-dataset-ext')
const rdf = { ...require('@rdfjs/data-model'), ...require('@rdfjs/dataset') }
const FlatMultiFileStore = require('rdf-store-fs/FlatMultiFileStore')
const StoreResourceLoader = require('../StoreResourceLoader')
Expand Down Expand Up @@ -38,6 +39,22 @@ describe('StoreResourceLoader', () => {
strictEqual((await resource.dataset()).size, 2)
strictEqual([...resource.types][0].value, 'http://example.org/Class')
})

it('attaches quadStream getter to resource', async () => {
const term = rdf.namedNode('http://example.org/')
const store = new FlatMultiFileStore({
baseIRI: 'http://example.org/',
path: resolve(__dirname, 'support/store')
})
const loader = new StoreResourceLoader({ store })

const resource = await loader.load(term)
const dataset = await fromStream(rdf.dataset(), resource.quadStream())

strictEqual(term.equals(resource.term), true)
strictEqual(dataset.size, 2)
strictEqual([...resource.types][0].value, 'http://example.org/Class')
})
})

describe('.forClassOperation', () => {
Expand Down

0 comments on commit addb861

Please sign in to comment.