#!/usr/bin/env node const stringify = require('json-stringify-pretty-compact'); const definitions = require('../lib/config/definitions'); const defaultsParser = require('../lib/config/defaults'); const cliParser = require('../lib/config/cli'); const envParser = require('../lib/config/env'); /* eslint-disable no-console */ // Print table header console.log('## Configuration Options'); console.log(''); console.log( '| Name | Description | Type | Default value | Environment | CLI |' ); console.log( '|------|-------------|------|---------------|-------------|-----|' ); const options = definitions.getOptions(); options.forEach(option => { let optionDefault = defaultsParser.getDefault(option); if (optionDefault !== '') { optionDefault = `\`${stringify(optionDefault)}\``; } let envName = envParser.getEnvName(option); if (envName.length) { envName = `\`${envName}\``; } let cliName = cliParser.getCliName(option); if (cliName.length) { cliName = `\`${cliName}\``; } console.log( `| \`${option.name}\` | ${option.description} | ${option.type} | ${optionDefault} | ${envName} | ${cliName} |` ); }); /* eslint-enable no-console */