@willbooster/shared-lib 6.0.3 → 6.0.5
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/error.cjs +1 -1
- package/dist/error.cjs.map +1 -1
- package/dist/error.js +1 -1
- package/dist/error.js.map +1 -1
- package/dist/humanize.cjs +1 -1
- package/dist/humanize.cjs.map +1 -1
- package/dist/humanize.js +1 -1
- package/dist/humanize.js.map +1 -1
- package/dist/shuffle.cjs.map +1 -1
- package/dist/shuffle.js.map +1 -1
- package/package.json +11 -11
package/dist/error.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var r=require("./sleep.cjs");exports.errorify=function(r){if(r instanceof Error)return r;if("string"==typeof r)return new Error(r);try{return new Error(JSON.stringify(r))}catch(t){return new Error(String(r))}},exports.ignoreEnoent=function(r){try{return r()}catch(r){if("object"==typeof r&&r&&"code"in r&&"ENOENT"===r.code)return;throw r}},exports.ignoreEnoentAsync=async function(r){try{return await r()}catch(r){if("object"==typeof r&&r&&"code"in r&&"ENOENT"===r.code)return;throw r}},exports.ignoreError=function(r){try{return r()}catch(r){}},exports.ignoreErrorAsync=async function(r){try{return await r()}catch(r){}},exports.withRetry=async function(t,{beforeRetry:e,handleError:n,retryCount:o=3,retryLogger:i,shouldRetry:c,sleepMilliseconds:a=0,updateSleepMilliseconds:s}={}){let u=0;for(;;)try{return await t(u)}catch(t){if(await(null==n?void 0:n(t)),u++,u>=o)throw t;if(c&&!c(t))throw t;a>0&&await r.sleep(a),s&&(a=s(a)),null==i||i(`Retry due to: ${t}\n${t instanceof Error?"---\n"+t.stack:""}`),await(null==e?void 0:e(t))}};
|
|
1
|
+
"use strict";var r=require("./sleep.cjs");exports.errorify=function(r){if(r instanceof Error)return r;if("string"==typeof r)return new Error(r);try{return new Error(JSON.stringify(r))}catch(t){return new Error(String(r))}},exports.ignoreEnoent=function(r){try{return r()}catch(r){if("object"==typeof r&&r&&"code"in r&&"ENOENT"===r.code)return;throw r}},exports.ignoreEnoentAsync=async function(r){try{return await r()}catch(r){if("object"==typeof r&&r&&"code"in r&&"ENOENT"===r.code)return;throw r}},exports.ignoreError=function(r){try{return r()}catch(r){}},exports.ignoreErrorAsync=async function(r){try{return await r()}catch(r){}},exports.withRetry=async function(t,{beforeRetry:e,handleError:n,retryCount:o=3,retryLogger:i,shouldRetry:c,sleepMilliseconds:a=0,updateSleepMilliseconds:s}={}){let u=0;for(;;)try{return await t(u)}catch(t){var y;if(await(null==n?void 0:n(t)),u++,u>=o)throw t;if(c&&!c(t))throw t;a>0&&await r.sleep(a),s&&(a=s(a)),null==i||i(`Retry due to: ${t}\n${t instanceof Error?"---\n"+(null!=(y=t.stack)?y:""):""}`),await(null==e?void 0:e(t))}};
|
|
2
2
|
//# sourceMappingURL=error.cjs.map
|
package/dist/error.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.cjs","sources":["../src/error.ts"],"sourcesContent":["import { sleep } from './sleep.js';\n\n/**\n * Convert an object to an error.\n * @param obj The object to convert.\n */\nexport function errorify(obj: unknown): Error {\n if (obj instanceof Error) return obj;\n if (typeof obj === 'string') return new Error(obj);\n try {\n return new Error(JSON.stringify(obj));\n } catch {\n return new Error(String(obj));\n }\n}\n\nexport function ignoreError<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n // do nothing\n }\n}\n\nexport function ignoreEnoent<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport async function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch {\n // do nothing\n }\n}\n\nexport async function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport interface RetryOptions {\n beforeRetry?: (error: unknown) => Promise<void>;\n handleError?: (error: unknown) => Promise<void>;\n retryCount?: number;\n retryLogger?: (message: string) => void;\n shouldRetry?: (error: unknown) => boolean;\n sleepMilliseconds?: number;\n updateSleepMilliseconds?: (sleepMilliseconds: number) => number;\n}\n\n/**\n * Retry the given function.\n * @param func The function to retry.\n * @param beforeRetry The function to call immediately before retrying.\n * @param handleError The function to call when an error occurs.\n * @param retryCount The maximum number of retries.\n * @param retryLogger The function to log retrying.\n * @param sleepMilliseconds The number of milliseconds to sleep before retrying.\n * @param updateSleepMilliseconds The function to update sleep milliseconds after each retry.\n */\nexport async function withRetry<T>(\n func: (failedCount: number) => T | Promise<T>,\n {\n beforeRetry,\n handleError,\n retryCount = 3,\n retryLogger,\n shouldRetry,\n sleepMilliseconds = 0,\n updateSleepMilliseconds,\n }: RetryOptions = {}\n): Promise<T> {\n let failedCount = 0;\n for (;;) {\n try {\n return await func(failedCount);\n } catch (error) {\n await handleError?.(error);\n failedCount++;\n if (failedCount >= retryCount) {\n throw error;\n }\n if (shouldRetry && !shouldRetry(error)) {\n throw error;\n }\n if (sleepMilliseconds > 0) {\n await sleep(sleepMilliseconds);\n }\n if (updateSleepMilliseconds) {\n sleepMilliseconds = updateSleepMilliseconds(sleepMilliseconds);\n }\n retryLogger?.(`Retry due to: ${error}\n${error instanceof Error ? '---\\n' + error.stack : ''}`);\n await beforeRetry?.(error);\n }\n }\n}\n"],"names":["obj","Error","JSON","stringify","_unused","String","fn","error","code","async","_unused2","_unused3","func","beforeRetry","handleError","retryCount","retryLogger","shouldRetry","sleepMilliseconds","updateSleepMilliseconds","failedCount","sleep","stack"],"mappings":"2DAMO,SAAkBA,GACvB,GAAIA,aAAeC,MAAO,OAAOD,EACjC,GAAmB,iBAARA,EAAkB,OAAO,IAAIC,MAAMD,GAC9C,IACE,OAAO,IAAIC,MAAMC,KAAKC,UAAUH,GAClC,CAAE,MAAAI,GACA,OAAO,IAAIH,MAAMI,OAAOL,GAC1B,CACF,uBAUO,SAAyBM,GAC9B,IACE,OAAOA,GACT,CAAE,MAAOC,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF,4BAUOE,eAAoCH,GACzC,IACE,aAAaA,GACf,CAAE,MAAOC,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF,sBApCO,SAAwBD,GAC7B,IACE,OAAOA,GACT,CAAE,MAAAI,GACA,CAEJ,2BAaOD,eAAmCH,GACxC,IACE,aAAaA,GACf,CAAE,MAAAK,GACA,CAEJ,oBAiCOF,eACLG,GACAC,YACEA,EAAWC,YACXA,EAAWC,WACXA,EAAa,EAACC,YACdA,EAAWC,YACXA,EAAWC,kBACXA,EAAoB,EAACC,wBACrBA,GACgB,IAElB,IAAIC,EAAc,EAClB,OACE,IACE,aAAaR,EAAKQ,EACpB,CAAE,MAAOb,
|
|
1
|
+
{"version":3,"file":"error.cjs","sources":["../src/error.ts"],"sourcesContent":["import { sleep } from './sleep.js';\n\n/**\n * Convert an object to an error.\n * @param obj The object to convert.\n */\nexport function errorify(obj: unknown): Error {\n if (obj instanceof Error) return obj;\n if (typeof obj === 'string') return new Error(obj);\n try {\n return new Error(JSON.stringify(obj));\n } catch {\n return new Error(String(obj));\n }\n}\n\nexport function ignoreError<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n // do nothing\n }\n}\n\nexport function ignoreEnoent<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport async function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch {\n // do nothing\n }\n}\n\nexport async function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport interface RetryOptions {\n beforeRetry?: (error: unknown) => Promise<void>;\n handleError?: (error: unknown) => Promise<void>;\n retryCount?: number;\n retryLogger?: (message: string) => void;\n shouldRetry?: (error: unknown) => boolean;\n sleepMilliseconds?: number;\n updateSleepMilliseconds?: (sleepMilliseconds: number) => number;\n}\n\n/**\n * Retry the given function.\n * @param func The function to retry.\n * @param beforeRetry The function to call immediately before retrying.\n * @param handleError The function to call when an error occurs.\n * @param retryCount The maximum number of retries.\n * @param retryLogger The function to log retrying.\n * @param sleepMilliseconds The number of milliseconds to sleep before retrying.\n * @param updateSleepMilliseconds The function to update sleep milliseconds after each retry.\n */\nexport async function withRetry<T>(\n func: (failedCount: number) => T | Promise<T>,\n {\n beforeRetry,\n handleError,\n retryCount = 3,\n retryLogger,\n shouldRetry,\n sleepMilliseconds = 0,\n updateSleepMilliseconds,\n }: RetryOptions = {}\n): Promise<T> {\n let failedCount = 0;\n for (;;) {\n try {\n return await func(failedCount);\n } catch (error) {\n await handleError?.(error);\n failedCount++;\n if (failedCount >= retryCount) {\n throw error;\n }\n if (shouldRetry && !shouldRetry(error)) {\n throw error;\n }\n if (sleepMilliseconds > 0) {\n await sleep(sleepMilliseconds);\n }\n if (updateSleepMilliseconds) {\n sleepMilliseconds = updateSleepMilliseconds(sleepMilliseconds);\n }\n retryLogger?.(`Retry due to: ${error}\n${error instanceof Error ? '---\\n' + (error.stack ?? '') : ''}`);\n await beforeRetry?.(error);\n }\n }\n}\n"],"names":["obj","Error","JSON","stringify","_unused","String","fn","error","code","async","_unused2","_unused3","func","beforeRetry","handleError","retryCount","retryLogger","shouldRetry","sleepMilliseconds","updateSleepMilliseconds","failedCount","_error$stack","sleep","stack"],"mappings":"2DAMO,SAAkBA,GACvB,GAAIA,aAAeC,MAAO,OAAOD,EACjC,GAAmB,iBAARA,EAAkB,OAAO,IAAIC,MAAMD,GAC9C,IACE,OAAO,IAAIC,MAAMC,KAAKC,UAAUH,GAClC,CAAE,MAAAI,GACA,OAAO,IAAIH,MAAMI,OAAOL,GAC1B,CACF,uBAUO,SAAyBM,GAC9B,IACE,OAAOA,GACT,CAAE,MAAOC,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF,4BAUOE,eAAoCH,GACzC,IACE,aAAaA,GACf,CAAE,MAAOC,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF,sBApCO,SAAwBD,GAC7B,IACE,OAAOA,GACT,CAAE,MAAAI,GACA,CAEJ,2BAaOD,eAAmCH,GACxC,IACE,aAAaA,GACf,CAAE,MAAAK,GACA,CAEJ,oBAiCOF,eACLG,GACAC,YACEA,EAAWC,YACXA,EAAWC,WACXA,EAAa,EAACC,YACdA,EAAWC,YACXA,EAAWC,kBACXA,EAAoB,EAACC,wBACrBA,GACgB,IAElB,IAAIC,EAAc,EAClB,OACE,IACE,aAAaR,EAAKQ,EACpB,CAAE,MAAOb,GAAO,IAAAc,EAGd,SAFiB,MAAXP,OAAW,EAAXA,EAAcP,IACpBa,IACIA,GAAeL,EACjB,MAAMR,EAER,GAAIU,IAAgBA,EAAYV,GAC9B,MAAMA,EAEJW,EAAoB,SAChBI,EAAAA,MAAMJ,GAEVC,IACFD,EAAoBC,EAAwBD,IAEnC,MAAXF,GAAAA,EAAc,iBAAiBT,MACnCA,aAAiBN,MAAQ,SAAsB,OAAfoB,EAAId,EAAMgB,OAAKF,EAAI,IAAM,YACpC,MAAXR,OAAW,EAAXA,EAAcN,GACtB,CAEJ"}
|
package/dist/error.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{sleep as r}from"./sleep.js";function t(r){if(r instanceof Error)return r;if("string"==typeof r)return new Error(r);try{return new Error(JSON.stringify(r))}catch(t){return new Error(String(r))}}function n(r){try{return r()}catch(r){}}function e(r){try{return r()}catch(r){if("object"==typeof r&&r&&"code"in r&&"ENOENT"===r.code)return;throw r}}async function o(r){try{return await r()}catch(r){}}async function i(r){try{return await r()}catch(r){if("object"==typeof r&&r&&"code"in r&&"ENOENT"===r.code)return;throw r}}async function c(t,{beforeRetry:n,handleError:e,retryCount:o=3,retryLogger:i,shouldRetry:c,sleepMilliseconds:a=0,updateSleepMilliseconds:u}={}){let f=0;for(;;)try{return await t(f)}catch(t){if(await(null==e?void 0:e(t)),f++,f>=o)throw t;if(c&&!c(t))throw t;a>0&&await r(a),u&&(a=u(a)),null==i||i(`Retry due to: ${t}\n${t instanceof Error?"---\n"+t.stack:""}`),await(null==n?void 0:n(t))}}export{t as errorify,e as ignoreEnoent,i as ignoreEnoentAsync,n as ignoreError,o as ignoreErrorAsync,c as withRetry};
|
|
1
|
+
import{sleep as r}from"./sleep.js";function t(r){if(r instanceof Error)return r;if("string"==typeof r)return new Error(r);try{return new Error(JSON.stringify(r))}catch(t){return new Error(String(r))}}function n(r){try{return r()}catch(r){}}function e(r){try{return r()}catch(r){if("object"==typeof r&&r&&"code"in r&&"ENOENT"===r.code)return;throw r}}async function o(r){try{return await r()}catch(r){}}async function i(r){try{return await r()}catch(r){if("object"==typeof r&&r&&"code"in r&&"ENOENT"===r.code)return;throw r}}async function c(t,{beforeRetry:n,handleError:e,retryCount:o=3,retryLogger:i,shouldRetry:c,sleepMilliseconds:a=0,updateSleepMilliseconds:u}={}){let f=0;for(;;)try{return await t(f)}catch(t){var l;if(await(null==e?void 0:e(t)),f++,f>=o)throw t;if(c&&!c(t))throw t;a>0&&await r(a),u&&(a=u(a)),null==i||i(`Retry due to: ${t}\n${t instanceof Error?"---\n"+(null!=(l=t.stack)?l:""):""}`),await(null==n?void 0:n(t))}}export{t as errorify,e as ignoreEnoent,i as ignoreEnoentAsync,n as ignoreError,o as ignoreErrorAsync,c as withRetry};
|
|
2
2
|
//# sourceMappingURL=error.js.map
|
package/dist/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sources":["../src/error.ts"],"sourcesContent":["import { sleep } from './sleep.js';\n\n/**\n * Convert an object to an error.\n * @param obj The object to convert.\n */\nexport function errorify(obj: unknown): Error {\n if (obj instanceof Error) return obj;\n if (typeof obj === 'string') return new Error(obj);\n try {\n return new Error(JSON.stringify(obj));\n } catch {\n return new Error(String(obj));\n }\n}\n\nexport function ignoreError<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n // do nothing\n }\n}\n\nexport function ignoreEnoent<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport async function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch {\n // do nothing\n }\n}\n\nexport async function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport interface RetryOptions {\n beforeRetry?: (error: unknown) => Promise<void>;\n handleError?: (error: unknown) => Promise<void>;\n retryCount?: number;\n retryLogger?: (message: string) => void;\n shouldRetry?: (error: unknown) => boolean;\n sleepMilliseconds?: number;\n updateSleepMilliseconds?: (sleepMilliseconds: number) => number;\n}\n\n/**\n * Retry the given function.\n * @param func The function to retry.\n * @param beforeRetry The function to call immediately before retrying.\n * @param handleError The function to call when an error occurs.\n * @param retryCount The maximum number of retries.\n * @param retryLogger The function to log retrying.\n * @param sleepMilliseconds The number of milliseconds to sleep before retrying.\n * @param updateSleepMilliseconds The function to update sleep milliseconds after each retry.\n */\nexport async function withRetry<T>(\n func: (failedCount: number) => T | Promise<T>,\n {\n beforeRetry,\n handleError,\n retryCount = 3,\n retryLogger,\n shouldRetry,\n sleepMilliseconds = 0,\n updateSleepMilliseconds,\n }: RetryOptions = {}\n): Promise<T> {\n let failedCount = 0;\n for (;;) {\n try {\n return await func(failedCount);\n } catch (error) {\n await handleError?.(error);\n failedCount++;\n if (failedCount >= retryCount) {\n throw error;\n }\n if (shouldRetry && !shouldRetry(error)) {\n throw error;\n }\n if (sleepMilliseconds > 0) {\n await sleep(sleepMilliseconds);\n }\n if (updateSleepMilliseconds) {\n sleepMilliseconds = updateSleepMilliseconds(sleepMilliseconds);\n }\n retryLogger?.(`Retry due to: ${error}\n${error instanceof Error ? '---\\n' + error.stack : ''}`);\n await beforeRetry?.(error);\n }\n }\n}\n"],"names":["errorify","obj","Error","JSON","stringify","_unused","String","ignoreError","fn","_unused2","ignoreEnoent","error","code","async","ignoreErrorAsync","_unused3","ignoreEnoentAsync","withRetry","func","beforeRetry","handleError","retryCount","retryLogger","shouldRetry","sleepMilliseconds","updateSleepMilliseconds","failedCount","sleep","stack"],"mappings":"mCAMO,SAASA,EAASC,GACvB,GAAIA,aAAeC,MAAO,OAAOD,EACjC,GAAmB,iBAARA,EAAkB,OAAO,IAAIC,MAAMD,GAC9C,IACE,OAAO,IAAIC,MAAMC,KAAKC,UAAUH,GAClC,CAAE,MAAAI,GACA,OAAO,IAAIH,MAAMI,OAAOL,GAC1B,CACF,CAEO,SAASM,EAAeC,GAC7B,IACE,OAAOA,GACT,CAAE,MAAAC,GACA,CAEJ,CAEO,SAASC,EAAgBF,GAC9B,IACE,OAAOA,GACT,CAAE,MAAOG,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF,CAEOE,eAAeC,EAAoBN,GACxC,IACE,aAAaA,GACf,CAAE,MAAAO,GACA,CAEJ,CAEOF,eAAeG,EAAqBR,GACzC,IACE,aAAaA,GACf,CAAE,MAAOG,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF,CAsBOE,eAAeI,EACpBC,GACAC,YACEA,EAAWC,YACXA,EAAWC,WACXA,EAAa,EAACC,YACdA,EAAWC,YACXA,EAAWC,kBACXA,EAAoB,EAACC,wBACrBA,GACgB,IAElB,IAAIC,EAAc,EAClB,OACE,IACE,aAAaR,EAAKQ,EACpB,CAAE,MAAOf,
|
|
1
|
+
{"version":3,"file":"error.js","sources":["../src/error.ts"],"sourcesContent":["import { sleep } from './sleep.js';\n\n/**\n * Convert an object to an error.\n * @param obj The object to convert.\n */\nexport function errorify(obj: unknown): Error {\n if (obj instanceof Error) return obj;\n if (typeof obj === 'string') return new Error(obj);\n try {\n return new Error(JSON.stringify(obj));\n } catch {\n return new Error(String(obj));\n }\n}\n\nexport function ignoreError<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n // do nothing\n }\n}\n\nexport function ignoreEnoent<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport async function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch {\n // do nothing\n }\n}\n\nexport async function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport interface RetryOptions {\n beforeRetry?: (error: unknown) => Promise<void>;\n handleError?: (error: unknown) => Promise<void>;\n retryCount?: number;\n retryLogger?: (message: string) => void;\n shouldRetry?: (error: unknown) => boolean;\n sleepMilliseconds?: number;\n updateSleepMilliseconds?: (sleepMilliseconds: number) => number;\n}\n\n/**\n * Retry the given function.\n * @param func The function to retry.\n * @param beforeRetry The function to call immediately before retrying.\n * @param handleError The function to call when an error occurs.\n * @param retryCount The maximum number of retries.\n * @param retryLogger The function to log retrying.\n * @param sleepMilliseconds The number of milliseconds to sleep before retrying.\n * @param updateSleepMilliseconds The function to update sleep milliseconds after each retry.\n */\nexport async function withRetry<T>(\n func: (failedCount: number) => T | Promise<T>,\n {\n beforeRetry,\n handleError,\n retryCount = 3,\n retryLogger,\n shouldRetry,\n sleepMilliseconds = 0,\n updateSleepMilliseconds,\n }: RetryOptions = {}\n): Promise<T> {\n let failedCount = 0;\n for (;;) {\n try {\n return await func(failedCount);\n } catch (error) {\n await handleError?.(error);\n failedCount++;\n if (failedCount >= retryCount) {\n throw error;\n }\n if (shouldRetry && !shouldRetry(error)) {\n throw error;\n }\n if (sleepMilliseconds > 0) {\n await sleep(sleepMilliseconds);\n }\n if (updateSleepMilliseconds) {\n sleepMilliseconds = updateSleepMilliseconds(sleepMilliseconds);\n }\n retryLogger?.(`Retry due to: ${error}\n${error instanceof Error ? '---\\n' + (error.stack ?? '') : ''}`);\n await beforeRetry?.(error);\n }\n }\n}\n"],"names":["errorify","obj","Error","JSON","stringify","_unused","String","ignoreError","fn","_unused2","ignoreEnoent","error","code","async","ignoreErrorAsync","_unused3","ignoreEnoentAsync","withRetry","func","beforeRetry","handleError","retryCount","retryLogger","shouldRetry","sleepMilliseconds","updateSleepMilliseconds","failedCount","_error$stack","sleep","stack"],"mappings":"mCAMO,SAASA,EAASC,GACvB,GAAIA,aAAeC,MAAO,OAAOD,EACjC,GAAmB,iBAARA,EAAkB,OAAO,IAAIC,MAAMD,GAC9C,IACE,OAAO,IAAIC,MAAMC,KAAKC,UAAUH,GAClC,CAAE,MAAAI,GACA,OAAO,IAAIH,MAAMI,OAAOL,GAC1B,CACF,CAEO,SAASM,EAAeC,GAC7B,IACE,OAAOA,GACT,CAAE,MAAAC,GACA,CAEJ,CAEO,SAASC,EAAgBF,GAC9B,IACE,OAAOA,GACT,CAAE,MAAOG,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF,CAEOE,eAAeC,EAAoBN,GACxC,IACE,aAAaA,GACf,CAAE,MAAAO,GACA,CAEJ,CAEOF,eAAeG,EAAqBR,GACzC,IACE,aAAaA,GACf,CAAE,MAAOG,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMC,KACjE,OAEF,MAAMD,CACR,CACF,CAsBOE,eAAeI,EACpBC,GACAC,YACEA,EAAWC,YACXA,EAAWC,WACXA,EAAa,EAACC,YACdA,EAAWC,YACXA,EAAWC,kBACXA,EAAoB,EAACC,wBACrBA,GACgB,IAElB,IAAIC,EAAc,EAClB,OACE,IACE,aAAaR,EAAKQ,EACpB,CAAE,MAAOf,GAAO,IAAAgB,EAGd,SAFiB,MAAXP,OAAW,EAAXA,EAAcT,IACpBe,IACIA,GAAeL,EACjB,MAAMV,EAER,GAAIY,IAAgBA,EAAYZ,GAC9B,MAAMA,EAEJa,EAAoB,SAChBI,EAAMJ,GAEVC,IACFD,EAAoBC,EAAwBD,IAEnC,MAAXF,GAAAA,EAAc,iBAAiBX,MACnCA,aAAiBT,MAAQ,SAAsB,OAAfyB,EAAIhB,EAAMkB,OAAKF,EAAI,IAAM,YACpC,MAAXR,OAAW,EAAXA,EAAcR,GACtB,CAEJ"}
|
package/dist/humanize.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.humanizeNumber=function(t,{base:e=1e3,units:r=["K","M","B","T","P"]}={}){if(t<e)return t.toString();let
|
|
1
|
+
"use strict";exports.humanizeNumber=function(t,{base:e=1e3,units:r=["K","M","B","T","P"]}={}){var n;if(t<e)return t.toString();let u=-1;for(;t>=e&&u<r.length-1;)t/=e,u++;return t.toFixed(2)+(null!=(n=r[u])?n:"")};
|
|
2
2
|
//# sourceMappingURL=humanize.cjs.map
|
package/dist/humanize.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"humanize.cjs","sources":["../src/humanize.ts"],"sourcesContent":["export function humanizeNumber(value: number, { base = 1000, units = ['K', 'M', 'B', 'T', 'P'] } = {}): string {\n if (value < base) {\n return value.toString();\n }\n\n let unitIndex = -1;\n while (value >= base && unitIndex < units.length - 1) {\n value /= base;\n unitIndex++;\n }\n\n return value.toFixed(2) + (
|
|
1
|
+
{"version":3,"file":"humanize.cjs","sources":["../src/humanize.ts"],"sourcesContent":["export function humanizeNumber(value: number, { base = 1000, units = ['K', 'M', 'B', 'T', 'P'] } = {}): string {\n if (value < base) {\n return value.toString();\n }\n\n let unitIndex = -1;\n while (value >= base && unitIndex < units.length - 1) {\n value /= base;\n unitIndex++;\n }\n\n return value.toFixed(2) + (units[unitIndex] ?? '');\n}\n"],"names":["value","base","units","_units$unitIndex","toString","unitIndex","length","toFixed"],"mappings":"oCAAO,SAAwBA,GAAeC,KAAEA,EAAO,IAAIC,MAAEA,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,MAAS,IAAY,IAAAC,EAC7G,GAAIH,EAAQC,EACV,OAAOD,EAAMI,WAGf,IAAIC,GAAY,EAChB,KAAOL,GAASC,GAAQI,EAAYH,EAAMI,OAAS,GACjDN,GAASC,EACTI,IAGF,OAAOL,EAAMO,QAAQ,WAAEJ,EAAID,EAAMG,IAAUF,EAAI,GACjD"}
|
package/dist/humanize.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function t(t,{base:e=1e3,units:n=["K","M","B","T","P"]}={}){if(t<e)return t.toString();let
|
|
1
|
+
function t(t,{base:e=1e3,units:n=["K","M","B","T","P"]}={}){var r;if(t<e)return t.toString();let i=-1;for(;t>=e&&i<n.length-1;)t/=e,i++;return t.toFixed(2)+(null!=(r=n[i])?r:"")}export{t as humanizeNumber};
|
|
2
2
|
//# sourceMappingURL=humanize.js.map
|
package/dist/humanize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"humanize.js","sources":["../src/humanize.ts"],"sourcesContent":["export function humanizeNumber(value: number, { base = 1000, units = ['K', 'M', 'B', 'T', 'P'] } = {}): string {\n if (value < base) {\n return value.toString();\n }\n\n let unitIndex = -1;\n while (value >= base && unitIndex < units.length - 1) {\n value /= base;\n unitIndex++;\n }\n\n return value.toFixed(2) + (
|
|
1
|
+
{"version":3,"file":"humanize.js","sources":["../src/humanize.ts"],"sourcesContent":["export function humanizeNumber(value: number, { base = 1000, units = ['K', 'M', 'B', 'T', 'P'] } = {}): string {\n if (value < base) {\n return value.toString();\n }\n\n let unitIndex = -1;\n while (value >= base && unitIndex < units.length - 1) {\n value /= base;\n unitIndex++;\n }\n\n return value.toFixed(2) + (units[unitIndex] ?? '');\n}\n"],"names":["humanizeNumber","value","base","units","_units$unitIndex","toString","unitIndex","length","toFixed"],"mappings":"AAAO,SAASA,EAAeC,GAAeC,KAAEA,EAAO,IAAIC,MAAEA,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,MAAS,IAAY,IAAAC,EAC7G,GAAIH,EAAQC,EACV,OAAOD,EAAMI,WAGf,IAAIC,GAAY,EAChB,KAAOL,GAASC,GAAQI,EAAYH,EAAMI,OAAS,GACjDN,GAASC,EACTI,IAGF,OAAOL,EAAMO,QAAQ,WAAEJ,EAAID,EAAMG,IAAUF,EAAI,GACjD"}
|
package/dist/shuffle.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shuffle.cjs","sources":["../src/shuffle.ts"],"sourcesContent":["export function shuffle<T>(array: T[]): T[] {\n for (let index = array.length - 1; index > 0; index--) {\n const index_ = Math.floor(Math.random() * (index + 1));\n [array[index], array[index_]] = [array[index_], array[index]];\n }\n return array;\n}\n"],"names":["array","index","length","index_","Math","floor","random"],"mappings":"6BAAO,SAAoBA,GACzB,IAAK,IAAIC,EAAQD,EAAME,OAAS,EAAGD,EAAQ,EAAGA,IAAS,CACrD,MAAME,EAASC,KAAKC,MAAMD,KAAKE,UAAYL,EAAQ,KAClDD,EAAMC,GAAQD,EAAMG,IAAW,CAACH,EAAMG,GAASH,EAAMC,GACxD,CACA,OAAOD,CACT"}
|
|
1
|
+
{"version":3,"file":"shuffle.cjs","sources":["../src/shuffle.ts"],"sourcesContent":["export function shuffle<T>(array: T[]): T[] {\n for (let index = array.length - 1; index > 0; index--) {\n const index_ = Math.floor(Math.random() * (index + 1));\n [array[index], array[index_]] = [array[index_], array[index]] as [T, T];\n }\n return array;\n}\n"],"names":["array","index","length","index_","Math","floor","random"],"mappings":"6BAAO,SAAoBA,GACzB,IAAK,IAAIC,EAAQD,EAAME,OAAS,EAAGD,EAAQ,EAAGA,IAAS,CACrD,MAAME,EAASC,KAAKC,MAAMD,KAAKE,UAAYL,EAAQ,KAClDD,EAAMC,GAAQD,EAAMG,IAAW,CAACH,EAAMG,GAASH,EAAMC,GACxD,CACA,OAAOD,CACT"}
|
package/dist/shuffle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shuffle.js","sources":["../src/shuffle.ts"],"sourcesContent":["export function shuffle<T>(array: T[]): T[] {\n for (let index = array.length - 1; index > 0; index--) {\n const index_ = Math.floor(Math.random() * (index + 1));\n [array[index], array[index_]] = [array[index_], array[index]];\n }\n return array;\n}\n"],"names":["shuffle","array","index","length","index_","Math","floor","random"],"mappings":"AAAO,SAASA,EAAWC,GACzB,IAAK,IAAIC,EAAQD,EAAME,OAAS,EAAGD,EAAQ,EAAGA,IAAS,CACrD,MAAME,EAASC,KAAKC,MAAMD,KAAKE,UAAYL,EAAQ,KAClDD,EAAMC,GAAQD,EAAMG,IAAW,CAACH,EAAMG,GAASH,EAAMC,GACxD,CACA,OAAOD,CACT"}
|
|
1
|
+
{"version":3,"file":"shuffle.js","sources":["../src/shuffle.ts"],"sourcesContent":["export function shuffle<T>(array: T[]): T[] {\n for (let index = array.length - 1; index > 0; index--) {\n const index_ = Math.floor(Math.random() * (index + 1));\n [array[index], array[index_]] = [array[index_], array[index]] as [T, T];\n }\n return array;\n}\n"],"names":["shuffle","array","index","length","index_","Math","floor","random"],"mappings":"AAAO,SAASA,EAAWC,GACzB,IAAK,IAAIC,EAAQD,EAAME,OAAS,EAAGD,EAAQ,EAAGA,IAAS,CACrD,MAAME,EAASC,KAAKC,MAAMD,KAAKE,UAAYL,EAAQ,KAClDD,EAAMC,GAAQD,EAAMG,IAAW,CAACH,EAAMG,GAASH,EAAMC,GACxD,CACA,OAAOD,CACT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@willbooster/shared-lib",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.5",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "WillBooster Inc.",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
],
|
|
27
27
|
"scripts": {
|
|
28
28
|
"build": "build-ts lib",
|
|
29
|
-
"check-all-for-ai": "yarn check-for-ai && yarn test
|
|
29
|
+
"check-all-for-ai": "yarn check-for-ai && yarn test",
|
|
30
30
|
"check-for-ai": "yarn install > /dev/null && yarn format > /dev/null 2> /dev/null || true && yarn lint-fix --quiet && yarn typecheck",
|
|
31
31
|
"cleanup": "yarn format && yarn lint-fix",
|
|
32
32
|
"format": "sort-package-json && yarn prettify",
|
|
33
33
|
"lint": "eslint --color",
|
|
34
34
|
"lint-fix": "yarn lint --fix",
|
|
35
|
-
"prettify": "prettier --cache --color --write \"**/{.*/,}*.{cjs,css,cts,htm,html,java,js,json,json5,jsonc,jsx,md,mjs,mts,scss,ts,tsx,vue,yaml,yml}\" \"!**/test{-,/}fixtures/**\"",
|
|
35
|
+
"prettify": "prettier --cache --color --write \"**/{.*/,}*.{cjs,css,cts,htm,html,java,js,json,json5,jsonc,jsx,md,mjs,mts,scss,ts,tsx,vue,yaml,yml}\" \"!**/test{-,/}fixtures/**\" || true",
|
|
36
36
|
"test": "vitest",
|
|
37
37
|
"typecheck": "tsc --noEmit --Pretty"
|
|
38
38
|
},
|
|
@@ -40,26 +40,26 @@
|
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/eslint": "9.6.1",
|
|
42
42
|
"@types/micromatch": "4.0.9",
|
|
43
|
-
"@willbooster/eslint-config-ts": "11.4.
|
|
43
|
+
"@willbooster/eslint-config-ts": "11.4.4",
|
|
44
44
|
"@willbooster/prettier-config": "10.2.0",
|
|
45
|
-
"build-ts": "15.0.
|
|
46
|
-
"eslint": "9.
|
|
45
|
+
"build-ts": "15.0.19",
|
|
46
|
+
"eslint": "9.33.0",
|
|
47
47
|
"eslint-config-flat-gitignore": "2.1.0",
|
|
48
48
|
"eslint-config-prettier": "10.1.8",
|
|
49
49
|
"eslint-import-resolver-typescript": "4.4.4",
|
|
50
50
|
"eslint-plugin-import-x": "4.16.1",
|
|
51
51
|
"eslint-plugin-sort-class-members": "1.21.0",
|
|
52
52
|
"eslint-plugin-sort-destructure-keys": "2.0.0",
|
|
53
|
-
"eslint-plugin-unicorn": "
|
|
53
|
+
"eslint-plugin-unicorn": "60.0.0",
|
|
54
54
|
"eslint-plugin-unused-imports": "4.1.4",
|
|
55
55
|
"globals": "16.3.0",
|
|
56
|
-
"lint-staged": "16.1.
|
|
56
|
+
"lint-staged": "16.1.5",
|
|
57
57
|
"micromatch": "4.0.8",
|
|
58
58
|
"prettier": "3.6.2",
|
|
59
|
-
"prettier-plugin-java": "2.7.
|
|
59
|
+
"prettier-plugin-java": "2.7.4",
|
|
60
60
|
"sort-package-json": "3.4.0",
|
|
61
|
-
"typescript": "5.
|
|
62
|
-
"typescript-eslint": "8.
|
|
61
|
+
"typescript": "5.9.2",
|
|
62
|
+
"typescript-eslint": "8.39.0",
|
|
63
63
|
"vitest": "3.2.4"
|
|
64
64
|
},
|
|
65
65
|
"publishConfig": {
|