UNPKG

openapi-typescript

Version:

Convert OpenAPI 3.0 & 3.1 schemas to TypeScript

149 lines (141 loc) 6.34 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); const openapiCore = require('@redocly/openapi-core'); const node_perf_hooks = require('node:perf_hooks'); const redoc = require('./lib/redoc.cjs'); const utils = require('./lib/utils.cjs'); const index = require('./transform/index.cjs'); const ts = require('./lib/ts.cjs'); const componentsObject = require('./transform/components-object.cjs'); const headerObject = require('./transform/header-object.cjs'); const mediaTypeObject = require('./transform/media-type-object.cjs'); const operationObject = require('./transform/operation-object.cjs'); const parameterObject = require('./transform/parameter-object.cjs'); const pathItemObject = require('./transform/path-item-object.cjs'); const pathsObject = require('./transform/paths-object.cjs'); const requestBodyObject = require('./transform/request-body-object.cjs'); const responseObject = require('./transform/response-object.cjs'); const responsesObject = require('./transform/responses-object.cjs'); const schemaObject = require('./transform/schema-object.cjs'); const c = require('ansi-colors'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; } const c__default = /*#__PURE__*/_interopDefaultCompat(c); const COMMENT_HEADER = `/** * This file was auto-generated by openapi-typescript. * Do not make direct changes to the file. */ `; async function openapiTS(source, options = {}) { if (!source) { throw new Error("Empty schema. Please specify a URL, file path, or Redocly Config"); } const redoc$1 = options.redocly ?? await openapiCore.createConfig( { rules: { "operation-operationId-unique": { severity: "error" } // throw error on duplicate operationIDs } }, { extends: ["minimal"] } ); const schema = await redoc.validateAndBundle(source, { redoc: redoc$1, cwd: options.cwd instanceof URL ? options.cwd : new URL(`file://${options.cwd ?? process.cwd()}/`), silent: options.silent ?? false }); const ctx = { additionalProperties: options.additionalProperties ?? false, alphabetize: options.alphabetize ?? false, arrayLength: options.arrayLength ?? false, defaultNonNullable: options.defaultNonNullable ?? true, discriminators: utils.scanDiscriminators(schema, options), emptyObjectsUnknown: options.emptyObjectsUnknown ?? false, enum: options.enum ?? false, enumValues: options.enumValues ?? false, dedupeEnums: options.dedupeEnums ?? false, excludeDeprecated: options.excludeDeprecated ?? false, exportType: options.exportType ?? false, immutable: options.immutable ?? false, rootTypes: options.rootTypes ?? false, rootTypesNoSchemaPrefix: options.rootTypesNoSchemaPrefix ?? false, injectFooter: [], pathParamsAsTypes: options.pathParamsAsTypes ?? false, postTransform: typeof options.postTransform === "function" ? options.postTransform : void 0, propertiesRequiredByDefault: options.propertiesRequiredByDefault ?? false, redoc: redoc$1, silent: options.silent ?? false, inject: options.inject ?? void 0, transform: typeof options.transform === "function" ? options.transform : void 0, makePathsEnum: options.makePathsEnum ?? false, generatePathParams: options.generatePathParams ?? false, resolve($ref) { return utils.resolveRef(schema, $ref, { silent: options.silent ?? false }); } }; const transformT = node_perf_hooks.performance.now(); const result = index(schema, ctx); utils.debug("Completed AST transformation for entire document", "ts", node_perf_hooks.performance.now() - transformT); return result; } exports.createDiscriminatorProperty = utils.createDiscriminatorProperty; exports.createRef = utils.createRef; exports.debug = utils.debug; exports.error = utils.error; exports.formatTime = utils.formatTime; exports.getEntries = utils.getEntries; exports.resolveRef = utils.resolveRef; exports.scanDiscriminators = utils.scanDiscriminators; exports.walk = utils.walk; exports.warn = utils.warn; exports.transformSchema = index; exports.BOOLEAN = ts.BOOLEAN; exports.FALSE = ts.FALSE; exports.JS_ENUM_INVALID_CHARS_RE = ts.JS_ENUM_INVALID_CHARS_RE; exports.JS_PROPERTY_INDEX_INVALID_CHARS_RE = ts.JS_PROPERTY_INDEX_INVALID_CHARS_RE; exports.JS_PROPERTY_INDEX_RE = ts.JS_PROPERTY_INDEX_RE; exports.NEVER = ts.NEVER; exports.NULL = ts.NULL; exports.NUMBER = ts.NUMBER; exports.QUESTION_TOKEN = ts.QUESTION_TOKEN; exports.SPECIAL_CHARACTER_MAP = ts.SPECIAL_CHARACTER_MAP; exports.STRING = ts.STRING; exports.TRUE = ts.TRUE; exports.UNDEFINED = ts.UNDEFINED; exports.UNKNOWN = ts.UNKNOWN; exports.addJSDocComment = ts.addJSDocComment; exports.astToString = ts.astToString; exports.enumCache = ts.enumCache; exports.oapiRef = ts.oapiRef; exports.stringToAST = ts.stringToAST; exports.tsArrayLiteralExpression = ts.tsArrayLiteralExpression; exports.tsDedupe = ts.tsDedupe; exports.tsEnum = ts.tsEnum; exports.tsEnumMember = ts.tsEnumMember; exports.tsIntersection = ts.tsIntersection; exports.tsIsPrimitive = ts.tsIsPrimitive; exports.tsLiteral = ts.tsLiteral; exports.tsModifiers = ts.tsModifiers; exports.tsNullable = ts.tsNullable; exports.tsOmit = ts.tsOmit; exports.tsPropertyIndex = ts.tsPropertyIndex; exports.tsReadonlyArray = ts.tsReadonlyArray; exports.tsRecord = ts.tsRecord; exports.tsUnion = ts.tsUnion; exports.tsWithRequired = ts.tsWithRequired; exports.transformComponentsObject = componentsObject.default; exports.transformHeaderObject = headerObject; exports.transformMediaTypeObject = mediaTypeObject; exports.injectOperationObject = operationObject.injectOperationObject; exports.transformOperationObject = operationObject.default; exports.transformParameterObject = parameterObject; exports.transformPathItemObject = pathItemObject; exports.transformPathsObject = pathsObject; exports.transformRequestBodyObject = requestBodyObject; exports.transformResponseObject = responseObject; exports.transformResponsesObject = responsesObject; exports.transformSchemaObject = schemaObject.default; exports.transformSchemaObjectWithComposition = schemaObject.transformSchemaObjectWithComposition; exports.c = c__default; exports.COMMENT_HEADER = COMMENT_HEADER; exports.default = openapiTS; //# sourceMappingURL=index.cjs.map