UNPKG

@hestia-earth/schema

Version:
74 lines (73 loc) 3.29 kB
"use strict"; var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.schemaFromTermType = exports.refToSchemaType = exports.typeToSchemaType = exports.isExpandable = exports.isBlankNode = exports.isNode = exports.isTypeBlankNode = exports.isTypeNode = exports.isTypeValid = exports.jsonldPath = void 0; var types_1 = require("../types"); var termTypes_1 = require("../termTypes"); var jsonldPath = function (type, id) { return "".concat(type, "/").concat(id, ".jsonld"); }; exports.jsonldPath = jsonldPath; var isTypeValid = function (node) { return Object.values(types_1.SchemaType).includes(node['@type'] || node.type); }; exports.isTypeValid = isTypeValid; var isTypeNode = function (type) { return Object.values(types_1.NodeType).includes(type); }; exports.isTypeNode = isTypeNode; var isTypeBlankNode = function (type) { return (0, exports.isTypeValid)({ type: type }) && !(0, exports.isTypeNode)(type); }; exports.isTypeBlankNode = isTypeBlankNode; var isNode = function (node) { return (0, exports.isTypeNode)(node['@type'] || node.type); }; exports.isNode = isNode; var isBlankNode = function (node) { return (0, exports.isTypeBlankNode)(node['@type'] || node.type); }; exports.isBlankNode = isBlankNode; var isExpandable = function (val) { return !!val && !(val instanceof Date) && typeof val === 'object' && (Array.isArray(val) ? val.every(exports.isExpandable) : Object.values(types_1.SchemaType).includes(val.type || val['@type'])); }; exports.isExpandable = isExpandable; var typeToSchemaType = function (type) { return Object.values(types_1.SchemaType).find(function (val) { return val.toLowerCase() === (type || '').toLowerCase(); }); }; exports.typeToSchemaType = typeToSchemaType; var refToSchemaType = function (ref) { if (ref === void 0) { ref = ''; } return ref ? ref.startsWith('http') ? ref : (0, exports.typeToSchemaType)(ref.substring(2).replace('-deep', '').replace('.json#', '')) : undefined; }; exports.refToSchemaType = refToSchemaType; /** * Get a list of possible places where the `termType` can be used. * @param termType The `termType`. * @returns */ var schemaFromTermType = function (termType) { return termTypes_1.schemaTermTypes.flatMap(function (_a) { var type = _a.type, mappings = _a.mappings; return Object.entries(mappings) .filter(function (_a) { var _b = __read(_a, 2), key = _b[0], termTypes = _b[1]; return key !== 'all' && Array.isArray(termTypes) && termTypes.includes(termType); }) .map(function (_a) { var _b = __read(_a, 1), key = _b[0]; return ({ type: type, key: key }); }); }); }; exports.schemaFromTermType = schemaFromTermType;