@ts-utilities/core 1.0.1 → 1.0.3
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/LICENSE +15 -0
- package/README.md +255 -19
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +1288 -0
- package/dist/index.js +1 -0
- package/package.json +12 -8
- package/dist/index.mjs +0 -765
- /package/dist/{index.d.mts → index.d.cts} +0 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=e=>!e,t=e=>e==null,n=e=>{if(e==null)return!0;switch(typeof e){case`string`:case`number`:case`bigint`:case`boolean`:case`symbol`:return!0;default:return!1}};function r(e){if(typeof e!=`object`||!e||Object.prototype.toString.call(e)!==`[object Object]`)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function i(e,...t){let n,i={},a=t[t.length-1];a&&typeof a==`object`&&!Array.isArray(a)&&(a.arrayMerge!==void 0||a.clone!==void 0||a.customMerge!==void 0||a.functionMerge!==void 0||a.maxDepth!==void 0)?(i={...i,...a},n=t.slice(0,-1)):n=t;let{arrayMerge:o=`replace`,clone:s=!0,functionMerge:c=`replace`,maxDepth:l=100,customMerge:u}=i,d=new WeakMap;return f(e,n,0);function f(e,t,n){if(n>=l)return console.warn(`[deepmerge] Maximum depth ${l} exceeded. Returning target as-is.`),e;if(!r(e)&&!Array.isArray(e)){for(let n of t)if(n!==void 0){if(u){let t=u(``,e,n);if(t!==void 0)return t}return typeof e==`function`&&typeof n==`function`&&c===`compose`?(...t)=>{e(...t),n(...t)}:n}return e}let i=s?Array.isArray(e)?[...e]:{...e}:e;for(let e of t)if(e!=null&&!d.has(e))if(d.set(e,i),Array.isArray(i)&&Array.isArray(e))i=p(i,e,o);else if(r(i)&&r(e)){let t=new Set([...Object.keys(i),...Object.keys(e),...Object.getOwnPropertySymbols(i),...Object.getOwnPropertySymbols(e)]);for(let a of t){let t=i[a],s=e[a];u&&u(a,t,s)!==void 0?i[a]=u(a,t,s):typeof t==`function`&&typeof s==`function`?c===`compose`?i[a]=(...e)=>{t(...e),s(...e)}:i[a]=s:r(t)&&r(s)?i[a]=f(t,[s],n+1):Array.isArray(t)&&Array.isArray(s)?i[a]=p(t,s,o):s!==void 0&&(i[a]=s)}}else i=e;return i}function p(e,t,n){if(typeof n==`function`)return n(e,t);switch(n){case`concat`:return[...e,...t];case`merge`:let n=Math.max(e.length,t.length),i=[];for(let a=0;a<n;a++)a<e.length&&a<t.length?r(e[a])&&r(t[a])?i[a]=f(e[a],[t[a]],0):i[a]=t[a]:a<e.length?i[a]=e[a]:i[a]=t[a];return i;case`replace`:default:return[...t]}}}function a(e){return o(e)}function o(e){if(e!==null){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return e.map(o);if(r(e)){let t={};for(let n in e)t[n]=o(e[n]);return t}return e}}function s(e,t,n){if(typeof t!=`string`&&!Array.isArray(t))return n;let r=(()=>Array.isArray(t)?t:t===``?[]:String(t).split(`.`).filter(e=>e!==``))();if(!Array.isArray(r))return n;let i=e;for(let e of r){if(i==null)return n;let t=typeof e==`string`&&Array.isArray(i)&&/^\d+$/.test(e)?Number.parseInt(e,10):e;i=i[t]}return i===void 0?n:i}function c(e,t){return e==null?e:Object.assign(e,t)}function l(e){return(e.split(`.`).pop()||e).replace(/([a-z])([A-Z])/g,`$1 $2`).split(/[-_|�\s]+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}const u=`àáãäâèéëêìíïîòóöôùúüûñç·/_,:;`,d=e=>{if(typeof e!=`string`)throw TypeError(`Input must be a string`);let t=e.trim().toLowerCase(),n={};for(let e=0;e<29;e++)n[u.charAt(e)]=`aaaaaeeeeiiiioooouuuunc------`.charAt(e);return t=t.replace(RegExp(`[${u}]`,`g`),e=>n[e]||e),t.replace(/[^a-z0-9 -]/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-+/,``).replace(/-+$/,``)||``},f=(e=1e3,t)=>new Promise(n=>{if(t?.aborted)return n();let r=setTimeout(()=>{a(),n()},e);function i(){clearTimeout(r),a(),n()}function a(){t?.removeEventListener(`abort`,i)}t&&t.addEventListener(`abort`,i,{once:!0})});function p(e,t=100,n){if(typeof e!=`function`)throw TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw RangeError("`wait` must not be negative.");let r=n?.immediate??!1,i,a,o,s;function c(){return s=e.apply(o,a),a=void 0,o=void 0,s}let l=function(...e){return a=e,o=this,i===void 0&&r&&(s=c.call(this)),i!==void 0&&clearTimeout(i),i=setTimeout(c.bind(this),t),s};return Object.defineProperty(l,`isPending`,{get(){return i!==void 0}}),l}function m(e,t=100,n){if(typeof e!=`function`)throw TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw RangeError("`wait` must not be negative.");let r=n?.leading??!0,i=n?.trailing??!0,a,o,s,c,l;function u(){c=Date.now(),l=e.apply(s,o),o=void 0,s=void 0}function d(){a=void 0,i&&o&&u()}let f=function(...e){let n=c?Date.now()-c:1/0;return o=e,s=this,n>=t?r?u():a=setTimeout(d,t):!a&&i&&(a=setTimeout(d,t-n)),l};return Object.defineProperty(f,`isPending`,{get(){return a!==void 0}}),f}function h(e,...t){let n=t.length===1&&Array.isArray(t[0])?t[0]:t,r=0;return e.replace(/%s/g,()=>{let e=n[r++];return e===void 0?``:String(e)})}function g(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function _(e,t={}){if(!e)return``;let{lowercase:n=!0,removeAccents:r=!0,removeNonAlphanumeric:i=!0}=t,a=e.normalize(`NFC`);return r&&(a=a.normalize(`NFD`).replace(/\p{M}/gu,``)),i&&(a=a.replace(/^[^\p{L}\p{N}]*|[^\p{L}\p{N}]*$/gu,``)),n&&(a=a.toLocaleLowerCase()),a}async function v(e,{interval:t=5e3,timeout:n=300*1e3,jitter:r=!0,signal:i}={}){let a=Date.now(),o=i?.aborted??!1,s=()=>{o=!0};i?.addEventListener(`abort`,s,{once:!0});try{for(let s=0;;s++){if(o)throw Error(`Polling aborted`);let s=await e();if(s)return s;if(Date.now()-a>=n)throw Error(`Polling timed out`,{cause:`Polling timed out after ${n}ms`});await f(r?t+(Math.random()-.5)*t*.2:t,i)}}catch(e){throw e}finally{i?.removeEventListener(`abort`,s)}}function y(e,t={}){let{retry:n=0,delay:r=0}=t,i=Date.now(),a=async t=>{try{await e();let t=Date.now()-i;console.log(`⚡[schedule.ts] Completed in ${t}ms`)}catch(e){if(console.log(`⚡[schedule.ts] err:`,e),t>0)console.log(`⚡[schedule.ts] Retrying in ${r}ms...`),setTimeout(()=>a(t-1),r);else{let e=Date.now()-i;console.log(`⚡[schedule.ts] Failed after ${e}ms`)}}};setTimeout(()=>a(n),0)}function b(e){if(e instanceof Promise)return e.then(e=>[null,e]).catch(e=>[e,null]);try{return[null,e()]}catch(t){return console.log(`\x1b[31m🛡 [shield]\x1b[0m ${e.name} failed →`,t),[t,null]}}export{l as convertToNormalCase,d as convertToSlug,p as debounce,i as deepmerge,g as escapeRegExp,c as extendProps,s as getObjectValue,a as hydrate,e as isFalsy,t as isNullish,r as isPlainObject,n as isPrimitive,_ as normalizeText,v as poll,h as printf,y as schedule,b as shield,f as sleep,m as throttle};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ts-utilities/core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"author": "Sohan Emon <sohanemon@outlook.com>",
|
|
5
5
|
"description": "Core utilities for JavaScript/TypeScript projects",
|
|
6
6
|
"type": "module",
|
|
@@ -15,6 +15,17 @@
|
|
|
15
15
|
".": {
|
|
16
16
|
"import": "./dist/index.js",
|
|
17
17
|
"require": "./dist/index.cjs"
|
|
18
|
+
},
|
|
19
|
+
"./package.json": "./package.json"
|
|
20
|
+
},
|
|
21
|
+
"typesVersions": {
|
|
22
|
+
"*": {
|
|
23
|
+
"functions": [
|
|
24
|
+
"dist/functions.d.ts"
|
|
25
|
+
],
|
|
26
|
+
"types": [
|
|
27
|
+
"dist/types.d.ts"
|
|
28
|
+
]
|
|
18
29
|
}
|
|
19
30
|
},
|
|
20
31
|
"scripts": {
|
|
@@ -46,18 +57,11 @@
|
|
|
46
57
|
},
|
|
47
58
|
"devDependencies": {
|
|
48
59
|
"@biomejs/biome": "2.3.8",
|
|
49
|
-
"@testing-library/jest-dom": "^6.9.1",
|
|
50
|
-
"@testing-library/react": "^16.3.0",
|
|
51
60
|
"@tsconfig/strictest": "^2.0.8",
|
|
52
61
|
"@types/node": "^24.10.1",
|
|
53
|
-
"@vitejs/plugin-react": "^5.1.1",
|
|
54
|
-
"@vitest/ui": "^4.0.14",
|
|
55
62
|
"jsdom": "^27.2.0",
|
|
56
63
|
"tsdown": "^0.16.4",
|
|
57
|
-
"typedoc": "^0.28.15",
|
|
58
|
-
"typedoc-plugin-markdown": "^4.9.0",
|
|
59
64
|
"typescript": "^5.9.3",
|
|
60
|
-
"vite": "npm:rolldown-vite@^7.2.5",
|
|
61
65
|
"vitest": "^4.0.14"
|
|
62
66
|
},
|
|
63
67
|
"publishConfig": {
|