From 519e912a711e263929ddd1a3d6dab97449d79291 Mon Sep 17 00:00:00 2001 From: Victor Felder Date: Tue, 2 Mar 2021 10:14:15 +0100 Subject: [PATCH 1/4] refactor: move operations to ESM --- packages/rdf/.github/workflows/test.yml | 31 ++++++++ packages/rdf/CHANGELOG.md | 3 + packages/rdf/cube.js | 6 +- packages/rdf/lib/PatternMatcher.js | 4 +- packages/rdf/lib/cube/buildCubeShape/Cube.js | 12 +-- .../rdf/lib/cube/buildCubeShape/Dimension.js | 12 +-- packages/rdf/lib/cube/buildCubeShape/index.js | 18 ++--- .../rdf/lib/cube/buildCubeShape/namespaces.js | 16 ++-- packages/rdf/lib/cube/toObservation.js | 20 ++--- packages/rdf/lib/dateToId.js | 2 +- packages/rdf/lib/urlJoin.js | 6 +- packages/rdf/manifest.ttl | 4 +- packages/rdf/mapMatch.js | 10 +-- packages/rdf/package.json | 7 +- packages/rdf/setGraph.js | 6 +- packages/rdf/test/PatternMatcher.test.js | 76 +++++++++---------- packages/rdf/test/cube.test.js | 4 +- packages/rdf/test/cube/buildCubeShape.test.js | 20 ++--- packages/rdf/test/cube/toObservation.test.js | 22 +++--- packages/rdf/test/mapMatch.test.js | 16 ++-- packages/rdf/test/setGraph.test.js | 16 ++-- .../test/support/createObservationsStream.js | 10 +-- .../test/support/datasetStreamToClownface.js | 8 +- packages/rdf/test/support/namespaces.js | 22 +++--- 24 files changed, 195 insertions(+), 156 deletions(-) create mode 100644 packages/rdf/.github/workflows/test.yml create mode 100644 packages/rdf/CHANGELOG.md diff --git a/packages/rdf/.github/workflows/test.yml b/packages/rdf/.github/workflows/test.yml new file mode 100644 index 00000000..c8426cfb --- /dev/null +++ b/packages/rdf/.github/workflows/test.yml @@ -0,0 +1,31 @@ +name: Test + +on: [push, pull_request] + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + node: ['14', '15' ] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node }} + - run: npm install + - run: npm test + - name: Codecov + uses: codecov/codecov-action@v1.0.5 + with: + token: ${{ secrets.CODECOV_TOKEN }} + + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: '14' + - run: npm install + - run: npm run lint diff --git a/packages/rdf/CHANGELOG.md b/packages/rdf/CHANGELOG.md new file mode 100644 index 00000000..a7e934ca --- /dev/null +++ b/packages/rdf/CHANGELOG.md @@ -0,0 +1,3 @@ +# v1.0.0 + +- Moved to JavaScript modules diff --git a/packages/rdf/cube.js b/packages/rdf/cube.js index f4a85677..56767a9a 100644 --- a/packages/rdf/cube.js +++ b/packages/rdf/cube.js @@ -1,7 +1,7 @@ -const buildCubeShape = require('./lib/cube/buildCubeShape') -const toObservation = require('./lib/cube/toObservation') +import buildCubeShape from './lib/cube/buildCubeShape.js' +import toObservation from './lib/cube/toObservation.js' -module.exports = { +export { buildCubeShape, toObservation } diff --git a/packages/rdf/lib/PatternMatcher.js b/packages/rdf/lib/PatternMatcher.js index 774098d3..a21093d7 100644 --- a/packages/rdf/lib/PatternMatcher.js +++ b/packages/rdf/lib/PatternMatcher.js @@ -1,4 +1,4 @@ -const TermSet = require('@rdfjs/term-set') +import TermSet from '@rdfjs/term-set' class PatternMatcher { constructor ({ subject, predicate, object, graph } = {}) { @@ -27,4 +27,4 @@ class PatternMatcher { } } -module.exports = PatternMatcher +export default PatternMatcher diff --git a/packages/rdf/lib/cube/buildCubeShape/Cube.js b/packages/rdf/lib/cube/buildCubeShape/Cube.js index 8216bc55..eb56803b 100644 --- a/packages/rdf/lib/cube/buildCubeShape/Cube.js +++ b/packages/rdf/lib/cube/buildCubeShape/Cube.js @@ -1,8 +1,8 @@ -const clownface = require('clownface') -const rdf = require('rdf-ext') -const TermMap = require('@rdfjs/term-map') -const Dimension = require('./Dimension') -const ns = require('./namespaces') +import clownface from 'clownface' +import rdf from 'rdf-ext' +import TermMap from '@rdfjs/term-map' +import Dimension from './Dimension.js' +import * as ns from './namespaces.js' class Cube { constructor ({ term, observationSet, shape }) { @@ -51,4 +51,4 @@ class Cube { } } -module.exports = Cube +export default Cube diff --git a/packages/rdf/lib/cube/buildCubeShape/Dimension.js b/packages/rdf/lib/cube/buildCubeShape/Dimension.js index e0012919..8a456058 100644 --- a/packages/rdf/lib/cube/buildCubeShape/Dimension.js +++ b/packages/rdf/lib/cube/buildCubeShape/Dimension.js @@ -1,8 +1,8 @@ -const clownface = require('clownface') -const rdf = require('rdf-ext') -const TermMap = require('@rdfjs/term-map') -const TermSet = require('@rdfjs/term-set') -const ns = require('./namespaces') +import clownface from 'clownface' +import rdf from 'rdf-ext' +import TermMap from '@rdfjs/term-map' +import TermSet from '@rdfjs/term-set' +import * as ns from './namespaces.js' const datatypeParsers = new TermMap([ [ns.xsd.date, term => new Date(term.value)], @@ -99,4 +99,4 @@ class Dimension { } } -module.exports = Dimension +export default Dimension diff --git a/packages/rdf/lib/cube/buildCubeShape/index.js b/packages/rdf/lib/cube/buildCubeShape/index.js index 1c489fb7..1bd1fc44 100644 --- a/packages/rdf/lib/cube/buildCubeShape/index.js +++ b/packages/rdf/lib/cube/buildCubeShape/index.js @@ -1,11 +1,11 @@ -const clownface = require('clownface') -const TermMap = require('@rdfjs/term-map') -const TermSet = require('@rdfjs/term-set') -const rdf = require('rdf-ext') -const { Transform } = require('readable-stream') -const Cube = require('./Cube') -const ns = require('./namespaces') -const urlJoin = require('../../urlJoin') +import clownface from 'clownface' +import TermMap from '@rdfjs/term-map' +import TermSet from '@rdfjs/term-set' +import rdf from 'rdf-ext' +import { Transform } from 'readable-stream' +import Cube from './Cube.js' +import * as ns from './namespaces.js' +import urlJoin from '../../urlJoin.js' function defaultCube ({ observationSet }) { const observationSetIri = observationSet && observationSet.value @@ -84,4 +84,4 @@ function buildCubeShape ({ excludeValuesOf } = {}) { return new CubeShapeBuilder({ excludeValuesOf }) } -module.exports = buildCubeShape +export default buildCubeShape diff --git a/packages/rdf/lib/cube/buildCubeShape/namespaces.js b/packages/rdf/lib/cube/buildCubeShape/namespaces.js index fdc5baaf..d39b3ee4 100644 --- a/packages/rdf/lib/cube/buildCubeShape/namespaces.js +++ b/packages/rdf/lib/cube/buildCubeShape/namespaces.js @@ -1,11 +1,9 @@ -const namespace = require('@rdfjs/namespace') +import namespace from '@rdfjs/namespace' -const ns = { - cube: namespace('https://cube.link/'), - rdf: namespace('http://www.w3.org/1999/02/22-rdf-syntax-ns#'), - rdfs: namespace('http://www.w3.org/2000/01/rdf-schema#'), - sh: namespace('http://www.w3.org/ns/shacl#'), - xsd: namespace('http://www.w3.org/2001/XMLSchema#') -} +const cube = namespace('https://cube.link/') +const rdf = namespace('http://www.w3.org/1999/02/22-rdf-syntax-ns#') +const rdfs = namespace('http://www.w3.org/2000/01/rdf-schema#') +const sh = namespace('http://www.w3.org/ns/shacl#') +const xsd = namespace('http://www.w3.org/2001/XMLSchema#') -module.exports = ns +export { cube, rdf, rdfs, sh, xsd } diff --git a/packages/rdf/lib/cube/toObservation.js b/packages/rdf/lib/cube/toObservation.js index 93008a5e..32f037c9 100644 --- a/packages/rdf/lib/cube/toObservation.js +++ b/packages/rdf/lib/cube/toObservation.js @@ -1,12 +1,12 @@ -const { URL } = require('url') -const clownface = require('clownface') -const namespace = require('@rdfjs/namespace') -const TermMap = require('@rdfjs/term-map') -const TermSet = require('@rdfjs/term-set') -const rdf = require('rdf-ext') -const { Transform } = require('readable-stream') -const dateToId = require('../dateToId') -const urlJoin = require('../urlJoin') +import { URL } from 'url' +import clownface from 'clownface' +import namespace from '@rdfjs/namespace' +import TermMap from '@rdfjs/term-map' +import TermSet from '@rdfjs/term-set' +import rdf from 'rdf-ext' +import { Transform } from 'readable-stream' +import dateToId from '../dateToId.js' +import urlJoin from '../urlJoin.js' const ns = { cube: namespace('https://cube.link/'), @@ -241,4 +241,4 @@ function toObservation ({ return new ToObservation({ blacklist, dimensions, observation, observations, observer, useDate, dateProperty, useIndex }) } -module.exports = toObservation +export default toObservation diff --git a/packages/rdf/lib/dateToId.js b/packages/rdf/lib/dateToId.js index 965b9f5c..cb8016ed 100644 --- a/packages/rdf/lib/dateToId.js +++ b/packages/rdf/lib/dateToId.js @@ -6,4 +6,4 @@ function dateToId (date) { // [^0-9Z] } -module.exports = dateToId +export default dateToId diff --git a/packages/rdf/lib/urlJoin.js b/packages/rdf/lib/urlJoin.js index 1ffaf413..65bd8fc4 100644 --- a/packages/rdf/lib/urlJoin.js +++ b/packages/rdf/lib/urlJoin.js @@ -1,5 +1,5 @@ -const { join } = require('path') -const { URL } = require('url') +import { join } from 'path' +import { URL } from 'url' function urlJoin (base, part) { const url = new URL(base) @@ -9,4 +9,4 @@ function urlJoin (base, part) { return url.toString() } -module.exports = urlJoin +export default urlJoin diff --git a/packages/rdf/manifest.ttl b/packages/rdf/manifest.ttl index 3535a490..57e40827 100644 --- a/packages/rdf/manifest.ttl +++ b/packages/rdf/manifest.ttl @@ -7,7 +7,7 @@ rdfs:label "Map (RDF/JS Quad)"; rdfs:comment "Calls a map function only for quads matching the given triple pattern."; code:implementedBy [ a code:EcmaScript; - code:link + code:link ]. a p:Operation, p:WritableObjectMode, p:ReadableObjectMode; @@ -28,5 +28,5 @@ rdfs:label "Set Graph"; rdfs:comment "Sets the graph of all quads to the given fixed value."; code:implementedBy [ a code:EcmaScript; - code:link + code:link ]. diff --git a/packages/rdf/mapMatch.js b/packages/rdf/mapMatch.js index 00a0f630..99a922e5 100644 --- a/packages/rdf/mapMatch.js +++ b/packages/rdf/mapMatch.js @@ -1,8 +1,8 @@ -const rdf = require('rdf-ext') -const { Transform } = require('readable-stream') -const PatternMatcher = require('./lib/PatternMatcher') +import rdf from 'rdf-ext' +import { Transform } from 'readable-stream' +import PatternMatcher from './lib/PatternMatcher.js' -function mapMatch ({ map, subject, predicate, object, graph }) { +export default function mapMatch ({ map, subject, predicate, object, graph }) { const matcher = new PatternMatcher({ subject, predicate, object, graph }) return new Transform({ @@ -21,5 +21,3 @@ function mapMatch ({ map, subject, predicate, object, graph }) { } }) } - -module.exports = mapMatch diff --git a/packages/rdf/package.json b/packages/rdf/package.json index 104bf070..11656fcb 100644 --- a/packages/rdf/package.json +++ b/packages/rdf/package.json @@ -3,8 +3,11 @@ "version": "0.2.4", "description": "RDF support for Linked Data pipelines", "main": "index.js", + "type": "module", "scripts": { - "test": "standard && nyc --reporter=lcov mocha" + "coverage": "codecov", + "lint": "standard", + "test": "nyc --reporter=lcov mocha" }, "repository": { "type": "git", @@ -28,7 +31,9 @@ }, "devDependencies": { "@rdfjs/to-ntriples": "^1.0.2", + "codecov": "^3.6.5", "get-stream": "^6.0.1", + "into-stream": "^5.1.1", "isstream": "^0.1.2", "mocha": "^8.4.0", "nyc": "^15.0.1", diff --git a/packages/rdf/setGraph.js b/packages/rdf/setGraph.js index fbb5ef38..399736d7 100644 --- a/packages/rdf/setGraph.js +++ b/packages/rdf/setGraph.js @@ -1,5 +1,5 @@ -const rdf = require('rdf-ext') -const TripleToQuadTransform = require('rdf-transform-triple-to-quad') +import rdf from 'rdf-ext' +import TripleToQuadTransform from 'rdf-transform-triple-to-quad' function setGraph (graph) { const iri = (graph && graph.value) || (graph && graph.toString()) || '' @@ -11,4 +11,4 @@ function setGraph (graph) { return new TripleToQuadTransform(rdf.namedNode(iri), { factory: rdf }) } -module.exports = setGraph +export default setGraph diff --git a/packages/rdf/test/PatternMatcher.test.js b/packages/rdf/test/PatternMatcher.test.js index 6fa6d0ae..0cbb7ec8 100644 --- a/packages/rdf/test/PatternMatcher.test.js +++ b/packages/rdf/test/PatternMatcher.test.js @@ -1,8 +1,8 @@ -const { strictEqual } = require('assert') -const { describe, it } = require('mocha') -const rdf = require('rdf-ext') -const ns = require('./support/namespaces') -const PatternMatcher = require('../lib/PatternMatcher') +import { strictEqual } from 'assert' +import { describe, it } from 'mocha' +import rdf from 'rdf-ext' +import { ex } from './support/namespaces.js' +import PatternMatcher from '../lib/PatternMatcher.js' describe('PatternMatcher', () => { it('should be a constructor', () => { @@ -10,10 +10,10 @@ describe('PatternMatcher', () => { }) it('should assign the given terms to the pattern object', () => { - const subject = ns.ex.subject - const predicate = ns.ex.predicate - const object = ns.ex.object - const graph = ns.ex.graph + const subject = ex.subject + const predicate = ex.predicate + const object = ex.object + const graph = ex.graph const matcher = new PatternMatcher({ subject, predicate, object, graph }) @@ -24,14 +24,14 @@ describe('PatternMatcher', () => { }) it('should assign the given iterable to the pattern object', () => { - const subject1 = ns.ex.subject1 - const subject2 = ns.ex.subject2 - const predicate1 = ns.ex.predicate1 - const predicate2 = ns.ex.predicate2 - const object1 = ns.ex.object1 - const object2 = ns.ex.object2 - const graph1 = ns.ex.graph1 - const graph2 = ns.ex.graph2 + const subject1 = ex.subject1 + const subject2 = ex.subject2 + const predicate1 = ex.predicate1 + const predicate2 = ex.predicate2 + const object1 = ex.object1 + const object2 = ex.object2 + const graph1 = ex.graph1 + const graph2 = ex.graph2 const matcher = new PatternMatcher({ subject: [subject1, subject2], @@ -58,23 +58,23 @@ describe('PatternMatcher', () => { }) it('should return false if the quad doesn\'t match the pattern', () => { - const subject = ns.ex.subject - const predicate = ns.ex.predicate - const object = ns.ex.object - const graph = ns.ex.graph + const subject = ex.subject + const predicate = ex.predicate + const object = ex.object + const graph = ex.graph const matcher = new PatternMatcher({ subject, predicate, object, graph }) - const result = matcher.test(rdf.quad(subject, predicate, object, ns.ex.graph1)) + const result = matcher.test(rdf.quad(subject, predicate, object, ex.graph1)) strictEqual(result, false) }) it('should return true if the subject matches', () => { - const subject = ns.ex.subject - const predicate = ns.ex.predicate - const object = ns.ex.object - const graph = ns.ex.graph + const subject = ex.subject + const predicate = ex.predicate + const object = ex.object + const graph = ex.graph const matcher = new PatternMatcher({ subject }) @@ -84,10 +84,10 @@ describe('PatternMatcher', () => { }) it('should return true if the predicate matches', () => { - const subject = ns.ex.subject - const predicate = ns.ex.predicate - const object = ns.ex.object - const graph = ns.ex.graph + const subject = ex.subject + const predicate = ex.predicate + const object = ex.object + const graph = ex.graph const matcher = new PatternMatcher({ predicate }) @@ -97,10 +97,10 @@ describe('PatternMatcher', () => { }) it('should return true if the object matches', () => { - const subject = ns.ex.subject - const predicate = ns.ex.predicate - const object = ns.ex.object - const graph = ns.ex.graph + const subject = ex.subject + const predicate = ex.predicate + const object = ex.object + const graph = ex.graph const matcher = new PatternMatcher({ object }) @@ -110,10 +110,10 @@ describe('PatternMatcher', () => { }) it('should return true if the graph matches', () => { - const subject = ns.ex.subject - const predicate = ns.ex.predicate - const object = ns.ex.object - const graph = ns.ex.graph + const subject = ex.subject + const predicate = ex.predicate + const object = ex.object + const graph = ex.graph const matcher = new PatternMatcher({ graph }) diff --git a/packages/rdf/test/cube.test.js b/packages/rdf/test/cube.test.js index eaf67231..e14e7ce2 100644 --- a/packages/rdf/test/cube.test.js +++ b/packages/rdf/test/cube.test.js @@ -1,2 +1,2 @@ -require('./cube/buildCubeShape.test') -require('./cube/toObservation.test') +import './cube/buildCubeShape.test.js' +import './cube/toObservation.test.js' diff --git a/packages/rdf/test/cube/buildCubeShape.test.js b/packages/rdf/test/cube/buildCubeShape.test.js index a02ad3dc..fe7e3ed4 100644 --- a/packages/rdf/test/cube/buildCubeShape.test.js +++ b/packages/rdf/test/cube/buildCubeShape.test.js @@ -1,13 +1,13 @@ -const { deepStrictEqual, strictEqual } = require('assert') -const TermSet = require('@rdfjs/term-set') -const { termToNTriples: toNT } = require('@rdfjs/to-ntriples') -const { isDuplex } = require('isstream') -const { describe, it } = require('mocha') -const rdf = require('rdf-ext') -const createObservationsStream = require('../support/createObservationsStream') -const datasetStreamToClownface = require('../support/datasetStreamToClownface') -const ns = require('../support/namespaces') -const buildCubeShape = require('../../lib/cube/buildCubeShape') +import { deepStrictEqual, strictEqual } from 'assert' +import TermSet from '@rdfjs/term-set' +import { termToNTriples as toNT } from '@rdfjs/to-ntriples' +import { isDuplex } from 'isstream' +import { describe, it } from 'mocha' +import rdf from 'rdf-ext' +import createObservationsStream from '../support/createObservationsStream.js' +import datasetStreamToClownface from '../support/datasetStreamToClownface.js' +import * as ns from '../support/namespaces.js' +import buildCubeShape from '../../lib/cube/buildCubeShape/index.js' function checkMinMax (result, min, max) { const propertyShape = result.has(ns.sh.path, ns.ex.property) diff --git a/packages/rdf/test/cube/toObservation.test.js b/packages/rdf/test/cube/toObservation.test.js index 2f84e21f..b7a33645 100644 --- a/packages/rdf/test/cube/toObservation.test.js +++ b/packages/rdf/test/cube/toObservation.test.js @@ -1,14 +1,14 @@ -const { rejects, strictEqual } = require('assert') -const { termToNTriples: toNT } = require('@rdfjs/to-ntriples') -const clownface = require('clownface') -const getStream = require('get-stream') -const { isDuplex } = require('isstream') -const { describe, it } = require('mocha') -const rdf = require('rdf-ext') -const { Readable } = require('readable-stream') -const ns = require('../support/namespaces') -const dateToId = require('../../lib/dateToId') -const toObservation = require('../../lib/cube/toObservation') +import { rejects, strictEqual } from 'assert' +import { termToNTriples as toNT } from '@rdfjs/to-ntriples' +import clownface from 'clownface' +import getStream from 'get-stream' +import { isDuplex } from 'isstream' +import { describe, it } from 'mocha' +import rdf from 'rdf-ext' +import { Readable } from 'readable-stream' +import * as ns from '../support/namespaces.js' +import dateToId from '../../lib/dateToId.js' +import toObservation from '../../lib/cube/toObservation.js' function createMeasure ({ term = ns.ex('topic/a') } = {}) { return clownface({ dataset: rdf.dataset(), term }) diff --git a/packages/rdf/test/mapMatch.test.js b/packages/rdf/test/mapMatch.test.js index c5bd0a80..883b4ec8 100644 --- a/packages/rdf/test/mapMatch.test.js +++ b/packages/rdf/test/mapMatch.test.js @@ -1,11 +1,11 @@ -const { strictEqual } = require('assert') -const getStream = require('get-stream') -const { isDuplex } = require('isstream') -const { describe, it } = require('mocha') -const rdf = require('rdf-ext') -const { Readable } = require('readable-stream') -const ns = require('./support/namespaces') -const mapMatch = require('../mapMatch') +import { strictEqual } from 'assert' +import getStream from 'get-stream' +import { isDuplex } from 'isstream' +import { describe, it } from 'mocha' +import rdf from 'rdf-ext' +import { Readable } from 'readable-stream' +import * as ns from './support/namespaces.js' +import mapMatch from '../mapMatch.js' describe('mapMatch', () => { it('should be a factory', () => { diff --git a/packages/rdf/test/setGraph.test.js b/packages/rdf/test/setGraph.test.js index 2a94d934..f5739531 100644 --- a/packages/rdf/test/setGraph.test.js +++ b/packages/rdf/test/setGraph.test.js @@ -1,11 +1,11 @@ -const { strictEqual } = require('assert') -const getStream = require('get-stream') -const { isDuplex } = require('isstream') -const { describe, it } = require('mocha') -const rdf = require('rdf-ext') -const { Readable } = require('readable-stream') -const ns = require('./support/namespaces') -const setGraph = require('../setGraph') +import { strictEqual } from 'assert' +import getStream from 'get-stream' +import { isDuplex } from 'isstream' +import { describe, it } from 'mocha' +import rdf from 'rdf-ext' +import { Readable } from 'readable-stream' +import * as ns from './support/namespaces.js' +import setGraph from '../setGraph.js' describe('setGraph', () => { it('should be a factory', () => { diff --git a/packages/rdf/test/support/createObservationsStream.js b/packages/rdf/test/support/createObservationsStream.js index 39529086..5863178d 100644 --- a/packages/rdf/test/support/createObservationsStream.js +++ b/packages/rdf/test/support/createObservationsStream.js @@ -1,7 +1,7 @@ -const clownface = require('clownface') -const rdf = require('rdf-ext') -const { Readable } = require('readable-stream') -const ns = require('./namespaces') +import clownface from 'clownface' +import rdf from 'rdf-ext' +import { Readable } from 'readable-stream' +import * as ns from './namespaces.js' function createObservationsStream ({ observations = [{ [ns.ex.property.value]: rdf.literal('test') }] } = {}) { const datasets = [] @@ -25,4 +25,4 @@ function createObservationsStream ({ observations = [{ [ns.ex.property.value]: r return Readable.from(datasets) } -module.exports = createObservationsStream +export default createObservationsStream diff --git a/packages/rdf/test/support/datasetStreamToClownface.js b/packages/rdf/test/support/datasetStreamToClownface.js index b8e54b7d..90b49792 100644 --- a/packages/rdf/test/support/datasetStreamToClownface.js +++ b/packages/rdf/test/support/datasetStreamToClownface.js @@ -1,6 +1,6 @@ -const clownface = require('clownface') -const getStream = require('get-stream') -const rdf = require('rdf-ext') +import clownface from 'clownface' +import getStream from 'get-stream' +import rdf from 'rdf-ext' async function datasetStreamToClownface (stream) { const datasets = await getStream.array(stream) @@ -8,4 +8,4 @@ async function datasetStreamToClownface (stream) { return clownface({ dataset: datasets.reduce((all, current) => all.addAll(current), rdf.dataset()) }) } -module.exports = datasetStreamToClownface +export default datasetStreamToClownface diff --git a/packages/rdf/test/support/namespaces.js b/packages/rdf/test/support/namespaces.js index eaf8df1c..0a2e8923 100644 --- a/packages/rdf/test/support/namespaces.js +++ b/packages/rdf/test/support/namespaces.js @@ -1,11 +1,15 @@ -const namespace = require('@rdfjs/namespace') +import namespace from '@rdfjs/namespace' -const ns = { - cube: namespace('https://cube.link/'), - ex: namespace('http://example.org/'), - rdf: namespace('http://www.w3.org/1999/02/22-rdf-syntax-ns#'), - sh: namespace('http://www.w3.org/ns/shacl#'), - xsd: namespace('http://www.w3.org/2001/XMLSchema#') -} +const cube = namespace('https://cube.link/') +const ex = namespace('http://example.org/') +const rdf = namespace('http://www.w3.org/1999/02/22-rdf-syntax-ns#') +const sh = namespace('http://www.w3.org/ns/shacl#') +const xsd = namespace('http://www.w3.org/2001/XMLSchema#') -module.exports = ns +export { + cube, + ex, + rdf, + sh, + xsd +} From cc99d46d5ecb8649eb0d25616d18e2aef4cbca90 Mon Sep 17 00:00:00 2001 From: bergi Date: Tue, 29 Jun 2021 20:24:00 +0200 Subject: [PATCH 2/4] fix: fixed buildCubeShape import path --- packages/rdf/cube.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rdf/cube.js b/packages/rdf/cube.js index 56767a9a..2954cc76 100644 --- a/packages/rdf/cube.js +++ b/packages/rdf/cube.js @@ -1,4 +1,4 @@ -import buildCubeShape from './lib/cube/buildCubeShape.js' +import buildCubeShape from './lib/cube/buildCubeShape/index.js' import toObservation from './lib/cube/toObservation.js' export { From e5d1beefeaadf9755eae59658bc00fdab60e8cac Mon Sep 17 00:00:00 2001 From: bergi Date: Tue, 29 Jun 2021 20:47:27 +0200 Subject: [PATCH 3/4] chore: switched to stricter-standard, updated deps, ci cleanup --- packages/rdf/.github/workflows/ci.yaml | 2 +- packages/rdf/.github/workflows/test.yml | 31 ------------------- packages/rdf/.gitignore | 1 - packages/rdf/lib/cube/buildCubeShape/Cube.js | 2 +- .../rdf/lib/cube/buildCubeShape/Dimension.js | 4 +-- packages/rdf/lib/cube/buildCubeShape/index.js | 4 +-- packages/rdf/lib/cube/toObservation.js | 2 +- packages/rdf/package.json | 19 ++++++------ packages/rdf/test/PatternMatcher.test.js | 2 +- packages/rdf/test/cube/buildCubeShape.test.js | 2 +- packages/rdf/test/cube/toObservation.test.js | 4 +-- packages/rdf/test/mapMatch.test.js | 2 +- packages/rdf/test/setGraph.test.js | 2 +- 13 files changed, 23 insertions(+), 54 deletions(-) delete mode 100644 packages/rdf/.github/workflows/test.yml diff --git a/packages/rdf/.github/workflows/ci.yaml b/packages/rdf/.github/workflows/ci.yaml index 6e535280..62ca681b 100644 --- a/packages/rdf/.github/workflows/ci.yaml +++ b/packages/rdf/.github/workflows/ci.yaml @@ -6,7 +6,6 @@ jobs: strategy: matrix: node: - - '12' - '14' - '16' steps: @@ -16,3 +15,4 @@ jobs: node-version: ${{ matrix.node }} - run: npm install - run: npm test + - run: npm run coverage diff --git a/packages/rdf/.github/workflows/test.yml b/packages/rdf/.github/workflows/test.yml deleted file mode 100644 index c8426cfb..00000000 --- a/packages/rdf/.github/workflows/test.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Test - -on: [push, pull_request] - -jobs: - test: - runs-on: ubuntu-latest - strategy: - matrix: - node: ['14', '15' ] - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node }} - - run: npm install - - run: npm test - - name: Codecov - uses: codecov/codecov-action@v1.0.5 - with: - token: ${{ secrets.CODECOV_TOKEN }} - - lint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: '14' - - run: npm install - - run: npm run lint diff --git a/packages/rdf/.gitignore b/packages/rdf/.gitignore index c3c7ad97..48114008 100644 --- a/packages/rdf/.gitignore +++ b/packages/rdf/.gitignore @@ -1,4 +1,3 @@ -.nyc_output coverage node_modules package-lock.json diff --git a/packages/rdf/lib/cube/buildCubeShape/Cube.js b/packages/rdf/lib/cube/buildCubeShape/Cube.js index eb56803b..f3d4902f 100644 --- a/packages/rdf/lib/cube/buildCubeShape/Cube.js +++ b/packages/rdf/lib/cube/buildCubeShape/Cube.js @@ -1,6 +1,6 @@ +import TermMap from '@rdfjs/term-map' import clownface from 'clownface' import rdf from 'rdf-ext' -import TermMap from '@rdfjs/term-map' import Dimension from './Dimension.js' import * as ns from './namespaces.js' diff --git a/packages/rdf/lib/cube/buildCubeShape/Dimension.js b/packages/rdf/lib/cube/buildCubeShape/Dimension.js index 8a456058..2035b310 100644 --- a/packages/rdf/lib/cube/buildCubeShape/Dimension.js +++ b/packages/rdf/lib/cube/buildCubeShape/Dimension.js @@ -1,7 +1,7 @@ -import clownface from 'clownface' -import rdf from 'rdf-ext' import TermMap from '@rdfjs/term-map' import TermSet from '@rdfjs/term-set' +import clownface from 'clownface' +import rdf from 'rdf-ext' import * as ns from './namespaces.js' const datatypeParsers = new TermMap([ diff --git a/packages/rdf/lib/cube/buildCubeShape/index.js b/packages/rdf/lib/cube/buildCubeShape/index.js index 1bd1fc44..c416d2ef 100644 --- a/packages/rdf/lib/cube/buildCubeShape/index.js +++ b/packages/rdf/lib/cube/buildCubeShape/index.js @@ -1,11 +1,11 @@ -import clownface from 'clownface' import TermMap from '@rdfjs/term-map' import TermSet from '@rdfjs/term-set' +import clownface from 'clownface' import rdf from 'rdf-ext' import { Transform } from 'readable-stream' +import urlJoin from '../../urlJoin.js' import Cube from './Cube.js' import * as ns from './namespaces.js' -import urlJoin from '../../urlJoin.js' function defaultCube ({ observationSet }) { const observationSetIri = observationSet && observationSet.value diff --git a/packages/rdf/lib/cube/toObservation.js b/packages/rdf/lib/cube/toObservation.js index 32f037c9..2c9f34f5 100644 --- a/packages/rdf/lib/cube/toObservation.js +++ b/packages/rdf/lib/cube/toObservation.js @@ -1,8 +1,8 @@ import { URL } from 'url' -import clownface from 'clownface' import namespace from '@rdfjs/namespace' import TermMap from '@rdfjs/term-map' import TermSet from '@rdfjs/term-set' +import clownface from 'clownface' import rdf from 'rdf-ext' import { Transform } from 'readable-stream' import dateToId from '../dateToId.js' diff --git a/packages/rdf/package.json b/packages/rdf/package.json index 11656fcb..0002dfb1 100644 --- a/packages/rdf/package.json +++ b/packages/rdf/package.json @@ -6,8 +6,7 @@ "type": "module", "scripts": { "coverage": "codecov", - "lint": "standard", - "test": "nyc --reporter=lcov mocha" + "test": "stricter-standard && c8 --reporter=lcov --reporter=text mocha" }, "repository": { "type": "git", @@ -24,19 +23,21 @@ "@rdfjs/namespace": "^1.1.0", "@rdfjs/term-map": "^1.0.0", "@rdfjs/term-set": "^1.0.1", - "clownface": "^1.0.0", - "rdf-ext": "^1.3.0", + "clownface": "^1.3.0", + "rdf-ext": "^1.3.2", "rdf-transform-triple-to-quad": "^1.0.2", "readable-stream": "^3.6.0" }, "devDependencies": { "@rdfjs/to-ntriples": "^1.0.2", - "codecov": "^3.6.5", + "c8": "^7.7.3", + "codecov": "^3.8.2", "get-stream": "^6.0.1", - "into-stream": "^5.1.1", "isstream": "^0.1.2", - "mocha": "^8.4.0", - "nyc": "^15.0.1", - "standard": "^16.0.3" + "mocha": "^9.0.1", + "stricter-standard": "^0.2.0" + }, + "engines": { + "node": ">= 14.0.0" } } diff --git a/packages/rdf/test/PatternMatcher.test.js b/packages/rdf/test/PatternMatcher.test.js index 0cbb7ec8..ac934343 100644 --- a/packages/rdf/test/PatternMatcher.test.js +++ b/packages/rdf/test/PatternMatcher.test.js @@ -1,8 +1,8 @@ import { strictEqual } from 'assert' import { describe, it } from 'mocha' import rdf from 'rdf-ext' -import { ex } from './support/namespaces.js' import PatternMatcher from '../lib/PatternMatcher.js' +import { ex } from './support/namespaces.js' describe('PatternMatcher', () => { it('should be a constructor', () => { diff --git a/packages/rdf/test/cube/buildCubeShape.test.js b/packages/rdf/test/cube/buildCubeShape.test.js index fe7e3ed4..e2ce5ac5 100644 --- a/packages/rdf/test/cube/buildCubeShape.test.js +++ b/packages/rdf/test/cube/buildCubeShape.test.js @@ -4,10 +4,10 @@ import { termToNTriples as toNT } from '@rdfjs/to-ntriples' import { isDuplex } from 'isstream' import { describe, it } from 'mocha' import rdf from 'rdf-ext' +import buildCubeShape from '../../lib/cube/buildCubeShape/index.js' import createObservationsStream from '../support/createObservationsStream.js' import datasetStreamToClownface from '../support/datasetStreamToClownface.js' import * as ns from '../support/namespaces.js' -import buildCubeShape from '../../lib/cube/buildCubeShape/index.js' function checkMinMax (result, min, max) { const propertyShape = result.has(ns.sh.path, ns.ex.property) diff --git a/packages/rdf/test/cube/toObservation.test.js b/packages/rdf/test/cube/toObservation.test.js index b7a33645..b24f31c2 100644 --- a/packages/rdf/test/cube/toObservation.test.js +++ b/packages/rdf/test/cube/toObservation.test.js @@ -6,9 +6,9 @@ import { isDuplex } from 'isstream' import { describe, it } from 'mocha' import rdf from 'rdf-ext' import { Readable } from 'readable-stream' -import * as ns from '../support/namespaces.js' -import dateToId from '../../lib/dateToId.js' import toObservation from '../../lib/cube/toObservation.js' +import dateToId from '../../lib/dateToId.js' +import * as ns from '../support/namespaces.js' function createMeasure ({ term = ns.ex('topic/a') } = {}) { return clownface({ dataset: rdf.dataset(), term }) diff --git a/packages/rdf/test/mapMatch.test.js b/packages/rdf/test/mapMatch.test.js index 883b4ec8..38168d10 100644 --- a/packages/rdf/test/mapMatch.test.js +++ b/packages/rdf/test/mapMatch.test.js @@ -4,8 +4,8 @@ import { isDuplex } from 'isstream' import { describe, it } from 'mocha' import rdf from 'rdf-ext' import { Readable } from 'readable-stream' -import * as ns from './support/namespaces.js' import mapMatch from '../mapMatch.js' +import * as ns from './support/namespaces.js' describe('mapMatch', () => { it('should be a factory', () => { diff --git a/packages/rdf/test/setGraph.test.js b/packages/rdf/test/setGraph.test.js index f5739531..b10ef094 100644 --- a/packages/rdf/test/setGraph.test.js +++ b/packages/rdf/test/setGraph.test.js @@ -4,8 +4,8 @@ import { isDuplex } from 'isstream' import { describe, it } from 'mocha' import rdf from 'rdf-ext' import { Readable } from 'readable-stream' -import * as ns from './support/namespaces.js' import setGraph from '../setGraph.js' +import * as ns from './support/namespaces.js' describe('setGraph', () => { it('should be a factory', () => { From 5af4130dace3a3854f5bf23a8a186fca3c824bd8 Mon Sep 17 00:00:00 2001 From: bergi Date: Mon, 5 Jul 2021 12:19:07 +0200 Subject: [PATCH 4/4] chore: more explicit export --- packages/rdf/mapMatch.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/rdf/mapMatch.js b/packages/rdf/mapMatch.js index 99a922e5..a77134df 100644 --- a/packages/rdf/mapMatch.js +++ b/packages/rdf/mapMatch.js @@ -2,7 +2,7 @@ import rdf from 'rdf-ext' import { Transform } from 'readable-stream' import PatternMatcher from './lib/PatternMatcher.js' -export default function mapMatch ({ map, subject, predicate, object, graph }) { +function mapMatch ({ map, subject, predicate, object, graph }) { const matcher = new PatternMatcher({ subject, predicate, object, graph }) return new Transform({ @@ -21,3 +21,5 @@ export default function mapMatch ({ map, subject, predicate, object, graph }) { } }) } + +export default mapMatch