@netwerk-digitaal-erfgoed/ld-workbench
Version:
LDWorkbench is a Linked Data Transformation tool designed to use only SPARQL as transformation language.
24 lines • 904 B
JavaScript
import chalk from 'chalk';
import fs from 'fs';
import { Parser } from 'sparqljs';
export default function getSPARQLQuery(queryStringOrFile, type) {
const query = queryStringOrFile.startsWith('file://')
? readQueryFromFile(queryStringOrFile)
: queryStringOrFile;
const parsed = new Parser().parse(query);
if (parsed.type !== 'query') {
throw new Error(`Unexpected querytype ${parsed.type}`);
}
if (parsed.queryType.toLowerCase() === type) {
return parsed;
}
throw new Error(`Unexpected querytype ${parsed.queryType}`);
}
function readQueryFromFile(file) {
const fileName = file.replace('file://', '');
if (!fs.existsSync(fileName) || !fs.statSync(fileName).isFile()) {
throw new Error(`File not found: ${chalk.italic(fileName)}`);
}
return fs.readFileSync(fileName, 'utf-8');
}
//# sourceMappingURL=getSPARQLQuery.js.map