@clickup/ent-framework
Version:
A PostgreSQL graph-database-alike library with microsharding and row-level security
14 lines (12 loc) • 457 B
text/typescript
const $OBJECT_ID = Symbol("$OBJECT_ID");
let seq = 0;
/**
* Mimics the behavior of Python's `id()` function. The idea is that often times
* we can't use e.g. obj.constructor.name, because it got mangled by e.g.
* UglifyJS during bundling. But to build cache keys, we still need some
* per-object identifier.
*/
export function objectId(objIn: object): number {
const obj = objIn as { [$OBJECT_ID]?: number };
return (obj[$OBJECT_ID] ??= seq++);
}