n-digit-token
Version:
Cryptographically secure pseudo-random token of n digits
31 lines (30 loc) • 1.13 kB
JavaScript
;
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;