UNPKG

convict-doc

Version:

converts a Convict schema into rendered documentation. At this Moment it will be rendered as a markdown table.

276 lines (275 loc) 7.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const index_1 = require("./index"); const configSchema = { env: { default: "TEST", format: ["TEST", "PROD"], }, database: { host: { env: "DB_HOST", arg: "host", default: "localhost", format: "url", doc: "The host of foo", }, port: { env: "DB_PORT", default: 3333, format: PortGreaterThausend, doc: "the port of foo", }, pw: { default: "changeMe", env: "DB_PW", arg: "pw", format: String, sensitive: true, doc: "the database password. Choose with care or pay the price!", }, }, }; const otherSchema = { env: { doc: "The application environment.", format: ["production", "development", "test"], default: "development", env: "NODE_ENV", }, ip: { doc: "The IP address to bind.", format: "ipaddress", default: "127.0.0.1", env: "IP_ADDRESS", }, port: { doc: "The port to bind.", format: "port", default: 8080, env: "PORT", arg: "port", }, db: { host: { doc: "Database host name/IP", format: "*", default: "server1.dev.test", }, name: { doc: "Database name", format: String, default: "users", }, }, admins: { doc: "Users with write access, or null to grant full access without login.", format: Array, nullable: true, default: null, }, }; const ssp = { apiPrefix: { format: String, default: 'api', doc: 'prefix for all controllers', env: 'API_PREFIX', }, apiPort: { format: 'port', env: 'API_PORT', arg: 'api-port', default: 3333, }, maxUploadSize: { format: Number, default: 100024, doc: 'max size of uploaded files in kilobytes', env: 'MAX_UPLOAD_SIZE', }, localDev: { format: Boolean, default: false, arg: 'local-dev', env: 'LOCAL_DEV', }, logLevel: { default: 'warn', env: 'LOG_LEVEL', format: ['log', 'error', 'warn', 'debug', 'verbose'] }, environment: { default: 'TEST', doc: 'if set to TEST only instances with prefix NT can be targeted', format: ['TEST', 'INT', 'PROD', 'LOCAL'], env: 'ENVIRONMENT', }, configFilePath: { format: String, env: 'CONFIG_FILE_PATH', arg: 'config', default: './config.yaml', }, database: { host: { format: String, default: 'localhost', env: 'DB_HOST', }, user: { default: 'postgres', format: String, env: 'DB_USER', }, pw: { default: 'Password1!', format: String, env: 'DB_PW', sensitive: true, }, name: { default: 'SelfService', format: String, env: 'DB_NAME', }, ssl: { default: true, format: Boolean, env: 'DB_SSL', }, port: { default: 5432, format: 'port', env: 'DB_PORT', }, schema: { default: 'public', format: String, env: 'DB_SCHEMA', }, synchronize: { default: false, format: Boolean, env: 'DB_SYNCHRONIZE', }, }, metadata: { loginUrl: { default: 'https://apphub-restart-test.app.corpintra.net/login/', env: 'APPHUB_LOGINURL', format: String, }, logoutUrl: { default: 'https://apphub-restart-test.app.corpintra.net/logout', env: 'APPHUB_LOGOUTURL', format: String, }, userManualUrl: { default: 'https://social.intra.corpintra.net/groups/datenqualit%C3%A4ts-offensive/projects/selfservice-portal/pages/home', env: 'USER_MANUAL_URL', format: String, }, socialIntranetUrl: { default: 'https://social.intra.corpintra.net/groups/app-hub/pages/home', env: 'SOCIAL_INTRANET_URL', format: String, }, webTicketUrl: { default: 'https://cism-web.es.corpintra.net/cgi-bin/webTickets/webTicket.pl?t=Autoline_AppHub_Stoerung', env: 'WEB_TICKET_URL', format: String, }, authorizationTicketUrl: { default: 'https://cism-web.es.corpintra.net/cgi-bin/webTickets/webTicket.pl?t=Autoline_AppHub_Berechtigung', env: 'AUTHORIZATION_TICKET_URL', format: String, }, supportMail: { default: 'https://cism-web.es.corpintra.net/cgi-bin/webTickets/webTicket.pl?t=Autoline_AppHub_Berechtigung', env: 'SUPPORT_MAIL', format: String, } }, applicationIdentifier: { default: 'ssp', env: 'APPLICATION_IDENTIFIER', format: String, }, roleManagementMatrix: { kdm: { format: Array, default: [ 'APPHUB.AppHub_SST_KDM', 'APPHUB.AppHub_SST_KDM_Truck', ], }, accounting: { format: Array, default: [ 'APPHUB.AppHub_SST_Accounting', 'APPHUB.AppHub_SST_Accounting_Truck', 'APPHUB.AppHub_SST_KDM', 'APPHUB.AppHub_SST_KDM_Truck', ], }, aftersales: { format: Array, default: [ 'APPHUB.AppHub_SST_Aftersales', 'APPHUB.AppHub_SST_Aftersales_Truck', 'APPHUB.AppHub_SST_KDM', 'APPHUB.AppHub_SST_KDM_Truck', ], }, parts: { format: Array, default: [ 'APPHUB.AppHub_SST_Parts', 'APPHUB.AppHub_SST_Parts_Truck', 'APPHUB.AppHub_SST_KDM', 'APPHUB.AppHub_SST_KDM_Truck', ], }, sales: { format: Array, default: [ 'APPHUB.AppHub_SST_Sales', 'APPHUB.AppHub_SST_Sales_Truck', 'APPHUB.AppHub_SST_KDM', 'APPHUB.AppHub_SST_KDM_Truck', ], }, }, jwksUri: { default: 'http://tex-service.ingress/JWKS', format: 'url', env: 'I3_JWKS_URI', doc: 'The url to get all well-known keys for JWT' }, fileCleanup: { nameGlobs: { format: 'Array', default: ['transfertoautoline/**/NT[0-9][0-9]?*.*'], doc: 'List of globs that specify which files older than the expiration period will be deleted' }, olderThanDays: { default: 28, doc: 'After a duration of n days, the files selected by the globs are deleted', format: "int", env: 'FILE_CLEANUP_OLDER_THAN_DAYS' }, dryRun: { format: Boolean, default: true, doc: 'Run through and reports activity without writing out results', env: 'FILE_CLEANUP_DRY_RUN', } } }; console.log((0, index_1.renderDoc)(configSchema, ['name', 'doc'])); console.log((0, index_1.renderDoc)(otherSchema)); console.log((0, index_1.renderDoc)(ssp)); function PortGreaterThausend(port) { throw new Error('not implented'); }