fast-unique-numbers
Advanced tools
Comparing version 2.0.4 to 2.1.0
@@ -7,2 +7,6 @@ const LAST_NUMBER_WEAK_MAP = new WeakMap(); | ||
const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; | ||
const cache = (collection, nextNumber) => { | ||
LAST_NUMBER_WEAK_MAP.set(collection, nextNumber); | ||
return nextNumber; | ||
}; | ||
export const generateUniqueNumber = (collection) => { | ||
@@ -14,5 +18,14 @@ const lastNumber = LAST_NUMBER_WEAK_MAP.get(collection); | ||
* increase the last number by one or reset it to 0 if we reached the upper | ||
* bound of SMIs (which stands for small integers). | ||
* bound of SMIs (which stands for small integers). When the last number is | ||
* unknown it is assumed that the collection contains zero based consecutive | ||
* numbers. | ||
*/ | ||
let nextNumber = (lastNumber === undefined || lastNumber > 2147483648) ? 0 : lastNumber + 1; | ||
let nextNumber = (lastNumber === undefined) ? | ||
collection.size : | ||
(lastNumber > 2147483648) ? | ||
0 : | ||
lastNumber + 1; | ||
if (!collection.has(nextNumber)) { | ||
return cache(collection, nextNumber); | ||
} | ||
/* | ||
@@ -28,4 +41,3 @@ * If there are less than half of 2 ** 31 numbers stored in the collection, | ||
} | ||
LAST_NUMBER_WEAK_MAP.set(collection, nextNumber); | ||
return nextNumber; | ||
return cache(collection, nextNumber); | ||
} | ||
@@ -40,5 +52,4 @@ // Quickly check if there is a theoretical chance to generate a new number. | ||
} | ||
LAST_NUMBER_WEAK_MAP.set(collection, nextNumber); | ||
return nextNumber; | ||
return cache(collection, nextNumber); | ||
}; | ||
//# sourceMappingURL=/build/es2015/helpers/generate-unique-number.js.map |
@@ -13,2 +13,6 @@ (function (global, factory) { | ||
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; | ||
var cache = function cache(collection, nextNumber) { | ||
LAST_NUMBER_WEAK_MAP.set(collection, nextNumber); | ||
return nextNumber; | ||
}; | ||
var generateUniqueNumber = function generateUniqueNumber(collection) { | ||
@@ -20,5 +24,10 @@ var lastNumber = LAST_NUMBER_WEAK_MAP.get(collection); | ||
* increase the last number by one or reset it to 0 if we reached the upper | ||
* bound of SMIs (which stands for small integers). | ||
* bound of SMIs (which stands for small integers). When the last number is | ||
* unknown it is assumed that the collection contains zero based consecutive | ||
* numbers. | ||
*/ | ||
var nextNumber = lastNumber === undefined || lastNumber > 2147483648 ? 0 : lastNumber + 1; | ||
var nextNumber = lastNumber === undefined ? collection.size : lastNumber > 2147483648 ? 0 : lastNumber + 1; | ||
if (!collection.has(nextNumber)) { | ||
return cache(collection, nextNumber); | ||
} | ||
/* | ||
@@ -34,4 +43,3 @@ * If there are less than half of 2 ** 31 numbers stored in the collection, | ||
} | ||
LAST_NUMBER_WEAK_MAP.set(collection, nextNumber); | ||
return nextNumber; | ||
return cache(collection, nextNumber); | ||
} | ||
@@ -46,4 +54,3 @@ // Quickly check if there is a theoretical chance to generate a new number. | ||
} | ||
LAST_NUMBER_WEAK_MAP.set(collection, nextNumber); | ||
return nextNumber; | ||
return cache(collection, nextNumber); | ||
}; | ||
@@ -50,0 +57,0 @@ |
@@ -7,2 +7,6 @@ var LAST_NUMBER_WEAK_MAP = new WeakMap(); | ||
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; | ||
var cache = function (collection, nextNumber) { | ||
LAST_NUMBER_WEAK_MAP.set(collection, nextNumber); | ||
return nextNumber; | ||
}; | ||
export var generateUniqueNumber = function (collection) { | ||
@@ -14,5 +18,14 @@ var lastNumber = LAST_NUMBER_WEAK_MAP.get(collection); | ||
* increase the last number by one or reset it to 0 if we reached the upper | ||
* bound of SMIs (which stands for small integers). | ||
* bound of SMIs (which stands for small integers). When the last number is | ||
* unknown it is assumed that the collection contains zero based consecutive | ||
* numbers. | ||
*/ | ||
var nextNumber = (lastNumber === undefined || lastNumber > 2147483648) ? 0 : lastNumber + 1; | ||
var nextNumber = (lastNumber === undefined) ? | ||
collection.size : | ||
(lastNumber > 2147483648) ? | ||
0 : | ||
lastNumber + 1; | ||
if (!collection.has(nextNumber)) { | ||
return cache(collection, nextNumber); | ||
} | ||
/* | ||
@@ -28,4 +41,3 @@ * If there are less than half of 2 ** 31 numbers stored in the collection, | ||
} | ||
LAST_NUMBER_WEAK_MAP.set(collection, nextNumber); | ||
return nextNumber; | ||
return cache(collection, nextNumber); | ||
} | ||
@@ -40,5 +52,4 @@ // Quickly check if there is a theoretical chance to generate a new number. | ||
} | ||
LAST_NUMBER_WEAK_MAP.set(collection, nextNumber); | ||
return nextNumber; | ||
return cache(collection, nextNumber); | ||
}; | ||
//# sourceMappingURL=/build/es2015/helpers/generate-unique-number.js.map |
@@ -12,2 +12,6 @@ 'use strict'; | ||
const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; | ||
const cache = (collection, nextNumber) => { | ||
LAST_NUMBER_WEAK_MAP.set(collection, nextNumber); | ||
return nextNumber; | ||
}; | ||
const generateUniqueNumber = exports.generateUniqueNumber = collection => { | ||
@@ -19,5 +23,10 @@ const lastNumber = LAST_NUMBER_WEAK_MAP.get(collection); | ||
* increase the last number by one or reset it to 0 if we reached the upper | ||
* bound of SMIs (which stands for small integers). | ||
* bound of SMIs (which stands for small integers). When the last number is | ||
* unknown it is assumed that the collection contains zero based consecutive | ||
* numbers. | ||
*/ | ||
let nextNumber = lastNumber === undefined || lastNumber > 2147483648 ? 0 : lastNumber + 1; | ||
let nextNumber = lastNumber === undefined ? collection.size : lastNumber > 2147483648 ? 0 : lastNumber + 1; | ||
if (!collection.has(nextNumber)) { | ||
return cache(collection, nextNumber); | ||
} | ||
/* | ||
@@ -33,4 +42,3 @@ * If there are less than half of 2 ** 31 numbers stored in the collection, | ||
} | ||
LAST_NUMBER_WEAK_MAP.set(collection, nextNumber); | ||
return nextNumber; | ||
return cache(collection, nextNumber); | ||
} | ||
@@ -45,5 +53,4 @@ // Quickly check if there is a theoretical chance to generate a new number. | ||
} | ||
LAST_NUMBER_WEAK_MAP.set(collection, nextNumber); | ||
return nextNumber; | ||
return cache(collection, nextNumber); | ||
}; | ||
//# sourceMappingURL=/build/es2015/helpers/generate-unique-number.js.map |
@@ -30,4 +30,4 @@ { | ||
"cz-conventional-changelog": "^2.1.0", | ||
"eslint": "^4.19.1", | ||
"eslint-config-holy-grail": "^27.0.2", | ||
"eslint": "^5.0.1", | ||
"eslint-config-holy-grail": "^28.0.0", | ||
"greenkeeper-lockfile": "^1.15.1", | ||
@@ -42,3 +42,3 @@ "grunt": "^1.0.3", | ||
"grunt-tslint": "^5.0.2", | ||
"gruntify-eslint": "^4.0.0", | ||
"gruntify-eslint": "^5.0.0", | ||
"husky": "^0.14.3", | ||
@@ -57,12 +57,12 @@ "karma": "^2.0.4", | ||
"mocha": "^5.2.0", | ||
"rollup": "^0.61.1", | ||
"rollup-plugin-babel": "^3.0.4", | ||
"sinon": "^6.0.0", | ||
"rollup": "^0.62.0", | ||
"rollup-plugin-babel": "^3.0.5", | ||
"sinon": "^6.0.1", | ||
"sinon-chai": "^3.2.0", | ||
"ts-loader": "^4.4.1", | ||
"tsconfig-holy-grail": "^5.0.0", | ||
"ts-loader": "^4.4.2", | ||
"tsconfig-holy-grail": "^5.0.4", | ||
"tslint": "^5.10.0", | ||
"tslint-config-holy-grail": "^30.0.0", | ||
"tslint-config-holy-grail": "^32.0.0", | ||
"typescript": "^2.9.2", | ||
"webpack": "^4.12.0" | ||
"webpack": "^4.14.0" | ||
}, | ||
@@ -95,3 +95,3 @@ "engines": { | ||
"types": "build/es2015/module.d.ts", | ||
"version": "2.0.4" | ||
"version": "2.1.0" | ||
} |
@@ -8,2 +8,8 @@ const LAST_NUMBER_WEAK_MAP = new WeakMap<(Map<number, any> | Set<number>), number>(); | ||
const cache = (collection: (Map<number, any> | Set<number>), nextNumber: number) => { | ||
LAST_NUMBER_WEAK_MAP.set(collection, nextNumber); | ||
return nextNumber; | ||
}; | ||
export const generateUniqueNumber = (collection: (Map<number, any> | Set<number>)): number => { | ||
@@ -16,6 +22,16 @@ const lastNumber = LAST_NUMBER_WEAK_MAP.get(collection); | ||
* increase the last number by one or reset it to 0 if we reached the upper | ||
* bound of SMIs (which stands for small integers). | ||
* bound of SMIs (which stands for small integers). When the last number is | ||
* unknown it is assumed that the collection contains zero based consecutive | ||
* numbers. | ||
*/ | ||
let nextNumber = (lastNumber === undefined || lastNumber > 2147483648) ? 0 : lastNumber + 1; | ||
let nextNumber = (lastNumber === undefined) ? | ||
collection.size : | ||
(lastNumber > 2147483648) ? | ||
0 : | ||
lastNumber + 1; | ||
if (!collection.has(nextNumber)) { | ||
return cache(collection, nextNumber); | ||
} | ||
/* | ||
@@ -32,5 +48,3 @@ * If there are less than half of 2 ** 31 numbers stored in the collection, | ||
LAST_NUMBER_WEAK_MAP.set(collection, nextNumber); | ||
return nextNumber; | ||
return cache(collection, nextNumber); | ||
} | ||
@@ -48,5 +62,3 @@ | ||
LAST_NUMBER_WEAK_MAP.set(collection, nextNumber); | ||
return nextNumber; | ||
return cache(collection, nextNumber); | ||
}; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
22752
318