@sveltebase/utils 0.5.3 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -25,6 +25,7 @@ bun add svelte-sonner
|
|
|
25
25
|
- `tryCatch` — run a task with built-in toast/error handling
|
|
26
26
|
- `timestamps` — generate `createdAt` / `updatedAt` values
|
|
27
27
|
- `wait` — simple promise-based delay helper
|
|
28
|
+
- `createId` — generate random UUIDs with fallback support
|
|
28
29
|
- `TryCatchReturn` — shared return type for async helpers
|
|
29
30
|
|
|
30
31
|
## Exports
|
|
@@ -33,6 +34,7 @@ bun add svelte-sonner
|
|
|
33
34
|
import {
|
|
34
35
|
Cookies,
|
|
35
36
|
createAsync,
|
|
37
|
+
createId,
|
|
36
38
|
timestamps,
|
|
37
39
|
tryCatch,
|
|
38
40
|
wait,
|
|
@@ -261,6 +263,26 @@ Useful for:
|
|
|
261
263
|
|
|
262
264
|
---
|
|
263
265
|
|
|
266
|
+
## `createId`
|
|
267
|
+
|
|
268
|
+
Generates a version 4 UUID compliant string. It uses `globalThis.crypto.randomUUID()` when available in modern environments, falls back to `globalThis.crypto.getRandomValues()` if available (e.g. in most serverless/edge environments), and has a pure JS `Math.random` fallback for absolute compatibility.
|
|
269
|
+
|
|
270
|
+
### Example
|
|
271
|
+
|
|
272
|
+
```ts
|
|
273
|
+
import { createId } from "@sveltebase/utils";
|
|
274
|
+
|
|
275
|
+
const id = createId(); // "e3b0c442-98fc-1c14-9afb-f4c8996fb924"
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
Useful for:
|
|
279
|
+
|
|
280
|
+
- generating unique client-side element IDs
|
|
281
|
+
- local database key creation (e.g. Dexie/IndexedDB)
|
|
282
|
+
- generating temp keys for list items
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
264
286
|
## `TryCatchReturn`
|
|
265
287
|
|
|
266
288
|
A shared type for functions used with `createAsync` and `tryCatch`.
|
package/dist/index.d.ts
CHANGED
|
@@ -22,4 +22,5 @@ export type { TryCatchReturn } from "./async.svelte.js";
|
|
|
22
22
|
export declare function tryCatch(task: () => Promise<TryCatchReturn> | TryCatchReturn): Promise<void>;
|
|
23
23
|
export declare const wait: (ms: number) => Promise<unknown>;
|
|
24
24
|
export { createAsync } from "./async.svelte.js";
|
|
25
|
+
export declare function createId(): string;
|
|
25
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAuCD,eAAO,MAAM,OAAO;cACR,MAAM,SAAS,MAAM,YAAW,aAAa,GAAQ,IAAI;cA6CzD,MAAM,GAAG,MAAM,GAAG,IAAI;iBAYnB,MAAM,YAAW,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAQ,IAAI;CAGjF,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,EAC1C,UAAU,EAAE,CAAC,GACZ,CAAC,SAAS,IAAI,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAInF;AAED,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,iBAkBlF;AAED,eAAO,MAAM,IAAI,GAAI,IAAI,MAAM,qBAAsD,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAuCD,eAAO,MAAM,OAAO;cACR,MAAM,SAAS,MAAM,YAAW,aAAa,GAAQ,IAAI;cA6CzD,MAAM,GAAG,MAAM,GAAG,IAAI;iBAYnB,MAAM,YAAW,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAQ,IAAI;CAGjF,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,EAC1C,UAAU,EAAE,CAAC,GACZ,CAAC,SAAS,IAAI,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAInF;AAED,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,iBAkBlF;AAED,eAAO,MAAM,IAAI,GAAI,IAAI,MAAM,qBAAsD,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,wBAAgB,QAAQ,IAAI,MAAM,CAgBjC"}
|
package/dist/index.js
CHANGED
|
@@ -94,3 +94,18 @@ export async function tryCatch(task) {
|
|
|
94
94
|
}
|
|
95
95
|
export const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
96
96
|
export { createAsync } from "./async.svelte.js";
|
|
97
|
+
export function createId() {
|
|
98
|
+
if (typeof globalThis !== "undefined" && globalThis.crypto?.randomUUID) {
|
|
99
|
+
return globalThis.crypto.randomUUID();
|
|
100
|
+
}
|
|
101
|
+
if (typeof globalThis !== "undefined" && globalThis.crypto?.getRandomValues) {
|
|
102
|
+
// Fallback using crypto.getRandomValues (RFC 4122 version 4 UUID compliant)
|
|
103
|
+
return ("" + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) => (c ^ (globalThis.crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16));
|
|
104
|
+
}
|
|
105
|
+
// Fallback using Math.random (works absolutely anywhere)
|
|
106
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
107
|
+
const r = (Math.random() * 16) | 0;
|
|
108
|
+
const v = c === "x" ? r : (r & 0x3) | 0x8;
|
|
109
|
+
return v.toString(16);
|
|
110
|
+
});
|
|
111
|
+
}
|