@spec2ts/openapi
Version:
Utility to convert OpenAPI v3 specifications to Typescript using TypeScript native compiler
30 lines (29 loc) • 1.27 kB
JavaScript
;
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;