UNPKG

quadstore

Version:

Quadstore is a LevelDB-backed RDF graph database / triplestore for JavaScript runtimes (browsers, Node.js, Deno, Bun, ...) that implements the RDF/JS interfaces and supports SPARQL queries and querying across named graphs.

63 lines 1.85 kB
export const isObject = (o) => { return typeof (o) === 'object' && o !== null; }; export const isAbstractLevel = (o) => { return isObject(o) && typeof (o.open) === 'function' && typeof (o.batch) === 'function'; }; export const ensureAbstractLevel = (o, key) => { if (!isAbstractLevel(o)) { throw new Error(`${key} is not an AbstractLevel instance`); } }; export const streamToArray = (source) => { return new Promise((resolve, reject) => { const chunks = []; const onData = (chunk) => { chunks.push(chunk); }; const cleanup = () => { source.removeListener('data', onData); source.removeListener('error', onError); source.destroy?.(); }; const onEnd = () => { cleanup(); resolve(chunks); }; const onError = (err) => { cleanup(); reject(err); }; source.on('error', onError); source.on('end', onEnd); source.on('data', onData); }); }; export const resolveOnEvent = (emitter, event, rejectOnError) => { return new Promise((resolve, reject) => { const onceEvent = (arg) => { emitter.removeListener('error', onceError); resolve(arg); }; const onceError = (err) => { emitter.removeListener(event, onceEvent); reject(err); }; emitter.once(event, onceEvent); if (rejectOnError) { emitter.once('error', onceError); } }); }; export const waitForEvent = resolveOnEvent; export const arrStartsWith = (arr, prefix) => { for (let i = 0; i < prefix.length; i += 1) { if (prefix[i] !== arr[i]) { return false; } } return true; }; //# sourceMappingURL=stuff.js.map