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

62 lines (50 loc) 2.4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.generateObjSchema = exports.enumArraySchema = exports.arraySchema = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } /** * JSON schema to accept an array of unique strings */ var arraySchema = { type: 'array', items: { type: 'string' }, uniqueItems: true, additionalItems: false }; /** * JSON schema to accept an array of unique strings from an enumerated list. */ exports.arraySchema = arraySchema; var enumArraySchema = function enumArraySchema() { var enumeratedList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var minItems = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; return _objectSpread(_objectSpread({}, arraySchema), {}, { items: { type: 'string', "enum": enumeratedList }, minItems }); }; /** * Factory function to generate an object schema * with specified properties object */ exports.enumArraySchema = enumArraySchema; var generateObjSchema = function generateObjSchema() { var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var required = arguments.length > 1 ? arguments[1] : undefined; return { type: 'object', properties, required }; }; exports.generateObjSchema = generateObjSchema;