A helper for creating render-friendly keys, useful for uniquely identifying resources, caching, testing, and rendering. Generated keys can also be parsed back into their original components.
- Generates structured, deterministic keys for various use cases.
- Supports strings, numbers, booleans, arrays, and objects.
- Converts nullish values into a standard placeholder (
"unknown"). - Provides a parser (
parseUiKey) to revert keys back to their original components.
npm install @future-widget-lab/ui-keysimport { createUiKey } from '@future-widget-lab/ui-keys';
const key1 = createUiKey('user', 42);
console.log(key1); // "user::42"
const key2 = createUiKey('post', { id: 123, category: 'tech' });
console.log(key2); // "post::@{"id":123,"category":"tech"}"import { parseUiKey } from '@future-widget-lab/ui-keys';
const parsedKey = parseUiKey(`post::@{"id":123,"category":"tech"}`);
console.log(parsedKey); // ["post", { id: 123, category: "tech" }]Generates a structured key from the provided arguments.
- Strings, numbers, and booleans are converted to their string representations.
- Objects and arrays are serialized using
flatted. - Nullish values (like
nullandundefined) are replaced with"unknown".
| Parameter | Type | Description |
|---|---|---|
...args |
unknown[] |
Values to be included in the generated key. |
Parses a UI key back into its original components.
- Splits the key into its original components.
- Converts numeric and boolean values back to their types.
- Parses objects and arrays serialized with
flatted. "unknown"is converted tonull.
| Parameter | Type | Description |
|---|---|---|
key |
string |
The UI key to be parsed. |
MIT