@resolid/utils
Version:
Common utils
1 lines • 5.41 kB
JavaScript
import{addDay as e,addMonth as t,addYear as n,isAfter as r,isBefore as i}from"@formkit/tempo";import{customAlphabet as a}from"nanoid";function o(e){return Array.isArray(e)?e:[e]}function s(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}function c(e,t,n){return[...e.slice(0,t),n,...e.slice(t)]}function l(e,t){let n=e.indexOf(t);return n<0?!1:(e.splice(n,1),!0)}function u(e,t){let n=[],r=[];for(let i of e)t(i)?n.push(i):r.push(i);return[n,r]}function d(e,t,n){if(n!=null&&t!=null&&i(n,t))throw Error(`clampDate: invalid clamp range`);return t!=null&&i(e,t)?t:n!=null&&r(e,n)?n:e}function f(e,t){return!t.start||!t.end?!1:!i(e,t.start)&&!r(e,t.end)}function p(e,t=`asc`){return e.slice().filter(e=>e!=null).sort((e,n)=>i(e,n)?t===`asc`?-1:1:i(n,e)?t===`asc`?1:-1:0)}function m(e){return!e.start||!e.end?e:r(e.start,e.end)?{start:e.end,end:e.start}:e}function h(i,a,o){let s=o?.unit??`day`,c=o?.step??1;if(c<=0)throw Error(`getDatesInRange: step must be greater than 0`);let l={day:e,month:t,year:n}[s],u=[],d=i;for(;!r(d,a);)u.push(d),d=l(d,c);return u}const g=[`Bytes`,`KB`,`MB`,`GB`,`TB`];function _(e,t=2,n=null){if(e===0)return`0 Bytes`;let r=1024,i=Math.max(0,t),a=n?Math.max(0,g.indexOf(n)):Math.min(g.length-1,Math.floor(Math.log(e)/Math.log(r)));return`${(e/r**a).toFixed(i)} ${g[a]}`}function v(e,t,n){if(n==`*`)return!0;let r=n.split(`,`).map(e=>e.trim()),i=e.split(/[\\/]/),a=i[i.length-1],o=a.lastIndexOf(`.`),s=o>0?a.slice(o+1):``;return r.some(e=>{if(e.startsWith(`.`))return s.toLowerCase()===e.slice(1).toLowerCase();if(e.endsWith(`/*`)){let[n]=e.split(`/`);return t.startsWith(`${n}/`)}return t===e})}const y=process.env.NODE_ENV!==`production`,b=typeof window<`u`;function ee(e){return!!e}function te(e){return e===void 0}function ne(e){return e!=null}function x(e){return typeof e==`boolean`}function S(e){return typeof e==`number`}function C(e){return typeof e==`string`}function w(e){return typeof e==`object`&&!!e}function T(e){return e==null}function E(e){return typeof e==`function`}function D(e){return e instanceof Date||Object.prototype.toString.call(e)===`[object Date]`}function O(e){return typeof e==`bigint`}function k(e){return T(e)?!0:S(e)?e===0:C(e)?e.trim()==``:Array.isArray(e)?e.length===0:w(e)?Object.keys(e).length===0:!1}function A(e){return e instanceof Promise}function j(){}function M(e){return new Promise(t=>setTimeout(t,e))}function N(e){return()=>e}async function P(e){return e.then(e=>[null,e]).catch(e=>[e,void 0])}function F(e,...t){return E(e)?e(...t):e}function re(...e){return(...t)=>{e.forEach(e=>{e?.(...t)})}}function I(e,t,n){if(n!=null&&t!=null&&t>n)throw Error(`invalid clamp range`);return n!=null&&e>n?n:t!=null&&e<t?t:e}function L(e,t){return e>t?[]:Array.from({length:t-e+1},(t,n)=>e+n)}function R(e,t){return t.reduce((e,t)=>(delete e[t],e),{...e})}function z(e,t){let n={};for(let r of Object.keys(e)){let i=e[r];t(i,r)||(n[r]=i)}return n}function B(e,t){let n={};for(let r of t)Object.hasOwn(e,r)&&(n[r]=e[r]);return n}function V(e,t){let n={};for(let r of Object.keys(e)){let i=e[r];t(i,r)&&(n[r]=i)}return n}function H(e,t,n){let r=t.split(/[.[\]]+/g).filter(Boolean),i=e;for(let e of r){if(i==null)return n;let t=e[0]===`'`||e[0]===`"`?e.slice(1,-1):e;i=i[t]}return i===void 0?n:i}function U(e){return!e||e.length===0?``:e.charAt(0).toUpperCase()+e.slice(1)}const W=/[-_\s]+(.)?/g;function G(e){return e.trim().replace(W,(e,t)=>t?t.toUpperCase():``)}const K=/[A-Z]?[a-z]+|[A-Z]+(?![a-z])|[0-9]+/g;function q(e){return(e.match(K)||[]).map(e=>`${e.charAt(0).toUpperCase()}${e.slice(1).toLowerCase()}`).join(``)}const J=/[A-Z]+(?=[A-Z][a-z])|[A-Z]?[a-z]+|[A-Z]+|[0-9]+/g;function Y(e){return(e.match(J)||[]).join(`-`).toLowerCase()}function X(e){return(e.match(J)||[]).join(`_`).toLowerCase()}function Z(e,t,n=!0){return e.length<t.length?!1:n?e.toLowerCase().startsWith(t.toLowerCase()):e.startsWith(t)}function Q(e,t,n=!0){return e.length<t.length?!1:n?e.toLowerCase().endsWith(t.toLowerCase()):e.endsWith(t)}function ie(e,t,n=!0){return Z(e,t,n)?e.slice(t.length,e.length):e}function ae(e,t,n=!0){return Q(e,t,n)?e.slice(0,e.length-t.length):e}function oe(e=16){return a(`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`,e)()}function $(e,t=0,{start:n=!0,middle:r=!0,once:i=!1}={}){let a=n,o=0,s,c=!1;function l(...u){if(c)return;let d=Date.now()-o;o=Date.now(),n&&r&&d>=t&&(a=!0),a?(a=!1,e.apply(this,u),i&&l.cancel()):(r&&d<t||!r)&&(clearTimeout(s),s=setTimeout(()=>{o=Date.now(),e.apply(this,u),i&&l.cancel()},r?t-d:t))}return l.cancel=()=>{clearTimeout(s),c=!0},l}function se(e,t=0,{start:n=!1,middle:r=!1,once:i=!1}={}){return $(e,t,{start:n,middle:r,once:i})}export{y as __DEV__,m as adjustDateRange,N as always,o as asArray,re as callAll,G as camelCase,U as capitalize,s as chunk,I as clamp,d as clampDate,se as debounce,Q as endsWith,_ as formatBytes,H as get,h as getDatesInRange,c as insert,O as isBigInt,x as isBoolean,b as isBrowser,D as isDate,f as isDateInRange,ne as isDefined,k as isEmpty,E as isFunction,T as isNullish,S as isNumber,w as isObject,A as isPromise,C as isString,ee as isTruthy,te as isUndefined,Y as kebabCase,v as matchesAccept,j as noop,R as omit,z as omitBy,u as partition,q as pascalCase,B as pick,V as pickBy,oe as random,L as range,l as remove,F as runIf,M as sleep,X as snakeCase,p as sortDates,Z as startsWith,$ as throttle,P as to,ae as trimEnd,ie as trimStart};