@kikiutils/shared 18.0.0 → 18.0.1

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/dist/time.d.ts CHANGED
@@ -1,4 +1,24 @@
1
1
  //#region src/time.d.ts
2
+ /**
3
+ * Delays execution until the specified duration elapses or the signal is aborted.
4
+ *
5
+ * Aborting the signal resolves the promise normally without throwing.
6
+ *
7
+ * @param {number} ms - Delay duration in milliseconds
8
+ * @param {AbortSignal} [signal] - Optional signal used to end the delay early
9
+ *
10
+ * @returns {Promise<void>} Resolves when the delay completes or the signal is aborted
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { delay } from '@kikiutils/shared/time';
15
+ *
16
+ * const controller = new AbortController();
17
+ * setTimeout(() => controller.abort(), 1000);
18
+ * await delay(5000, controller.signal); // resolves after ~1s
19
+ * ```
20
+ */
21
+ declare function delay(ms: number, signal?: AbortSignal): Promise<void>;
2
22
  /**
3
23
  * Delays execution until the specified duration elapses or the signal is aborted.
4
24
  *
@@ -20,5 +40,5 @@
20
40
  */
21
41
  declare function delayOrThrow(ms: number, signal?: AbortSignal): Promise<void>;
22
42
  //#endregion
23
- export { delayOrThrow };
43
+ export { delay, delayOrThrow };
24
44
  //# sourceMappingURL=time.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"time.d.ts","names":[],"sources":["../src/time.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;iBAmBgB,aAAa,YAAY,SAAS,cAAc"}
