UNPKG

n-digit-token

Version:

Cryptographically secure pseudo-random token of n digits

31 lines (30 loc) 1.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleOptions = void 0; const constants_1 = require("./constants"); const padTokenIfNecessary_1 = require("./padTokenIfNecessary"); /** * Handle token return type and format based on user options. * @param {bigint} secureBigIntToken token * @param {number} length * @param {Options} [options] * @return {string|number|bigint} formatted token */ const handleOptions = (secureBigIntToken, length, options) => { if (!options) { return (0, padTokenIfNecessary_1.padTokenIfNecessary)(length, secureBigIntToken.toString(10)); } switch (options.returnType) { case constants_1.BIGINT: return secureBigIntToken; case constants_1.NUMBER: case constants_1.INTEGER: return Number(secureBigIntToken); default: const tokenString = secureBigIntToken.toString(10); return options.skipPadding ? tokenString : (0, padTokenIfNecessary_1.padTokenIfNecessary)(length, tokenString); } }; exports.handleOptions = handleOptions;