UNPKG

@spec2ts/openapi

Version:

Utility to convert OpenAPI v3 specifications to Typescript using TypeScript native compiler

30 lines (29 loc) 1.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseOpenApi = exports.parseOpenApiFile = void 0; const path = require("path"); const json_schema_ref_parser_1 = require("@apidevtools/json-schema-ref-parser"); const core_parser_1 = require("@spec2ts/jsonschema/lib/core-parser"); const core_parser_2 = require("./core-parser"); async function parseOpenApiFile(file, options = {}) { const schema = await json_schema_ref_parser_1.default.parse(file); return parseOpenApi(schema, { cwd: path.resolve(path.dirname(file)) + "/", ...options }); } exports.parseOpenApiFile = parseOpenApiFile; async function parseOpenApi(spec, options = {}) { var _a; if (!options.parseReference) { options.parseReference = core_parser_2.parseReference; } const context = await (0, core_parser_1.createContext)(spec, options); const result = (0, core_parser_2.createOpenApiResult)(); Object.entries((_a = spec.paths) !== null && _a !== void 0 ? _a : {}).forEach(([path, item]) => { (0, core_parser_2.parsePathItem)(path, item, context, result); }); (0, core_parser_2.addToOpenApiResult)(result, "models", context.aliases); return result; } exports.parseOpenApi = parseOpenApi;