1
+ {"version":3,"file":"time.d.ts","names":[],"sources":["../src/time.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;iBAmBgB,MAAM,YAAY,SAAS,cAAc;;;;;;;;;;;;;;;;;;;;iBAsCzC,aAAa,YAAY,SAAS,cAAc"}
package/dist/time.js CHANGED
@@ -2,6 +2,40 @@
2
2
  /**
3
3
  * Delays execution until the specified duration elapses or the signal is aborted.
4
4
  *
5
+ * Aborting the signal resolves the promise normally without throwing.
6
+ *
7
+ * @param {number} ms - Delay duration in milliseconds
8
+ * @param {AbortSignal} [signal] - Optional signal used to end the delay early
9
+ *
10
+ * @returns {Promise<void>} Resolves when the delay completes or the signal is aborted
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { delay } from '@kikiutils/shared/time';
15
+ *
16
+ * const controller = new AbortController();
17
+ * setTimeout(() => controller.abort(), 1000);
18
+ * await delay(5000, controller.signal); // resolves after ~1s
19
+ * ```
20
+ */
21
+ function delay(ms, signal) {
22
+ return new Promise((resolve) => {
23
+ if (signal?.aborted) {
24
+ resolve();
25
+ return;
26
+ }
27
+ const done = () => {
28
+ clearTimeout(timeout);
29
+ signal?.removeEventListener("abort", done);
30
+ resolve();
31
+ };
32
+ const timeout = setTimeout(done, ms);
33
+ signal?.addEventListener("abort", done, { once: true });
34
+ });
35
+ }
36
+ /**
37
+ * Delays execution until the specified duration elapses or the signal is aborted.
38
+ *
5
39
  * Aborting the signal rejects the promise with the signal's abort reason.
6
40
  *
7
41
  * @param {number} ms - Delay duration in milliseconds
@@ -36,6 +70,6 @@ function delayOrThrow(ms, signal) {
36
70
  });
37
71
  }
38
72
  //#endregion
39
- export { delayOrThrow };
73
+ export { delay, delayOrThrow };
40
74
 
41
75
  //# sourceMappingURL=time.js.map
package/dist/time.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","names":[],"sources":["../src/time.ts"],"sourcesContent":["/**\n * Delays execution until the specified duration elapses or the signal is aborted.\n *\n * Aborting the signal rejects the promise with the signal's abort reason.\n *\n * @param {number} ms - Delay duration in milliseconds\n * @param {AbortSignal} [signal] - Optional signal used to abort the delay\n *\n * @returns {Promise<void>} Resolves when the delay completes or rejects when the signal is aborted\n *\n * @example\n * ```typescript\n * import { delayOrThrow } from '@kikiutils/shared/time';\n *\n * const controller = new AbortController();\n * setTimeout(() => controller.abort(), 1000);\n * await delayOrThrow(5000, controller.signal); // rejects after ~1s\n * ```\n */\nexport function delayOrThrow(ms: number, signal?: AbortSignal): Promise<void> {\n return new Promise((resolve, reject) => {\n if (signal?.aborted) {\n reject(signal.reason);\n return;\n }\n\n const onAbort = () => {\n // eslint-disable-next-line ts/no-use-before-define\n clearTimeout(timeout);\n reject(signal!.reason);\n };\n\n const timeout = setTimeout(\n () => {\n signal?.removeEventListener('abort', onAbort);\n resolve();\n },\n ms,\n );\n\n signal?.addEventListener('abort', onAbort, { once: true });\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAmBA,SAAgB,aAAa,IAAY,QAAqC;CAC1E,OAAO,IAAI,SAAS,SAAS,WAAW;EACpC,IAAI,QAAQ,SAAS;GACjB,OAAO,OAAO,MAAM;GACpB;EACJ;EAEA,MAAM,gBAAgB;GAElB,aAAa,OAAO;GACpB,OAAO,OAAQ,MAAM;EACzB;EAEA,MAAM,UAAU,iBACN;GACF,QAAQ,oBAAoB,SAAS,OAAO;GAC5C,QAAQ;EACZ,GACA,EACJ;EAEA,QAAQ,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;CAC7D,CAAC;AACL"}
1
+ {"version":3,"file":"time.js","names":[],"sources":["../src/time.ts"],"sourcesContent":["/**\n * Delays execution until the specified duration elapses or the signal is aborted.\n *\n * Aborting the signal resolves the promise normally without throwing.\n *\n * @param {number} ms - Delay duration in milliseconds\n * @param {AbortSignal} [signal] - Optional signal used to end the delay early\n *\n * @returns {Promise<void>} Resolves when the delay completes or the signal is aborted\n *\n * @example\n * ```typescript\n * import { delay } from '@kikiutils/shared/time';\n *\n * const controller = new AbortController();\n * setTimeout(() => controller.abort(), 1000);\n * await delay(5000, controller.signal); // resolves after ~1s\n * ```\n */\nexport function delay(ms: number, signal?: AbortSignal): Promise<void> {\n return new Promise((resolve) => {\n if (signal?.aborted) {\n resolve();\n return;\n }\n\n const done = () => {\n // eslint-disable-next-line ts/no-use-before-define\n clearTimeout(timeout);\n signal?.removeEventListener('abort', done);\n resolve();\n };\n\n const timeout = setTimeout(done, ms);\n signal?.addEventListener('abort', done, { once: true });\n });\n}\n\n/**\n * Delays execution until the specified duration elapses or the signal is aborted.\n *\n * Aborting the signal rejects the promise with the signal's abort reason.\n *\n * @param {number} ms - Delay duration in milliseconds\n * @param {AbortSignal} [signal] - Optional signal used to abort the delay\n *\n * @returns {Promise<void>} Resolves when the delay completes or rejects when the signal is aborted\n *\n * @example\n * ```typescript\n * import { delayOrThrow } from '@kikiutils/shared/time';\n *\n * const controller = new AbortController();\n * setTimeout(() => controller.abort(), 1000);\n * await delayOrThrow(5000, controller.signal); // rejects after ~1s\n * ```\n */\nexport function delayOrThrow(ms: number, signal?: AbortSignal): Promise<void> {\n return new Promise((resolve, reject) => {\n if (signal?.aborted) {\n reject(signal.reason);\n return;\n }\n\n const onAbort = () => {\n // eslint-disable-next-line ts/no-use-before-define\n clearTimeout(timeout);\n reject(signal!.reason);\n };\n\n const timeout = setTimeout(\n () => {\n signal?.removeEventListener('abort', onAbort);\n resolve();\n },\n ms,\n );\n\n signal?.addEventListener('abort', onAbort, { once: true });\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAmBA,SAAgB,MAAM,IAAY,QAAqC;CACnE,OAAO,IAAI,SAAS,YAAY;EAC5B,IAAI,QAAQ,SAAS;GACjB,QAAQ;GACR;EACJ;EAEA,MAAM,aAAa;GAEf,aAAa,OAAO;GACpB,QAAQ,oBAAoB,SAAS,IAAI;GACzC,QAAQ;EACZ;EAEA,MAAM,UAAU,WAAW,MAAM,EAAE;EACnC,QAAQ,iBAAiB,SAAS,MAAM,EAAE,MAAM,KAAK,CAAC;CAC1D,CAAC;AACL;;;;;;;;;;;;;;;;;;;;AAqBA,SAAgB,aAAa,IAAY,QAAqC;CAC1E,OAAO,IAAI,SAAS,SAAS,WAAW;EACpC,IAAI,QAAQ,SAAS;GACjB,OAAO,OAAO,MAAM;GACpB;EACJ;EAEA,MAAM,gBAAgB;GAElB,aAAa,OAAO;GACpB,OAAO,OAAQ,MAAM;EACzB;EAEA,MAAM,UAAU,iBACN;GACF,QAAQ,oBAAoB,SAAS,OAAO;GAC5C,QAAQ;EACZ,GACA,EACJ;EAEA,QAAQ,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;CAC7D,CAAC;AACL"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kikiutils/shared",
3
3
  "type": "module",
4
- "version": "18.0.0",
4
+ "version": "18.0.1",
5
5
  "description": "A lightweight and modular utility library for modern JavaScript and TypeScript — includes secure hashing, flexible logging, datetime tools, Vue/web helpers, storage abstraction, and more.",
6
6
  "author": "kiki-kanri",
7
7
  "license": "MIT",
package/src/time.ts CHANGED
@@ -1,3 +1,41 @@
1
+ /**
2
+ * Delays execution until the specified duration elapses or the signal is aborted.
3
+ *
4
+ * Aborting the signal resolves the promise normally without throwing.
5
+ *
6
+ * @param {number} ms - Delay duration in milliseconds
7
+ * @param {AbortSignal} [signal] - Optional signal used to end the delay early
8
+ *
9
+ * @returns {Promise<void>} Resolves when the delay completes or the signal is aborted
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { delay } from '@kikiutils/shared/time';
14
+ *
15
+ * const controller = new AbortController();
16
+ * setTimeout(() => controller.abort(), 1000);
17
+ * await delay(5000, controller.signal); // resolves after ~1s
18
+ * ```
19
+ */
20
+ export function delay(ms: number, signal?: AbortSignal): Promise<void> {
21
+ return new Promise((resolve) => {
22
+ if (signal?.aborted) {
23
+ resolve();
24
+ return;
25
+ }
26
+
27
+ const done = () => {
28
+ // eslint-disable-next-line ts/no-use-before-define
29
+ clearTimeout(timeout);
30
+ signal?.removeEventListener('abort', done);
31
+ resolve();
32
+ };
33
+
34
+ const timeout = setTimeout(done, ms);
35
+ signal?.addEventListener('abort', done, { once: true });
36
+ });
37
+ }
38
+
1
39
  /**
2
40
  * Delays execution until the specified duration elapses or the signal is aborted.
3
41
  *