UNPKG

jsonref

Version:

Javascript References ($ref) and Pointers library

117 lines 4.73 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.pointer = exports.normalizeUri = exports.normalize = exports.isRef = exports.isAnnotated = exports.getMeta = void 0; exports.scope = scope; exports.parse = parse; const errors_js_1 = require("./errors.js"); const meta = __importStar(require("./meta.js")); const ref_js_1 = require("./ref.js"); __exportStar(require("./errors.js"), exports); var meta_js_1 = require("./meta.js"); Object.defineProperty(exports, "getMeta", { enumerable: true, get: function () { return meta_js_1.getMeta; } }); Object.defineProperty(exports, "isAnnotated", { enumerable: true, get: function () { return meta_js_1.isAnnotated; } }); Object.defineProperty(exports, "isRef", { enumerable: true, get: function () { return meta_js_1.isRef; } }); Object.defineProperty(exports, "normalize", { enumerable: true, get: function () { return meta_js_1.normalize; } }); Object.defineProperty(exports, "normalizeUri", { enumerable: true, get: function () { return meta_js_1.normalizeUri; } }); __exportStar(require("./patch.js"), exports); var pointer_js_1 = require("./pointer.js"); Object.defineProperty(exports, "pointer", { enumerable: true, get: function () { return pointer_js_1.resolve; } }); __exportStar(require("./rebase.js"), exports); function scope(data) { if (meta.isAnnotated(data)) { return meta.getMeta(data).scope; } } async function parse(dataOrUri, opts) { let obj; if (!opts || !opts.scope) { throw new Error('No scope'); } if (typeof dataOrUri === 'string') { if (!opts.retriever) { throw new Error('No retriever'); } const uri = new URL(dataOrUri).toString(); obj = await opts.retriever(uri); if (!opts.registry) { opts.registry = {}; } if (uri !== opts.scope) { opts.registry[meta.normalizeUri(uri)] = obj; } } else if (dataOrUri === null || typeof dataOrUri !== 'object') { throw new TypeError('Bad data'); } else { obj = dataOrUri; } if (meta.isAnnotated(obj)) { return obj; } else { meta.annotate(obj, opts); if (meta.getMeta(obj).refs.size > 0) { const missingRefs = meta.missingRefs(obj); if (missingRefs.length) { if (!opts.retriever) { throw new Error('No retriever'); } const registry = meta.getMeta(obj).registry; const errors = []; for (let r of missingRefs) { try { registry[r] = await opts.retriever(r); } catch (e) { errors.push(new errors_js_1.RetrieverError(r, e)); } } if (errors.length) { throw new errors_js_1.ParserError(meta.getMeta(obj).scope, 'retriever', errors); } } return (0, ref_js_1.resolve)(obj, opts); } else { return obj; } } } //# sourceMappingURL=index.js.map