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.

44 lines 1.46 kB
import { termNames } from './constants.js'; export const getTermComparator = () => { return (a, b) => { if (a.termType !== b.termType) { return a.termType < b.termType ? -1 : 1; } if (a.termType !== 'Literal' || b.termType !== 'Literal') { return a.value < b.value ? -1 : (a.value === b.value ? 0 : 1); } if (a.language || b.language) { if (!a.language) { return -1; } if (!b.language) { return 1; } return a.language < b.language ? -1 : (a.language === b.language ? 0 : 1); } if (a.datatype || b.datatype) { if (!a.datatype) { return -1; } if (!b.datatype) { return 1; } if (a.datatype.value !== b.datatype.value) { return a.datatype.value < b.datatype.value ? -1 : 1; } } return a.value < b.value ? -1 : (a.value === b.value ? 0 : 1); }; }; export const getQuadComparator = (_termNames = termNames) => { const termComparator = getTermComparator(); return (a, b) => { for (let i = 0, n = _termNames.length, r; i < n; i += 1) { r = termComparator(a[_termNames[i]], b[_termNames[i]]); if (r !== 0) return r; } return 0; }; }; //# sourceMappingURL=comparators.js.map