UNPKG

luhn-generator

Version:

A generator of numbers that passes the validation of Luhn algorithm or Luhn formula, also known as the 'modulus 10' or 'mod 10' algorithm

71 lines (65 loc) 1.58 kB
'use strict'; /** * Contains "command" code for "one-and-dones"--options passed * to Mocha which cause it to just dump some info and exit. * See {@link module:lib/cli/one-and-dones.ONE_AND_DONE_ARGS ONE_AND_DONE_ARGS} for more info. * @module * @private */ const align = require('wide-align'); const Mocha = require('../mocha'); /** * Dumps a sorted list of the enumerable, lower-case keys of some object * to `STDOUT`. * @param {Object} obj - Object, ostensibly having some enumerable keys * @ignore * @private */ const showKeys = obj => { console.log(); const keys = Object.keys(obj); const maxKeyLength = keys.reduce((max, key) => Math.max(max, key.length), 0); keys .filter( key => /^[a-z]/.test(key) && !obj[key].browserOnly && !obj[key].abstract ) .sort() .forEach(key => { const description = obj[key].description; console.log( ` ${align.left(key, maxKeyLength + 1)}${ description ? `- ${description}` : '' }` ); }); console.log(); }; /** * Handlers for one-and-done options * @namespace * @private */ exports.ONE_AND_DONES = { /** * Dump list of built-in interfaces * @private */ interfaces: () => { showKeys(Mocha.interfaces); }, /** * Dump list of built-in reporters * @private */ reporters: () => { showKeys(Mocha.reporters); } }; /** * A Set of all one-and-done options * @type Set<string> * @private */ exports.ONE_AND_DONE_ARGS = new Set( ['help', 'h', 'version', 'V'].concat(Object.keys(exports.ONE_AND_DONES)) );