@wener/utils 1.0.1 → 1.1.2
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 +5 -3
- package/dist/cjs/index.js +579 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/esm/index.development.js +545 -0
- package/dist/esm/index.development.js.map +1 -0
- package/dist/esm/index.min.js +2 -0
- package/dist/esm/index.min.js.map +1 -0
- package/dist/system/index.development.js +585 -0
- package/dist/system/index.development.js.map +1 -0
- package/dist/system/index.min.js +2 -0
- package/dist/system/index.min.js.map +1 -0
- package/lib/esm/arrays/MaybeArray.mjs +30 -0
- package/lib/esm/arrays/MaybeArray.mjs.map +1 -0
- package/lib/esm/asyncs/AsyncInterval.mjs +15 -0
- package/lib/esm/asyncs/AsyncInterval.mjs.map +1 -0
- package/lib/{esnext/asyncs/LazyPromise.js → esm/asyncs/LazyPromise.mjs} +10 -8
- package/lib/esm/asyncs/LazyPromise.mjs.map +1 -0
- package/lib/esm/asyncs/isPromise.mjs +6 -0
- package/lib/esm/asyncs/isPromise.mjs.map +1 -0
- package/lib/esm/asyncs/sleep.mjs +4 -0
- package/lib/esm/asyncs/sleep.mjs.map +1 -0
- package/lib/esm/asyncs/timeout.mjs +24 -0
- package/lib/esm/asyncs/timeout.mjs.map +1 -0
- package/lib/esm/browsers/{clipboard.js → copy.mjs} +16 -11
- package/lib/esm/browsers/copy.mjs.map +1 -0
- package/lib/esm/browsers/download.mjs +40 -0
- package/lib/esm/browsers/download.mjs.map +1 -0
- package/lib/esm/browsers/getFileFromDataTransfer.mjs +39 -0
- package/lib/esm/browsers/getFileFromDataTransfer.mjs.map +1 -0
- package/lib/esm/browsers/loaders.mjs +52 -0
- package/lib/esm/browsers/loaders.mjs.map +1 -0
- package/lib/esm/crypto/hashing.mjs +25 -0
- package/lib/esm/crypto/hashing.mjs.map +1 -0
- package/lib/esm/crypto/hex.mjs +8 -0
- package/lib/esm/crypto/hex.mjs.map +1 -0
- package/lib/esm/crypto/randomUUID.mjs +13 -0
- package/lib/esm/crypto/randomUUID.mjs.map +1 -0
- package/lib/esm/formats/formatBytes.mjs +29 -0
- package/lib/esm/formats/formatBytes.mjs.map +1 -0
- package/lib/esm/index.mjs +24 -0
- package/lib/esm/index.mjs.map +1 -0
- package/lib/esm/io/{isBuffer.js → isBuffer.mjs} +4 -2
- package/lib/esm/io/isBuffer.mjs.map +1 -0
- package/lib/{esnext/isomorphics/getGlobalThis.js → esm/isomorphics/getGlobalThis.mjs} +6 -8
- package/lib/esm/isomorphics/getGlobalThis.mjs.map +1 -0
- package/lib/esm/maths/random.mjs +18 -0
- package/lib/esm/maths/random.mjs.map +1 -0
- package/lib/{esnext/strings/urljoin.js → esm/shim/urljoin.mjs} +23 -15
- package/lib/esm/shim/urljoin.mjs.map +1 -0
- package/lib/esm/strings/{camelCase.js → camelCase.mjs} +18 -17
- package/lib/esm/strings/camelCase.mjs.map +1 -0
- package/lib/{esnext/strings/templates.js → esm/strings/templates.mjs} +5 -3
- package/lib/esm/strings/templates.mjs.map +1 -0
- package/lib/esm/validations/{isClass.js → isClass.mjs} +4 -2
- package/lib/esm/validations/isClass.mjs.map +1 -0
- package/lib/esm/validations/isDefined.mjs +6 -0
- package/lib/esm/validations/isDefined.mjs.map +1 -0
- package/lib/esm/validations/{isEmptyObject.js → isEmptyObject.mjs} +4 -2
- package/lib/esm/validations/isEmptyObject.mjs.map +1 -0
- package/package.json +44 -36
- package/src/arrays/MaybeArray.ts +5 -2
- package/src/asyncs/timeout.ts +1 -1
- package/src/browsers/{clipboard.ts → copy.ts} +7 -3
- package/src/browsers/download.ts +7 -0
- package/src/browsers/{transfers.ts → getFileFromDataTransfer.ts} +12 -7
- package/src/browsers/loaders.ts +32 -7
- package/src/crypto/hashing.test.ts +26 -0
- package/src/crypto/hashing.ts +27 -0
- package/src/crypto/hex.ts +5 -0
- package/src/crypto/randomUUID.ts +10 -0
- package/src/formats/formatBytes.ts +30 -0
- package/src/index.ts +38 -9
- package/src/isomorphics/getGlobalThis.ts +2 -4
- package/src/maths/random.ts +5 -5
- package/src/shim/urljoin.test.ts +6 -0
- package/src/{strings → shim}/urljoin.ts +18 -5
- package/src/types.d.ts +7 -0
- package/tsconfig.json +14 -7
- package/dist/wener-utils.cjs +0 -879
- package/dist/wener-utils.cjs.map +0 -1
- package/dist/wener-utils.esm.js +0 -846
- package/dist/wener-utils.esm.js.map +0 -1
- package/dist/wener-utils.system.js +0 -882
- package/dist/wener-utils.system.js.map +0 -1
- package/dist/wener-utils.umd.js +0 -885
- package/dist/wener-utils.umd.js.map +0 -1
- package/index.d.ts +0 -1
- package/index.js +0 -10
- package/jest.config.js +0 -16
- package/jest.setup.js +0 -1
- package/lib/cjs/arrays/MaybeArray.d.ts +0 -5
- package/lib/cjs/arrays/MaybeArray.js +0 -40
- package/lib/cjs/arrays/MaybeArray.js.map +0 -1
- package/lib/cjs/arrays/index.d.ts +0 -1
- package/lib/cjs/arrays/index.js +0 -5
- package/lib/cjs/arrays/index.js.map +0 -1
- package/lib/cjs/asyncs/AsyncInterval.d.ts +0 -3
- package/lib/cjs/asyncs/AsyncInterval.js +0 -28
- package/lib/cjs/asyncs/AsyncInterval.js.map +0 -1
- package/lib/cjs/asyncs/LazyPromise.d.ts +0 -5
- package/lib/cjs/asyncs/LazyPromise.js +0 -26
- package/lib/cjs/asyncs/LazyPromise.js.map +0 -1
- package/lib/cjs/asyncs/MaybePromise.d.ts +0 -1
- package/lib/cjs/asyncs/MaybePromise.js +0 -3
- package/lib/cjs/asyncs/MaybePromise.js.map +0 -1
- package/lib/cjs/asyncs/generatorOfStream.d.ts +0 -1
- package/lib/cjs/asyncs/generatorOfStream.js +0 -30
- package/lib/cjs/asyncs/generatorOfStream.js.map +0 -1
- package/lib/cjs/asyncs/index.d.ts +0 -7
- package/lib/cjs/asyncs/index.js +0 -11
- package/lib/cjs/asyncs/index.js.map +0 -1
- package/lib/cjs/asyncs/isPromise.d.ts +0 -1
- package/lib/cjs/asyncs/isPromise.js +0 -8
- package/lib/cjs/asyncs/isPromise.js.map +0 -1
- package/lib/cjs/asyncs/promiseOfCallback.d.ts +0 -1
- package/lib/cjs/asyncs/promiseOfCallback.js +0 -22
- package/lib/cjs/asyncs/promiseOfCallback.js.map +0 -1
- package/lib/cjs/asyncs/sleep.d.ts +0 -1
- package/lib/cjs/asyncs/sleep.js +0 -5
- package/lib/cjs/asyncs/sleep.js.map +0 -1
- package/lib/cjs/asyncs/timeout.d.ts +0 -4
- package/lib/cjs/asyncs/timeout.js +0 -30
- package/lib/cjs/asyncs/timeout.js.map +0 -1
- package/lib/cjs/browsers/clipboard.d.ts +0 -1
- package/lib/cjs/browsers/clipboard.js +0 -56
- package/lib/cjs/browsers/clipboard.js.map +0 -1
- package/lib/cjs/browsers/download.d.ts +0 -4
- package/lib/cjs/browsers/download.js +0 -36
- package/lib/cjs/browsers/download.js.map +0 -1
- package/lib/cjs/browsers/index.d.ts +0 -4
- package/lib/cjs/browsers/index.js +0 -8
- package/lib/cjs/browsers/index.js.map +0 -1
- package/lib/cjs/browsers/loaders.d.ts +0 -6
- package/lib/cjs/browsers/loaders.js +0 -41
- package/lib/cjs/browsers/loaders.js.map +0 -1
- package/lib/cjs/browsers/transfers.d.ts +0 -4
- package/lib/cjs/browsers/transfers.js +0 -38
- package/lib/cjs/browsers/transfers.js.map +0 -1
- package/lib/cjs/envs/index.d.ts +0 -1
- package/lib/cjs/envs/index.js +0 -5
- package/lib/cjs/envs/index.js.map +0 -1
- package/lib/cjs/envs/isDev.d.ts +0 -1
- package/lib/cjs/envs/isDev.js +0 -8
- package/lib/cjs/envs/isDev.js.map +0 -1
- package/lib/cjs/index.d.ts +0 -9
- package/lib/cjs/index.js +0 -13
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/io/index.d.ts +0 -1
- package/lib/cjs/io/index.js +0 -5
- package/lib/cjs/io/index.js.map +0 -1
- package/lib/cjs/io/isBuffer.d.ts +0 -2
- package/lib/cjs/io/isBuffer.js +0 -12
- package/lib/cjs/io/isBuffer.js.map +0 -1
- package/lib/cjs/isomorphics/getGlobalThis.d.ts +0 -9
- package/lib/cjs/isomorphics/getGlobalThis.js +0 -28
- package/lib/cjs/isomorphics/getGlobalThis.js.map +0 -1
- package/lib/cjs/isomorphics/index.d.ts +0 -1
- package/lib/cjs/isomorphics/index.js +0 -5
- package/lib/cjs/isomorphics/index.js.map +0 -1
- package/lib/cjs/maths/index.d.ts +0 -1
- package/lib/cjs/maths/index.js +0 -5
- package/lib/cjs/maths/index.js.map +0 -1
- package/lib/cjs/maths/random.d.ts +0 -3
- package/lib/cjs/maths/random.js +0 -21
- package/lib/cjs/maths/random.js.map +0 -1
- package/lib/cjs/strings/camelCase.d.ts +0 -4
- package/lib/cjs/strings/camelCase.js +0 -74
- package/lib/cjs/strings/camelCase.js.map +0 -1
- package/lib/cjs/strings/index.d.ts +0 -3
- package/lib/cjs/strings/index.js +0 -7
- package/lib/cjs/strings/index.js.map +0 -1
- package/lib/cjs/strings/templates.d.ts +0 -7
- package/lib/cjs/strings/templates.js +0 -18
- package/lib/cjs/strings/templates.js.map +0 -1
- package/lib/cjs/strings/urljoin.d.ts +0 -1
- package/lib/cjs/strings/urljoin.js +0 -61
- package/lib/cjs/strings/urljoin.js.map +0 -1
- package/lib/cjs/strings/urljoin.test.d.ts +0 -1
- package/lib/cjs/strings/urljoin.test.js +0 -7
- package/lib/cjs/strings/urljoin.test.js.map +0 -1
- package/lib/cjs/validations/asserts.d.ts +0 -2
- package/lib/cjs/validations/asserts.js +0 -18
- package/lib/cjs/validations/asserts.js.map +0 -1
- package/lib/cjs/validations/index.d.ts +0 -4
- package/lib/cjs/validations/index.js +0 -8
- package/lib/cjs/validations/index.js.map +0 -1
- package/lib/cjs/validations/isClass.d.ts +0 -1
- package/lib/cjs/validations/isClass.js +0 -8
- package/lib/cjs/validations/isClass.js.map +0 -1
- package/lib/cjs/validations/isDefined.d.ts +0 -1
- package/lib/cjs/validations/isDefined.js +0 -8
- package/lib/cjs/validations/isDefined.js.map +0 -1
- package/lib/cjs/validations/isEmptyObject.d.ts +0 -1
- package/lib/cjs/validations/isEmptyObject.js +0 -11
- package/lib/cjs/validations/isEmptyObject.js.map +0 -1
- package/lib/esm/arrays/MaybeArray.d.ts +0 -5
- package/lib/esm/arrays/MaybeArray.js +0 -33
- package/lib/esm/arrays/MaybeArray.js.map +0 -1
- package/lib/esm/arrays/index.d.ts +0 -1
- package/lib/esm/arrays/index.js +0 -2
- package/lib/esm/arrays/index.js.map +0 -1
- package/lib/esm/asyncs/AsyncInterval.d.ts +0 -3
- package/lib/esm/asyncs/AsyncInterval.js +0 -23
- package/lib/esm/asyncs/AsyncInterval.js.map +0 -1
- package/lib/esm/asyncs/LazyPromise.d.ts +0 -5
- package/lib/esm/asyncs/LazyPromise.js +0 -22
- package/lib/esm/asyncs/LazyPromise.js.map +0 -1
- package/lib/esm/asyncs/MaybePromise.d.ts +0 -1
- package/lib/esm/asyncs/MaybePromise.js +0 -1
- package/lib/esm/asyncs/MaybePromise.js.map +0 -1
- package/lib/esm/asyncs/generatorOfStream.d.ts +0 -1
- package/lib/esm/asyncs/generatorOfStream.js +0 -26
- package/lib/esm/asyncs/generatorOfStream.js.map +0 -1
- package/lib/esm/asyncs/index.d.ts +0 -7
- package/lib/esm/asyncs/index.js +0 -8
- package/lib/esm/asyncs/index.js.map +0 -1
- package/lib/esm/asyncs/isPromise.d.ts +0 -1
- package/lib/esm/asyncs/isPromise.js +0 -4
- package/lib/esm/asyncs/isPromise.js.map +0 -1
- package/lib/esm/asyncs/promiseOfCallback.d.ts +0 -1
- package/lib/esm/asyncs/promiseOfCallback.js +0 -18
- package/lib/esm/asyncs/promiseOfCallback.js.map +0 -1
- package/lib/esm/asyncs/sleep.d.ts +0 -1
- package/lib/esm/asyncs/sleep.js +0 -2
- package/lib/esm/asyncs/sleep.js.map +0 -1
- package/lib/esm/asyncs/timeout.d.ts +0 -4
- package/lib/esm/asyncs/timeout.js +0 -26
- package/lib/esm/asyncs/timeout.js.map +0 -1
- package/lib/esm/browsers/clipboard.d.ts +0 -1
- package/lib/esm/browsers/clipboard.js.map +0 -1
- package/lib/esm/browsers/download.d.ts +0 -4
- package/lib/esm/browsers/download.js +0 -32
- package/lib/esm/browsers/download.js.map +0 -1
- package/lib/esm/browsers/index.d.ts +0 -4
- package/lib/esm/browsers/index.js +0 -5
- package/lib/esm/browsers/index.js.map +0 -1
- package/lib/esm/browsers/loaders.d.ts +0 -6
- package/lib/esm/browsers/loaders.js +0 -36
- package/lib/esm/browsers/loaders.js.map +0 -1
- package/lib/esm/browsers/transfers.d.ts +0 -4
- package/lib/esm/browsers/transfers.js +0 -34
- package/lib/esm/browsers/transfers.js.map +0 -1
- package/lib/esm/envs/index.d.ts +0 -1
- package/lib/esm/envs/index.js +0 -2
- package/lib/esm/envs/index.js.map +0 -1
- package/lib/esm/envs/isDev.d.ts +0 -1
- package/lib/esm/envs/isDev.js +0 -5
- package/lib/esm/envs/isDev.js.map +0 -1
- package/lib/esm/index.d.ts +0 -9
- package/lib/esm/index.js +0 -10
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/io/index.d.ts +0 -1
- package/lib/esm/io/index.js +0 -2
- package/lib/esm/io/index.js.map +0 -1
- package/lib/esm/io/isBuffer.d.ts +0 -2
- package/lib/esm/io/isBuffer.js.map +0 -1
- package/lib/esm/isomorphics/getGlobalThis.d.ts +0 -9
- package/lib/esm/isomorphics/getGlobalThis.js +0 -25
- package/lib/esm/isomorphics/getGlobalThis.js.map +0 -1
- package/lib/esm/isomorphics/index.d.ts +0 -1
- package/lib/esm/isomorphics/index.js +0 -2
- package/lib/esm/isomorphics/index.js.map +0 -1
- package/lib/esm/maths/index.d.ts +0 -1
- package/lib/esm/maths/index.js +0 -2
- package/lib/esm/maths/index.js.map +0 -1
- package/lib/esm/maths/random.d.ts +0 -3
- package/lib/esm/maths/random.js +0 -17
- package/lib/esm/maths/random.js.map +0 -1
- package/lib/esm/strings/camelCase.d.ts +0 -4
- package/lib/esm/strings/camelCase.js.map +0 -1
- package/lib/esm/strings/index.d.ts +0 -3
- package/lib/esm/strings/index.js +0 -4
- package/lib/esm/strings/index.js.map +0 -1
- package/lib/esm/strings/templates.d.ts +0 -7
- package/lib/esm/strings/templates.js +0 -14
- package/lib/esm/strings/templates.js.map +0 -1
- package/lib/esm/strings/urljoin.d.ts +0 -1
- package/lib/esm/strings/urljoin.js +0 -57
- package/lib/esm/strings/urljoin.js.map +0 -1
- package/lib/esm/strings/urljoin.test.d.ts +0 -1
- package/lib/esm/strings/urljoin.test.js +0 -5
- package/lib/esm/strings/urljoin.test.js.map +0 -1
- package/lib/esm/validations/asserts.d.ts +0 -2
- package/lib/esm/validations/asserts.js +0 -13
- package/lib/esm/validations/asserts.js.map +0 -1
- package/lib/esm/validations/index.d.ts +0 -4
- package/lib/esm/validations/index.js +0 -5
- package/lib/esm/validations/index.js.map +0 -1
- package/lib/esm/validations/isClass.d.ts +0 -1
- package/lib/esm/validations/isClass.js.map +0 -1
- package/lib/esm/validations/isDefined.d.ts +0 -1
- package/lib/esm/validations/isDefined.js +0 -4
- package/lib/esm/validations/isDefined.js.map +0 -1
- package/lib/esm/validations/isEmptyObject.d.ts +0 -1
- package/lib/esm/validations/isEmptyObject.js.map +0 -1
- package/lib/esnext/arrays/MaybeArray.d.ts +0 -5
- package/lib/esnext/arrays/MaybeArray.js +0 -33
- package/lib/esnext/arrays/MaybeArray.js.map +0 -1
- package/lib/esnext/arrays/index.d.ts +0 -1
- package/lib/esnext/arrays/index.js +0 -2
- package/lib/esnext/arrays/index.js.map +0 -1
- package/lib/esnext/asyncs/AsyncInterval.d.ts +0 -3
- package/lib/esnext/asyncs/AsyncInterval.js +0 -23
- package/lib/esnext/asyncs/AsyncInterval.js.map +0 -1
- package/lib/esnext/asyncs/LazyPromise.d.ts +0 -5
- package/lib/esnext/asyncs/LazyPromise.js.map +0 -1
- package/lib/esnext/asyncs/MaybePromise.d.ts +0 -1
- package/lib/esnext/asyncs/MaybePromise.js +0 -1
- package/lib/esnext/asyncs/MaybePromise.js.map +0 -1
- package/lib/esnext/asyncs/generatorOfStream.d.ts +0 -1
- package/lib/esnext/asyncs/generatorOfStream.js +0 -26
- package/lib/esnext/asyncs/generatorOfStream.js.map +0 -1
- package/lib/esnext/asyncs/index.d.ts +0 -7
- package/lib/esnext/asyncs/index.js +0 -8
- package/lib/esnext/asyncs/index.js.map +0 -1
- package/lib/esnext/asyncs/isPromise.d.ts +0 -1
- package/lib/esnext/asyncs/isPromise.js +0 -4
- package/lib/esnext/asyncs/isPromise.js.map +0 -1
- package/lib/esnext/asyncs/promiseOfCallback.d.ts +0 -1
- package/lib/esnext/asyncs/promiseOfCallback.js +0 -18
- package/lib/esnext/asyncs/promiseOfCallback.js.map +0 -1
- package/lib/esnext/asyncs/sleep.d.ts +0 -1
- package/lib/esnext/asyncs/sleep.js +0 -2
- package/lib/esnext/asyncs/sleep.js.map +0 -1
- package/lib/esnext/asyncs/timeout.d.ts +0 -4
- package/lib/esnext/asyncs/timeout.js +0 -26
- package/lib/esnext/asyncs/timeout.js.map +0 -1
- package/lib/esnext/browsers/clipboard.d.ts +0 -1
- package/lib/esnext/browsers/clipboard.js +0 -52
- package/lib/esnext/browsers/clipboard.js.map +0 -1
- package/lib/esnext/browsers/download.d.ts +0 -4
- package/lib/esnext/browsers/download.js +0 -32
- package/lib/esnext/browsers/download.js.map +0 -1
- package/lib/esnext/browsers/index.d.ts +0 -4
- package/lib/esnext/browsers/index.js +0 -5
- package/lib/esnext/browsers/index.js.map +0 -1
- package/lib/esnext/browsers/loaders.d.ts +0 -6
- package/lib/esnext/browsers/loaders.js +0 -36
- package/lib/esnext/browsers/loaders.js.map +0 -1
- package/lib/esnext/browsers/transfers.d.ts +0 -4
- package/lib/esnext/browsers/transfers.js +0 -34
- package/lib/esnext/browsers/transfers.js.map +0 -1
- package/lib/esnext/envs/index.d.ts +0 -1
- package/lib/esnext/envs/index.js +0 -2
- package/lib/esnext/envs/index.js.map +0 -1
- package/lib/esnext/envs/isDev.d.ts +0 -1
- package/lib/esnext/envs/isDev.js +0 -5
- package/lib/esnext/envs/isDev.js.map +0 -1
- package/lib/esnext/index.d.ts +0 -9
- package/lib/esnext/index.js +0 -10
- package/lib/esnext/index.js.map +0 -1
- package/lib/esnext/io/index.d.ts +0 -1
- package/lib/esnext/io/index.js +0 -2
- package/lib/esnext/io/index.js.map +0 -1
- package/lib/esnext/io/isBuffer.d.ts +0 -2
- package/lib/esnext/io/isBuffer.js +0 -8
- package/lib/esnext/io/isBuffer.js.map +0 -1
- package/lib/esnext/isomorphics/getGlobalThis.d.ts +0 -9
- package/lib/esnext/isomorphics/getGlobalThis.js.map +0 -1
- package/lib/esnext/isomorphics/index.d.ts +0 -1
- package/lib/esnext/isomorphics/index.js +0 -2
- package/lib/esnext/isomorphics/index.js.map +0 -1
- package/lib/esnext/maths/index.d.ts +0 -1
- package/lib/esnext/maths/index.js +0 -2
- package/lib/esnext/maths/index.js.map +0 -1
- package/lib/esnext/maths/random.d.ts +0 -3
- package/lib/esnext/maths/random.js +0 -17
- package/lib/esnext/maths/random.js.map +0 -1
- package/lib/esnext/strings/camelCase.d.ts +0 -4
- package/lib/esnext/strings/camelCase.js +0 -69
- package/lib/esnext/strings/camelCase.js.map +0 -1
- package/lib/esnext/strings/index.d.ts +0 -3
- package/lib/esnext/strings/index.js +0 -4
- package/lib/esnext/strings/index.js.map +0 -1
- package/lib/esnext/strings/templates.d.ts +0 -7
- package/lib/esnext/strings/templates.js.map +0 -1
- package/lib/esnext/strings/urljoin.d.ts +0 -1
- package/lib/esnext/strings/urljoin.js.map +0 -1
- package/lib/esnext/strings/urljoin.test.d.ts +0 -1
- package/lib/esnext/strings/urljoin.test.js +0 -5
- package/lib/esnext/strings/urljoin.test.js.map +0 -1
- package/lib/esnext/validations/asserts.d.ts +0 -2
- package/lib/esnext/validations/asserts.js +0 -13
- package/lib/esnext/validations/asserts.js.map +0 -1
- package/lib/esnext/validations/index.d.ts +0 -4
- package/lib/esnext/validations/index.js +0 -5
- package/lib/esnext/validations/index.js.map +0 -1
- package/lib/esnext/validations/isClass.d.ts +0 -1
- package/lib/esnext/validations/isClass.js +0 -4
- package/lib/esnext/validations/isClass.js.map +0 -1
- package/lib/esnext/validations/isDefined.d.ts +0 -1
- package/lib/esnext/validations/isDefined.js +0 -4
- package/lib/esnext/validations/isDefined.js.map +0 -1
- package/lib/esnext/validations/isEmptyObject.d.ts +0 -1
- package/lib/esnext/validations/isEmptyObject.js +0 -7
- package/lib/esnext/validations/isEmptyObject.js.map +0 -1
- package/rollup.config.ts +0 -76
- package/src/arrays/index.ts +0 -1
- package/src/asyncs/index.ts +0 -8
- package/src/browsers/index.ts +0 -4
- package/src/envs/index.ts +0 -1
- package/src/envs/isDev.ts +0 -3
- package/src/io/index.ts +0 -1
- package/src/isomorphics/index.ts +0 -1
- package/src/maths/index.ts +0 -1
- package/src/strings/index.ts +0 -3
- package/src/strings/urljoin.test.ts +0 -5
- package/src/validations/index.ts +0 -4
- package/tsconfig.jest.json +0 -7
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wener-utils.esm.js","sources":["../src/arrays/MaybeArray.ts","../src/asyncs/LazyPromise.ts","../src/asyncs/AsyncInterval.ts","../src/asyncs/sleep.ts","../src/asyncs/timeout.ts","../src/asyncs/isPromise.ts","../src/asyncs/promiseOfCallback.ts","../src/validations/asserts.ts","../src/validations/isDefined.ts","../src/validations/isEmptyObject.ts","../src/validations/isClass.ts","../src/strings/camelCase.ts","../src/strings/templates.ts","../src/strings/urljoin.ts","../src/maths/random.ts","../src/io/isBuffer.ts","../src/envs/isDev.ts","../src/browsers/clipboard.ts","../src/browsers/download.ts","../src/browsers/loaders.ts","../src/browsers/transfers.ts","../src/isomorphics/getGlobalThis.ts"],"sourcesContent":["export type MaybeArray<T> = T | T[];\n\nexport function objectOfMaybeArray<T = any>(\n o: Record<string, MaybeArray<T>>,\n keys: string[] | null = null,\n picker = firstOfMaybeArray,\n): Record<string, T> {\n if (keys === null) {\n return Object.fromEntries(Object.entries(o).map(([k, v]) => [k, picker(v)]));\n }\n return Object.fromEntries(keys.map((v) => [v, picker(v)])) as any;\n}\nexport function firstOfMaybeArray<T>(v: MaybeArray<T>): T {\n if (Array.isArray(v)) {\n return v[0];\n }\n return v;\n}\n\nexport function lastOfMaybeArray<T>(v: MaybeArray<T>): T {\n if (Array.isArray(v)) {\n return v[v.length - 1];\n }\n return v;\n}\n\nexport function arrayOfMaybeArray<T>(v: MaybeArray<T>): T[] {\n if (Array.isArray(v)) {\n return v;\n }\n if (v === null || v === undefined) {\n return [];\n }\n return [v];\n}\n","export type LazyPromise<T> = Promise<T> & {\n reject(e: any): void;\n resolve(v?: T | PromiseLike<T>): void;\n};\n\nexport function createLazyPromise<T = any>(): LazyPromise<T> {\n const holder = {\n resolve(_: any): void {\n throw new Error('pending resolve');\n },\n reject(_: any): void {\n throw new Error('pending reject');\n },\n };\n return Object.assign(\n new Promise<T>((resolve, reject) => {\n holder.reject = reject;\n holder.resolve = resolve;\n }),\n {\n resolve(v: any) {\n holder.resolve(v);\n },\n reject(v: any) {\n holder.resolve(v);\n },\n },\n );\n}\n","export type AsyncIntervalIdentifier = any;\n\nexport function setAsyncInterval(cb: () => void, interval: number, initial = interval): AsyncIntervalIdentifier {\n let id: any;\n const handler = async () => {\n await cb();\n id = setTimeout(handler, interval);\n };\n id = setTimeout(handler, initial);\n return () => id;\n}\n\nexport function clearAsyncInterval(v: AsyncIntervalIdentifier) {\n clearTimeout(v?.());\n}\n","export const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n","export function timeout<T = any>(v: Promise<T>, ms: number): Promise<T> {\n const error = new TimeoutError();\n let timeout: any;\n return Promise.race([\n v,\n new Promise((resolve, reject) => {\n timeout = setTimeout(() => reject(error), ms);\n }),\n ]).then(\n (v) => {\n clearTimeout(timeout);\n return v;\n },\n (e) => {\n clearTimeout(timeout);\n throw e;\n },\n ) as Promise<T>;\n}\n\nexport class TimeoutError extends Error {\n constructor() {\n super('TimeoutError');\n }\n}\n","export function isPromise<T>(v: any): v is Promise<T> {\n return v && (v instanceof Promise || (v.then && v.catch));\n}\n","export function promiseOfCallback<T>(fun: (cb: (err: any, val?: T) => void) => void) {\n return new Promise<T>((resolve, reject) => {\n try {\n fun((e: any, v: any) => {\n if (e) {\n reject(e);\n } else {\n resolve(v);\n }\n });\n } catch (e) {\n reject(e);\n }\n });\n}\n","export function assert(condition: any, msg?: string): asserts condition {\n // if (!condition) {\n // throw new AssertionError(msg);\n // }\n console.assert(!condition, msg);\n}\n\nexport function assertIsDefined<T>(val: T): asserts val is NonNullable<T> {\n // if (val === undefined || val === null) {\n // throw new AssertionError(`Expected 'val' to be defined, but received ${val}`);\n // }\n console.assert(val === undefined || val === null, 'Expected defined');\n}\n","export function isDefined<T = any>(v: T): v is NonNullable<T> {\n return v !== null && v !== undefined;\n}\n","export function isEmptyObject(o: any) {\n if (o === null || o === undefined) {\n return true;\n }\n return o.constructor === Object && Object.keys(o).length === 0;\n}\n","export function isClass(func: any) {\n return typeof func === 'function' && /^class\\s/.test(Function.prototype.toString.call(func));\n}\n","// https://github.com/sindresorhus/camelcase/blob/master/index.js\n\nfunction preserveCamelCase(string: string) {\n let isLastCharLower = false;\n let isLastCharUpper = false;\n let isLastLastCharUpper = false;\n\n for (let i = 0; i < string.length; i++) {\n const character = string[i];\n\n if (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {\n string = string.slice(0, i) + '-' + string.slice(i);\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i++;\n } else if (\n isLastCharUpper &&\n isLastLastCharUpper &&\n /[a-zA-Z]/.test(character) &&\n character.toLowerCase() === character\n ) {\n string = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;\n }\n }\n\n return string;\n}\n\nexport function pascalCase(input: string | string[]) {\n return camelCase(input, { pascalCase: true });\n}\n\nexport function camelCase(\n input: string | string[],\n options: { pascalCase: boolean } = {\n pascalCase: false,\n },\n) {\n if (!(typeof input === 'string' || Array.isArray(input))) {\n throw new TypeError('Expected the input to be `string | string[]`');\n }\n\n const postProcess = (x: string) => (options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x);\n\n if (Array.isArray(input)) {\n input = input\n .map((x) => x.trim())\n .filter((x) => x.length)\n .join('-');\n } else {\n input = input.trim();\n }\n\n if (input.length === 0) {\n return '';\n }\n\n if (input.length === 1) {\n return options.pascalCase ? input.toUpperCase() : input.toLowerCase();\n }\n\n const hasUpperCase = input !== input.toLowerCase();\n\n if (hasUpperCase) {\n input = preserveCamelCase(input);\n }\n\n input = input\n .replace(/^[_.\\- ]+/, '')\n .toLowerCase()\n .replace(/[_.\\- ]+(\\w|$)/g, (_, p1) => p1.toUpperCase())\n .replace(/\\d+(\\w|$)/g, (m) => m.toUpperCase());\n\n return postProcess(input);\n}\n","/**\n * 替换类似于 JS 的模板字符串\n *\n * @example\n * templateString('My name is ${name}',{name:'wener'})\n */\nexport function templateString(template: string, getter: (v: string) => any) {\n return template.replace(/\\${(.*?)}/g, (_, g) => {\n // variables[g.trim()]\n // 支持路径 - 例如 a.b[0]\n return getter(g.trim());\n });\n}\n","/// see https://github.com/jfromaniello/url-join\nexport function urljoin(...strArray: string[]) {\n const resultArray: string[] = [];\n if (strArray.length === 0) {\n return '';\n }\n\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n\n // If the first part is a plain protocol, we combine it with the next part.\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n const first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n\n // There must be two or three slashes in the file protocol, two slashes in anything else.\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n\n for (let i = 0; i < strArray.length; i++) {\n let component = strArray[i];\n\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n\n if (component === '') {\n continue;\n }\n\n if (i > 0) {\n // Removing the starting slashes for each component but the first.\n component = component.replace(/^[/]+/, '');\n }\n if (i < strArray.length - 1) {\n // Removing the ending slashes for each component but the last.\n component = component.replace(/[/]+$/, '');\n } else {\n // For the last component we will combine multiple slashes to a single one.\n component = component.replace(/[/]+$/, '/');\n }\n\n resultArray.push(component);\n }\n\n let str = resultArray.join('/');\n // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n // remove trailing slash before parameters or hash\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n // replace ? in parameters with &\n const parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?' : '') + parts.join('&');\n\n return str;\n}\n","/// javascript pseudo random\nexport function createRandom({ seed = 0 } = {}) {\n if (typeof seed === 'string') {\n const s: string = seed;\n let sum = 0;\n for (let i = 0; i < s.length; i++) {\n sum += s.charCodeAt(i);\n }\n seed = sum;\n }\n\n return () => {\n const x = Math.sin(seed++) * 10000;\n return x - Math.floor(x);\n };\n}\n","// https://github.com/feross/is-buffer/blob/master/index.js\nexport function isBuffer(obj: any): obj is Buffer {\n return (\n obj != null &&\n obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' &&\n obj.constructor.isBuffer(obj)\n );\n}\n","export const isDev = () => {\n return typeof process !== 'undefined' && (process?.env?.NODE_ENV || '').startsWith('dev');\n};\n","// https://gist.github.com/rproenca/64781c6a1329b48a455b645d361a9aa3\nlet _copy: (s: any) => void;\n\nfunction initCopy() {\n let textArea: HTMLTextAreaElement;\n\n function isIOS() {\n return navigator.userAgent.match(/ipad|iphone/i);\n }\n\n function createTextArea(text: string) {\n textArea = document.createElement('textArea') as HTMLTextAreaElement;\n textArea.value = text;\n document.body.appendChild(textArea);\n }\n\n function selectText() {\n let range, selection;\n\n if (isIOS()) {\n range = document.createRange();\n range.selectNodeContents(textArea);\n selection = window.getSelection();\n if (selection === null) {\n console.error(`no selection`);\n return;\n }\n selection.removeAllRanges();\n selection.addRange(range);\n textArea.setSelectionRange(0, 999999);\n } else {\n textArea.select();\n }\n }\n\n function copyToClipboard() {\n document.execCommand('copy');\n document.body.removeChild(textArea);\n }\n\n _copy = (text) => {\n createTextArea(text);\n selectText();\n copyToClipboard();\n };\n}\n\nexport function copy(text: string) {\n if (window.navigator?.clipboard?.writeText) {\n window.navigator.clipboard.writeText(text);\n return;\n }\n if (!_copy) {\n initCopy();\n }\n _copy(text);\n}\n","export function download(filename: string, data: any, { type = 'application/octet-stream', raw = false } = {}) {\n const a = document.createElement('a');\n let closer: () => void = () => null;\n try {\n a.download = filename;\n\n // console.info(`downloading ${name}`, data);\n\n // url or data url\n if (typeof data === 'string' && /^(https?:|data:)/.test(data) && !raw) {\n a.href = data;\n } else if (typeof data === 'string') {\n data = new TextEncoder().encode(data);\n }\n\n if (data instanceof Uint8Array) {\n data = new Blob([data], { type });\n }\n\n if (data instanceof File || data instanceof Blob || data instanceof MediaSource) {\n a.href = URL.createObjectURL(data);\n closer = () => URL.revokeObjectURL(a.href);\n } else {\n console.error(`invalid download data`, data);\n throw new Error(`can not download ${Object.getPrototypeOf(data)}`);\n }\n a.click();\n } finally {\n closer();\n }\n}\n","function load(\n el: HTMLScriptElement | HTMLLinkElement,\n resolve: (v: any) => void,\n reject: (v: any) => void,\n options: { attributes: Record<string, string> } | undefined,\n) {\n el.onload = resolve;\n el.onerror = (e) => {\n el.remove();\n reject(e);\n };\n const { attributes = {} } = options || {};\n Object.entries(attributes).forEach(([k, v]) => el.setAttribute(k, v));\n\n document.head.appendChild(el);\n}\n\nexport function loadScripts(src: string, options?: { attributes: Record<string, string> }) {\n // todo quote ?\n if (document.querySelector(`script[src=\"${src}\"]`)) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const el = document.createElement('script');\n el.src = src;\n load(el, resolve, reject, options);\n });\n}\n\nexport function loadStyles(href: string, options?: { attributes: Record<string, string> }) {\n if (document.querySelector(`link[href=\"${href}\"]`)) {\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n const el = document.createElement('link');\n el.rel = 'stylesheet';\n el.href = href;\n load(el, resolve, reject, options);\n });\n}\n","export function getFile(dataTransfer: DataTransfer): { file: File; filename: string } | null {\n const items: DataTransferItemList = dataTransfer?.items ?? ([] as any);\n\n if (items.length >= 2 && items[0].kind === 'string' && items[1].kind === 'file') {\n const text = dataTransfer.getData('text');\n const file = items[1].getAsFile() ?? dataTransfer.files?.item(0);\n if (!file) {\n console.error(`no file ${text}`, items[1]);\n return null;\n }\n\n // let type = file.type;\n // // fix type\n // type = type;\n // // NOTE paste file can not parse by libs\n // if (type !== file.type) {\n // const blob = file.slice(0, file.size);\n // file = new File([blob], text, {type});\n // }\n\n return { file, filename: text };\n } else if (items[0].kind === 'file') {\n const file = items[0].getAsFile();\n if (!file) {\n console.error(`no file`, items[0]);\n return null;\n }\n return { file, filename: file.name };\n } else {\n console.debug(\n `file item not match`,\n Array.from(items).map((v) => ({ type: v.type, kind: v.kind })),\n );\n }\n return null;\n}\n","declare const global: typeof globalThis;\n\n/**\n * isomorphic globalThis\n *\n * globalThis supported by ff 65, chrome 71, node 12, babel\n *\n * @see https://caniuse.com/#search=globalThis\n * @see https://v8.dev/features/globalthis\n */\nexport const getGlobalThis = (): typeof globalThis => {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global as any;\n // eslint-disable-next-line\n // @ts-ignore\n if (typeof this !== 'undefined') return this;\n throw new Error('Unable to locate global `this`');\n};\n"],"names":["objectOfMaybeArray","o","keys","picker","firstOfMaybeArray","Object","fromEntries","entries","map","k","v","Array","isArray","lastOfMaybeArray","length","arrayOfMaybeArray","undefined","createLazyPromise","holder","resolve","_","Error","reject","assign","Promise","setAsyncInterval","cb","interval","initial","id","handler","setTimeout","clearAsyncInterval","clearTimeout","sleep","ms","timeout","error","TimeoutError","race","then","e","isPromise","promiseOfCallback","fun","assert","condition","msg","console","assertIsDefined","val","isDefined","isEmptyObject","constructor","isClass","func","test","Function","prototype","toString","call","preserveCamelCase","string","isLastCharLower","isLastCharUpper","isLastLastCharUpper","i","character","toUpperCase","slice","toLowerCase","pascalCase","input","camelCase","options","TypeError","postProcess","x","charAt","trim","filter","join","hasUpperCase","replace","p1","m","templateString","template","getter","g","urljoin","resultArray","strArray","match","first","shift","component","push","str","parts","split","createRandom","seed","s","sum","charCodeAt","Math","sin","floor","isBuffer","obj","isDev","process","env","NODE_ENV","startsWith","_copy","initCopy","textArea","isIOS","navigator","userAgent","createTextArea","text","document","createElement","value","body","appendChild","selectText","range","selection","createRange","selectNodeContents","window","getSelection","removeAllRanges","addRange","setSelectionRange","select","copyToClipboard","execCommand","removeChild","copy","clipboard","writeText","download","filename","data","type","raw","a","closer","href","TextEncoder","encode","Uint8Array","Blob","File","MediaSource","URL","createObjectURL","revokeObjectURL","getPrototypeOf","click","load","el","onload","onerror","remove","attributes","forEach","setAttribute","head","loadScripts","src","querySelector","loadStyles","rel","getFile","dataTransfer","items","kind","getData","file","getAsFile","files","item","name","debug","from","getGlobalThis","globalThis","self","global"],"mappings":"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"}
|