UNPKG

@microsoft.azure/openapi-validator-core

Version:
35 lines 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Resolver = void 0; const uri_1 = require("@azure-tools/uri"); const utils_1 = require("./utils"); class Resolver { constructor(innerDoc, currentFile) { this.innerDoc = innerDoc; this.currentFile = currentFile; this.references = new Set(); } async resolve() { const references = this.references; const currentFile = this.currentFile; await (0, utils_1.traverse)(this.innerDoc, ["/"], new Set(), { references, currentFile }, updateFileRefs); } getReferences() { return Array.from(this.references.values()); } } exports.Resolver = Resolver; const updateFileRefs = (node, path, ctx) => { if (typeof node === "object" && typeof node.$ref === "string") { const slices = node.$ref.split("#"); if (slices.length === 2 && slices[0] && !(0, utils_1.isUriAbsolute)(slices[0])) { const referenceFile = (0, uri_1.resolveUri)(ctx.currentFile, slices[0]); node.$ref = referenceFile + `#${slices[1]}`; if (!(0, utils_1.isExample)(referenceFile)) ctx.references.add(referenceFile); } return false; } return true; }; //# sourceMappingURL=resolver.js.map