@zazuko/shacl-test
Version:
Runs SHACL shapes against a set of positive and negative test cases (data graphs).
30 lines (24 loc) • 869 B
JavaScript
import rdf from '@zazuko/env-node'
import formats from '@rdfjs-elements/formats-pretty'
import { argv } from 'node:process'
rdf.formats.import(formats)
// Default prefixes
let prefixes = ['sh', 'rdf', 'rdfs', 'xsd']
// Parse command-line arguments for prefixes
let currentPrefix = argv.indexOf('--prefixes')
let arg = argv[currentPrefix + 1]
while (arg && !arg.startsWith('--')) {
const [key, value] = arg.split('=')
if (value) {
prefixes.push([key.replace('--prefixes', '').trim(), value.trim()])
} else {
prefixes.push(key.replace('--prefixes', '').trim())
}
currentPrefix++
arg = argv[currentPrefix + 1]
}
;(async function () {
const dataset = await rdf.dataset().import(rdf.formats.parsers.import('text/turtle', process.stdin))
process.stdout.write(await dataset.serialize({ format: 'text/turtle', prefixes }))
})()