openapi-ts-json-schema
Version:
OpenAPI to JSON schema generator with TypeScript in mind
41 lines (40 loc) • 1.67 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.addSchemaToMetaData = void 0;
const node_path_1 = __importDefault(require("node:path"));
// @ts-expect-error no type defs for namify
const namify_1 = __importDefault(require("namify"));
const _1 = require(".");
/*
* Just an utility function to add entries to SchemaMetaDataMap Map keyed by ref
*/
function addSchemaToMetaData({ id, $id, schemaMetaDataMap, schema, isRef,
// Options
outputPath, }) {
// Do not override existing meta info of inlined schemas
if (!schemaMetaDataMap.has(id)) {
const { schemaRelativeDirName, schemaName } = (0, _1.parseId)(id);
const absoluteDirName = node_path_1.default.join(outputPath, schemaRelativeDirName);
const schemaFileName = (0, _1.filenamify)(schemaName);
const absoluteImportPath = node_path_1.default.join(absoluteDirName, schemaFileName);
// Convert components.parameters after convertOpenApiPathsParameters is called
if ((0, _1.isOpenApiParameterObject)(schema)) {
schema = (0, _1.convertOpenApiParameterToJsonSchema)(schema);
}
const metaInfo = {
id,
$id,
uniqueName: (0, namify_1.default)(id),
isRef,
originalSchema: schema,
absoluteDirName,
absoluteImportPath,
absolutePath: absoluteImportPath + '.ts',
};
schemaMetaDataMap.set(id, metaInfo);
}
}
exports.addSchemaToMetaData = addSchemaToMetaData;