UNPKG

oas

Version:

Comprehensive tooling for working with OpenAPI definitions

89 lines (88 loc) 2.94 kB
// src/extensions.ts var CODE_SAMPLES = "code-samples"; var EXPLORER_ENABLED = "explorer-enabled"; var HEADERS = "headers"; var METRICS_ENABLED = "metrics-enabled"; var OAUTH_OPTIONS = "oauth-options"; var PARAMETER_ORDERING = "parameter-ordering"; var PROXY_ENABLED = "proxy-enabled"; var SAMPLES_LANGUAGES = "samples-languages"; var SIMPLE_MODE = "simple-mode"; var DISABLE_TAG_SORTING = "disable-tag-sorting"; var extensionDefaults = { [CODE_SAMPLES]: void 0, [DISABLE_TAG_SORTING]: false, [EXPLORER_ENABLED]: true, [HEADERS]: void 0, [METRICS_ENABLED]: true, [OAUTH_OPTIONS]: {}, [PARAMETER_ORDERING]: ["path", "query", "body", "cookie", "form", "header"], [PROXY_ENABLED]: true, [SAMPLES_LANGUAGES]: ["shell", "node", "ruby", "php", "python", "java", "csharp"], [SIMPLE_MODE]: true }; function hasRootExtension(extension, api) { return Boolean(api && extension in api); } function getExtension(extension, api, operation) { if (operation) { if (operation.hasExtension("x-readme")) { const data = operation.getExtension("x-readme"); if (data && typeof data === "object" && extension in data) { return data[extension]; } } if (operation.hasExtension(`x-${extension}`)) { return operation.getExtension(`x-${extension}`); } else if (operation.hasExtension(extension)) { return operation.getExtension(extension); } } if (extension === CODE_SAMPLES) { return extensionDefaults[extension]; } if (hasRootExtension("x-readme", api)) { const data = api?.["x-readme"]; if (data && typeof data === "object" && extension in data) { return data[extension]; } } if (hasRootExtension(`x-${extension}`, api)) { return api?.[`x-${extension}`]; } else if (hasRootExtension(extension, api)) { return api?.[extension]; } if (extension in extensionDefaults) { return extensionDefaults[extension]; } return void 0; } function validateParameterOrdering(ordering, extension) { const defaultValue = extensionDefaults[PARAMETER_ORDERING]; const requiredLength = defaultValue.length; const defaultsHuman = `${defaultValue.slice(0, -1).join(", ")}, and ${defaultValue.slice(-1)}`; if (ordering.length !== requiredLength) { throw new TypeError(`"${extension}" must contain ${requiredLength} items comprised of: ${defaultsHuman}`); } const intersection = ordering.filter((value) => defaultValue.includes(value.toLowerCase())); if (intersection.length !== requiredLength) { throw new TypeError(`"${extension}" must contain ${requiredLength} items comprised of: ${defaultsHuman}`); } } export { CODE_SAMPLES, EXPLORER_ENABLED, HEADERS, METRICS_ENABLED, OAUTH_OPTIONS, PARAMETER_ORDERING, PROXY_ENABLED, SAMPLES_LANGUAGES, SIMPLE_MODE, DISABLE_TAG_SORTING, extensionDefaults, hasRootExtension, getExtension, validateParameterOrdering }; //# sourceMappingURL=chunk-L2OVXZK3.js.map