id-shorter
Version:
A little module that replaces a long ObjectId value with short one keeping uniqueness. A charset for conversion is fully configurable and does not depend on requirement of 64 symbols. So it is possible to use only letters, letters+digits, digits etc.
71 lines (65 loc) • 2.05 kB
JavaScript
var ObjectId = require('bson').ObjectId;
var ShortId = require('./index.js');
var mongoDBShortId = ShortId();
// console.log('Default configuration: very short mongoDB object Id');
// for (var i = 0; i < 2; i++)
// {
// var testObjectId = new ObjectId();
// var result = mongoDBShortId.encode(testObjectId);
// console.log(testObjectId + ' = ' + result);
// }
//
// var shortId = ShortId({
// isFullId: true
// });
// console.log('\nUse full ObjectId value with reverse possibility');
//
// for (var i = 0; i < 2; i++)
// {
// var testObjectId = new ObjectId();
// var result = shortId.encode(testObjectId);
// console.log(testObjectId + ' = ' + result);
// }
//
// console.log('\nTest reversible decoding');
// var decodeResult = shortId.decode(result);
// console.log(result + ' = ' + decodeResult);
//
// var result = 'xk4pZ11XpLsWPy1Cl';
// var decodeResult = shortId.decode(result);
// console.log(result + ' = ' + decodeResult + '(566062cfa72f67b07e644521)');
//
// console.log('\nTest absolutely custom config');
//
// var Bin2Hex = ShortId({
// base: '01',
// encoding: '0123456789abcdef',
// isInverse: false,
// //isFullId: true,
// });
//
// var sourceValue = '0000000100100011010001010110011110001001101010111100110111101111'
// var result = Bin2Hex.encode(sourceValue);
// console.log('Binary to HEX:', sourceValue + ' = ' + result);
//
// var Bin2Hex = ShortId({
// base: '01',
// encoding: '0123456789abcdef',
// isInverse: true,
// //isFullId: true, // No need - base set is not by default
// });
//
// var sourceValue = '0000000100100011010001010110011110001001101010111100110111101111'
// var result = Bin2Hex.encode(sourceValue);
// console.log('Binary to HEX:', sourceValue + ' = ' + result);
//
console.log('\nTest length');
var TT = ShortId({
encoding: '0123456789ABCDEFGHIJKLMNOPQRSTUV',
isInverse: false,
});
for (var i = 0 ; i < 20 ; i++)
{
var source = new ObjectId();
console.log('Source:', source + ' = ' + TT.encode(source));
}