The arguments to generate a key from
A string key suitable for caching
const key = serializer([{a: 1, b: 2}, "test", 123]);
// Returns: '{"a":1,"b":2}|test|123'
const key2 = serializer([new Date(1000), /test/i]);
// Returns: 'd:1000|r:/test/i'
// Functions get unique IDs
const fn1 = () => {};
const fn2 = () => {};
serializer([fn1]) !== serializer([fn2]); // true
serializer([fn1]) === serializer([fn1]); // true
Enhanced key generation that handles object property ordering, circular references, and non-serializable values with unique IDs.
This function provides more reliable key generation than JSON.stringify by handling edge cases like circular references, consistent object key ordering, and various JavaScript types.
Non-serializable types get unique instance IDs:
fn:_abc123(unique per function instance)sym:_abc123(unique per symbol instance)e:_abc123(unique per error instance)wm:_abc123(unique per instance)ws:_abc123(unique per instance)circ:_abc123(unique per object)