UNPKG

lincd

Version:

LINCD is a JavaScript library for building user interfaces with linked data (also known as 'structured data', or RDF)

50 lines 2.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setQueryContext = exports.getQueryContext = exports.useQueryContext = void 0; const react_1 = require("react"); const SelectQuery_js_1 = require("./SelectQuery.js"); const Shape_js_1 = require("../shapes/Shape.js"); const TraceShape_js_1 = require("../utils/TraceShape.js"); const queryContext = new Map(); function useQueryContext(name, initialData, shapeType) { (0, react_1.useEffect)(() => { setQueryContext(name, initialData, shapeType); }, [initialData, name]); } exports.useQueryContext = useQueryContext; function getQueryContext(name) { if (!queryContext.has(name)) { //TODO:should return something here so that the query still works and returns default values // like NullQueryShape or similar return null; } return queryContext.get(name); } exports.getQueryContext = getQueryContext; function setQueryContext(name, value, shapeType) { //if a QResult was provided if (value && (typeof value.id === 'string' || typeof value.uri === 'string')) { //convert to QShape if (!shapeType) { console.warn('setQueryContext: value is a QResult but no shapeType provided', value); return; } const testNode = new TraceShape_js_1.TestNode(); testNode.targetID = value.id || value.uri; const shape = new shapeType(testNode); //.getFromURI(value.id); value = SelectQuery_js_1.QueryShape.create(shape); //const converted = QueryBuilderObject.convertOriginal(shape,null,null); } if (value instanceof Shape_js_1.Shape) { //convert to QShape value = new SelectQuery_js_1.QueryShape(value); } else if (value && !(value instanceof SelectQuery_js_1.QueryShape)) { console.warn('setQueryContext: value is not a QueryShape or Shape', value); return; } queryContext.set(name, value); } exports.setQueryContext = setQueryContext; //# sourceMappingURL=QueryContext.js.map