UNPKG

nest-redoc

Version:

A NestJS Frontend for your OpenAPI Specs powered by ReDoc

67 lines (66 loc) 4.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RedocOptionsSchema = RedocOptionsSchema; const joi = require("joi"); function RedocOptionsSchema(document) { var _a, _b; return joi.object().keys({ redocVersion: joi.string().default('latest'), title: joi.string().optional().default(((_a = document === null || document === void 0 ? void 0 : document.info) === null || _a === void 0 ? void 0 : _a.title) || 'Swagger documentation'), favicon: joi.custom(value => typeof value === 'string' ? value : Buffer.isBuffer(value) ? value : new Error('Only URL or Buffer allowed')).optional(), logo: joi.object({ url: joi.custom(value => typeof value === 'string' ? value : Buffer.isBuffer(value) ? value : new Error('Only URL or Buffer allowed')).optional(), backgroundColor: joi.string().regex(new RegExp('^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$')).optional(), altText: joi.string().optional().default(((_b = document === null || document === void 0 ? void 0 : document.info) === null || _b === void 0 ? void 0 : _b.title) || 'Swagger documentation'), href: joi.string().optional().uri().default('#'), }), theme: joi.any(), disableSearch: joi.boolean().optional().default(false), minCharacterLengthToInitSearch: joi.number().optional().default(3), expandDefaultServerVariables: joi.boolean().optional().default(false), expandResponses: joi.array().items(joi.string()), expandSingleSchemaField: joi.boolean().optional().default(false), hideDownloadButton: joi.boolean().optional().default(false), hideHostname: joi.boolean().optional().default(false), hideLoading: joi.boolean().optional().default(false), hideRequestPayloadSample: joi.boolean().optional().default(false), hideOneOfDescription: joi.boolean().optional().default(false), hideSchemaPattern: joi.boolean().optional().default(false), hideSchemaTitles: joi.boolean().optional().default(false), hideSecuritySection: joi.boolean().optional().default(false), hideSingleRequestSampleTab: joi.boolean().optional().default(false), jsonSampleExpandLevel: joi.boolean().custom(value => typeof value === 'string' || typeof value === 'number' ? value : new Error('Only string or a number allowed')).optional(), maxDisplayedEnumValues: joi.number().optional(), menuToggle: joi.boolean().optional().default(true), nativeScrollbars: joi.boolean().optional().default(false), onlyRequiredInSamples: joi.boolean().optional().default(false), pathInMiddlePanel: joi.boolean().optional().default(false), payloadSampleIdx: joi.any(), requiredPropsFirst: joi.boolean().optional().default(false), schemaExpansionLevel: joi.number().custom(value => typeof value === 'number' || value === 'all' ? value : new Error('Only a number or "all" allowed.')).default(0).optional(), scrollYOffset: joi.any().optional(), showExtensions: joi.any().optional().default(false), showObjectSchemaExamples: joi.boolean().optional().default(false), showWebhookVerb: joi.boolean().optional().default(false), simpleOneOfTypeLabel: joi.boolean().optional().default(false), sortEnumValuesAlphabetically: joi.boolean().optional().default(false), sortOperationsAlphabetically: joi.boolean().optional().default(false), sortPropsAlphabetically: joi.boolean().optional().default(false), sortTagsAlphabetically: joi.boolean().optional().default(false), untrustedDefinition: joi.boolean().optional().default(false), noAutoAuth: joi.boolean().optional().default(false), suppressWarnings: joi.boolean().optional().default(false), useGlobalPrefix: joi.boolean().optional().default(false), auth: joi.object({ enabled: joi.boolean().optional().default(false), users: joi.array().optional().items(joi.object({ username: joi.string(), password: joi.string(), })) }).optional(), tagGroups: joi.array().optional().items(joi.object({ name: joi.string(), tags: joi.array().items(joi.string()) })), }); }