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

31 lines (23 loc) 1.07 kB
'use strict'; var GetIntrinsic = require('../GetIntrinsic'); var $TypeError = GetIntrinsic('%TypeError%'); var weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; var $isNaN = require('../helpers/isNaN'); var padTimeComponent = require('../helpers/padTimeComponent'); var Type = require('./Type'); var WeekDay = require('./WeekDay'); var MonthFromTime = require('./MonthFromTime'); var YearFromTime = require('./YearFromTime'); var DateFromTime = require('./DateFromTime'); // https://www.ecma-international.org/ecma-262/9.0/#sec-datestring module.exports = function DateString(tv) { if (Type(tv) !== 'Number' || $isNaN(tv)) { throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); } var weekday = weekdays[WeekDay(tv)]; var month = months[MonthFromTime(tv)]; var day = padTimeComponent(DateFromTime(tv)); var year = padTimeComponent(YearFromTime(tv), 4); return weekday + '\x20' + month + '\x20' + day + '\x20' + year; };