UNPKG

link-rdflib

Version:

an RDF library for node.js, patched for speed.

39 lines (31 loc) 968 B
"use strict"; var NamedNode = require('./named-node'); /** * Defines a Namespace to ease IRI generation * @param nsuri The base IRI of the namespace, prepended before all terms * @param terms Optional list of predefined terms which are accessible as members * @return {Function} Function to mint IRI's on the namespace with predefined members. */ function Namespace(nsuri) { var terms = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; NamedNode.find(nsuri); var mem = {}; var ns = function ns(ln) { if (mem[ln]) { return mem[ln]; } var fullIRI = nsuri + (ln || ''); return mem[ln] = NamedNode.find(fullIRI, ln); }; if (terms && typeof terms.length !== "undefined") { for (var i = 0; i < terms.length; i++) { Object.defineProperty(ns, terms[i], { enumerable: true, value: ns(terms[i]), writable: false }); } } return ns; } module.exports = Namespace;