Generate an unique and increment id
Create a counter that returns 0, 1, 2… on successive calls.
function createIdGenerator(start = 0) {
let id = start;
return () => id++;
}
Usage
const nextId = createIdGenerator();
[nextId(), nextId(), nextId()]; // → [0, 1, 2]
const other = createIdGenerator(100);
other(); // → 100
Know the limits
- The original assigned to an undeclared id: a ReferenceError in strict mode and ES modules, a leaked global otherwise.
- Unique only within one process until it restarts. For IDs shared across servers, requests or retries, use crypto.randomUUID() or a database sequence.
The function above is the code the usage lines run. It does not validate its arguments; add checks where it receives untrusted input.
Source & maintenance
Based on Generate an unique and increment id from the original 1loc collection by Nguyen Huu Phuoc. Copyright (c) 2020 phuoc-ng. MIT licensed.
Declares the counter; the original assigned to an undeclared variable, which throws in strict mode and ES modules. Documented as a reference with executed usage lines. Original MDX retained as inert source evidence.
Maintained by Oveyon. Source commit: 14b481cf60df. Read the license.
Keep exploring
- Convert Celsius to Fahrenheit — Apply the temperature conversion without rounding the result.
- Convert hex to RGB — Expand #rgb if needed and read the red, green and blue channels.
- Convert URL parameters to object — Read a query string into an object; repeated keys become arrays.