UNPKG

lcnsr

Version:

###### Cooper Runyan

49 lines (40 loc) 1.88 kB
import chalk from 'chalk'; export function describeOne(description) { let maxPermissionLength = 0; let maxLimitationLength = 0; let maxConditionLength = 0; description.permissions.forEach((permission) => { maxPermissionLength = Math.max(permission.label.length, maxPermissionLength); }); description.limitations.forEach((limitation) => { maxLimitationLength = Math.max(limitation.label.length, maxLimitationLength); }); description.conditions.forEach((condition) => { maxConditionLength = Math.max(condition.label.length, maxConditionLength); }); const str = ` ${chalk.bold(description.name)} ${description.id ? chalk.yellow('(') + chalk.magenta(description.id) + chalk.yellow(')') : ''} Created in ${chalk.yellow(description.year + '')} ${chalk.bold(`Description:`)} ${description.description.split('\n').join(`\n `)} ${chalk.bold(`Permissions:`)} ${description.permissions .map((permission) => ` ${chalk.blue(permission.label.padEnd(maxPermissionLength, ' '))} ${chalk.red(`-`)} ${permission.detail .split('\n') .join(`\n ${''.padEnd(maxPermissionLength, ' ')}`)}`) .join('\n') || ' None'} ${chalk.bold(`Limitations:`)} ${description.limitations .map((limitation) => ` ${chalk.blue(limitation.label.padEnd(maxLimitationLength, ' '))} ${chalk.red(`-`)} ${limitation.detail .split('\n') .join(`\n ${''.padEnd(maxLimitationLength, ' ')}`)}`) .join('\n') || ' None'} ${chalk.bold(`Conditions:`)} ${description.conditions .map((condition) => ` ${chalk.blue(condition.label.padEnd(maxConditionLength, ' '))} ${chalk.red(`-`)} ${condition.detail .split('\n') .join(`\n ${''.padEnd(maxConditionLength, ' ')}`)}`) .join('\n') || ' None'} `; return str; }