UNPKG

data-pipeline-information-system-sparql

Version:

Sparql function to query/update RDF through SPARQL 1.1

35 lines (33 loc) 1.65 kB
import SparqlObject from '../SparqlObject/SparqlObject' import {ConfigurationElementI, ConfigurationAttribute} from './types' import SparqlTask from './SparqlTask' export function init(configurationArray: {attributes: Array<string | ConfigurationAttribute>, definition: string, reference: string, primaryKey: string, prefixes?: {[key:string] : string}}[] = []) { let configurationMap: { [ref: string]: ConfigurationElementI } = {}; let sparqlObjects: { [ref: string]: SparqlObject } = {}; configurationArray.forEach((configuration) => { configurationMap[configuration.reference] = { reference: configuration.reference, attributes: [], definition: configuration.definition, primaryKey: configuration.primaryKey, prefixes: configuration.prefixes || {} }; SparqlTask.prefixes = {...SparqlTask.prefixes, ...configuration.prefixes} configuration.attributes.forEach((attribute) => { let initAttribute: ConfigurationAttribute; if (typeof attribute === "string") { initAttribute = new ConfigurationAttribute(); initAttribute.name = attribute; } else { initAttribute = { ...{ arrayable: false, reference: null }, ...attribute }; } configurationMap[configuration.reference].attributes.push(initAttribute); }) }); Object.keys(configurationMap).forEach((reference) => { let object = new SparqlObject(configurationMap[reference]); sparqlObjects[reference] = object; }) return sparqlObjects; } export default init;