UNPKG

respond-framework

Version:
30 lines (28 loc) 1.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.incrementCounter = exports.generateNumericCode = exports.generateId = exports.generateCode = exports.createCounterRef = void 0; var _bson = require("bson"); var _constants = require("../helpers/constants.js"); const createCounterRef = seed => { ref.value = seed?.__counterRef.value ?? 0; return ref; }; exports.createCounterRef = createCounterRef; const ref = { value: 0 }; const genNumber = () => ref.value++; const genId = () => ('id' + ref.value++).padEnd(24, '0'); // mimic new ObjectId().toString() from mongo const genCode = (length = 4) => ('' + ref.value++).padEnd(length, '0'); // only containers letters in production const genNumericCode = (length = 4) => ('' + ref.value++).padEnd(length, '0'); const incrementCounter = exports.incrementCounter = genNumber; const generateId = exports.generateId = _constants.isDev ? genId : () => new _bson.ObjectId().toString(); const generateNumericCode = exports.generateNumericCode = _constants.isDev ? genNumericCode : (length = 4) => // max length 16 Math.random().toString().slice(2, length + 2).padStart(length, '0'); // if Math.random() returns eg .5, need to pad it const generateCode = exports.generateCode = _constants.isDev ? genCode : (length = 4) => // max length 10 Math.random().toString(36) // radix arg reduces max length .slice(2, length + 2).toUpperCase().padStart(length, '0');