data-pipeline-information-system-sparql
Version:
Sparql function to query/update RDF through SPARQL 1.1
40 lines • 1.56 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var common_1 = require("./common");
var getter_1 = __importDefault(require("../SparqlAttribute/getter"));
function values(rootReference, definition, json_pointers, values) {
if (values.some(function (n_uplet) {
return n_uplet.length !== json_pointers.length;
})) {
throw 'At least one N-uplet doesn\'t match the bindings[] length';
}
var incremented_definition = common_1.copy(definition);
var variableBindings = json_pointers.map(function (pointer) {
var attribute = getter_1.default(rootReference, pointer).attribute;
return '?' + attribute.name;
});
var dictArray = [];
values.forEach(function (tupleValues) {
var element = {};
tupleValues.forEach(function (value, index) {
element[variableBindings[index]] = value;
});
dictArray.push(element);
});
var _values = {
type: 'values',
values: dictArray
};
var nestedPath = getter_1.default(rootReference, json_pointers[0]).nestedPath;
var pointerToDefinition = incremented_definition;
nestedPath.forEach(function (path) {
pointerToDefinition = pointerToDefinition.subQuery[path];
});
pointerToDefinition.query.where.push(_values);
return incremented_definition;
}
exports.default = values;
//# sourceMappingURL=_values.js.map