@wener/utils 1.1.26 → 1.1.29
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 +4 -0
- package/lib/arrays/MaybeArray.js +36 -25
- package/lib/arrays/MaybeArray.js.map +1 -1
- package/lib/arrays/arrayFromAsync.js +5 -7
- package/lib/arrays/arrayFromAsync.js.map +1 -1
- package/lib/asyncs/AsyncInterval.js +11 -12
- package/lib/asyncs/AsyncInterval.js.map +1 -1
- package/lib/asyncs/MaybePromise.js +3 -0
- package/lib/asyncs/MaybePromise.js.map +1 -0
- package/lib/asyncs/createAsyncIterator.js +37 -35
- package/lib/asyncs/createAsyncIterator.js.map +1 -1
- package/lib/asyncs/createLazyPromise.js +59 -60
- package/lib/asyncs/createLazyPromise.js.map +1 -1
- package/lib/asyncs/firstOfAsyncIterator.js +7 -9
- package/lib/asyncs/firstOfAsyncIterator.js.map +1 -1
- package/lib/asyncs/generatorOfStream.js +16 -0
- package/lib/asyncs/generatorOfStream.js.map +1 -0
- package/lib/asyncs/isIterator.js +3 -4
- package/lib/asyncs/isIterator.js.map +1 -1
- package/lib/asyncs/isPromise.js +3 -4
- package/lib/asyncs/isPromise.js.map +1 -1
- package/lib/asyncs/isThenable.js +6 -0
- package/lib/asyncs/isThenable.js.map +1 -0
- package/lib/asyncs/nextOfAsyncIterator.js +20 -14
- package/lib/asyncs/nextOfAsyncIterator.js.map +1 -1
- package/lib/asyncs/promiseOfCallback.js +17 -0
- package/lib/asyncs/promiseOfCallback.js.map +1 -0
- package/lib/asyncs/sleep.js +2 -3
- package/lib/asyncs/sleep.js.map +1 -1
- package/lib/asyncs/timeout.js +22 -26
- package/lib/asyncs/timeout.js.map +1 -1
- package/lib/browsers/copy.js +47 -45
- package/lib/browsers/copy.js.map +1 -1
- package/lib/browsers/download.js +38 -27
- package/lib/browsers/download.js.map +1 -1
- package/lib/browsers/getFileFromDataTransfer.js +41 -28
- package/lib/browsers/getFileFromDataTransfer.js.map +1 -1
- package/lib/browsers/loaders.js +43 -43
- package/lib/browsers/loaders.js.map +1 -1
- package/lib/crypto/base.js +5 -4
- package/lib/crypto/base.js.map +1 -1
- package/lib/crypto/getNodeCrypto.js +14 -13
- package/lib/crypto/getNodeCrypto.js.map +1 -1
- package/lib/crypto/getRandomValues.js +22 -26
- package/lib/crypto/getRandomValues.js.map +1 -1
- package/lib/crypto/hashing.js +42 -50
- package/lib/crypto/hashing.js.map +1 -1
- package/lib/crypto/md5.bench.js +21 -0
- package/lib/crypto/md5.bench.js.map +1 -0
- package/lib/crypto/md5.d.js +3 -0
- package/lib/crypto/md5.d.js.map +1 -0
- package/lib/crypto/md5.js +119 -121
- package/lib/crypto/md5.js.map +1 -1
- package/lib/crypto/pem/pem.js +32 -35
- package/lib/crypto/pem/pem.js.map +1 -1
- package/lib/crypto/randomUUID.js +12 -11
- package/lib/crypto/randomUUID.js.map +1 -1
- package/lib/crypto/ulid.js +123 -112
- package/lib/crypto/ulid.js.map +1 -1
- package/lib/errors/Errors.js +167 -149
- package/lib/errors/Errors.js.map +1 -1
- package/lib/fetch/createFetchWith.js +20 -23
- package/lib/fetch/createFetchWith.js.map +1 -1
- package/lib/fetch/createFetchWithLogging.js +20 -16
- package/lib/fetch/createFetchWithLogging.js.map +1 -1
- package/lib/fetch/createFetchWithRetry.js +61 -65
- package/lib/fetch/createFetchWithRetry.js.map +1 -1
- package/lib/fetch/dumpRequest.js +39 -42
- package/lib/fetch/dumpRequest.js.map +1 -1
- package/lib/fetch/dumpResponse.js +13 -20
- package/lib/fetch/dumpResponse.js.map +1 -1
- package/lib/fetch/index.js +7 -0
- package/lib/fetch/index.js.map +1 -0
- package/lib/fetch/types.js +3 -0
- package/lib/fetch/types.js.map +1 -0
- package/lib/http/HttpStatus.js +89 -80
- package/lib/http/HttpStatus.js.map +1 -1
- package/lib/i18n/createTranslate.js +48 -48
- package/lib/i18n/createTranslate.js.map +1 -1
- package/lib/index.js +30 -14
- package/lib/index.js.map +1 -1
- package/lib/io/AbstractEncoding.js +7 -0
- package/lib/io/AbstractEncoding.js.map +1 -0
- package/lib/io/ArrayBuffer.test-d.js +7 -0
- package/lib/io/ArrayBuffer.test-d.js.map +1 -0
- package/lib/io/ArrayBuffers.js +198 -172
- package/lib/io/ArrayBuffers.js.map +1 -1
- package/lib/io/Buffer.js +21 -20
- package/lib/io/Buffer.js.map +1 -1
- package/lib/io/base64.js +49 -48
- package/lib/io/base64.js.map +1 -1
- package/lib/io/isBuffer.js +7 -5
- package/lib/io/isBuffer.js.map +1 -1
- package/lib/io/isTransferable.js +23 -19
- package/lib/io/isTransferable.js.map +1 -1
- package/lib/isomorphics/getGlobalThis.js +17 -12
- package/lib/isomorphics/getGlobalThis.js.map +1 -1
- package/lib/isomorphics/structuredClone.js +71 -63
- package/lib/isomorphics/structuredClone.js.map +1 -1
- package/lib/langs/MaybeFunction.js +7 -7
- package/lib/langs/MaybeFunction.js.map +1 -1
- package/lib/langs/classOf.js +3 -4
- package/lib/langs/classOf.js.map +1 -1
- package/lib/langs/deepEqual.js +77 -85
- package/lib/langs/deepEqual.js.map +1 -1
- package/lib/langs/deepFreeze.js +20 -0
- package/lib/langs/deepFreeze.js.map +1 -0
- package/lib/langs/hashCode.ignored.js +112 -0
- package/lib/langs/hashCode.ignored.js.map +1 -0
- package/lib/langs/isClass.js +3 -4
- package/lib/langs/isClass.js.map +1 -1
- package/lib/langs/isDefined.js +3 -4
- package/lib/langs/isDefined.js.map +1 -1
- package/lib/langs/isEmptyObject.js +3 -5
- package/lib/langs/isEmptyObject.js.map +1 -1
- package/lib/langs/isFunction.js +5 -0
- package/lib/langs/isFunction.js.map +1 -0
- package/lib/langs/isPlainObject.js +7 -8
- package/lib/langs/isPlainObject.js.map +1 -1
- package/lib/langs/memoize.js +19 -21
- package/lib/langs/memoize.js.map +1 -1
- package/lib/langs/parseBoolean.js +26 -27
- package/lib/langs/parseBoolean.js.map +1 -1
- package/lib/langs/shallowClone.js +12 -12
- package/lib/langs/shallowClone.js.map +1 -1
- package/lib/langs/shallowEqual.js +21 -18
- package/lib/langs/shallowEqual.js.map +1 -1
- package/lib/libs/ms.js +123 -103
- package/lib/libs/ms.js.map +1 -1
- package/lib/logging/Logger.js +5 -0
- package/lib/logging/Logger.js.map +1 -0
- package/lib/logging/createChildLogger.js +12 -14
- package/lib/logging/createChildLogger.js.map +1 -1
- package/lib/logging/createLogger.js +59 -33
- package/lib/logging/createLogger.js.map +1 -1
- package/lib/logging/createNoopLogger.js +11 -12
- package/lib/logging/createNoopLogger.js.map +1 -1
- package/lib/logging/slog.js +143 -0
- package/lib/logging/slog.js.map +1 -0
- package/lib/maths/clamp.js +21 -0
- package/lib/maths/clamp.js.map +1 -0
- package/lib/maths/random.js +14 -15
- package/lib/maths/random.js.map +1 -1
- package/lib/modules/isModule.js +5 -4
- package/lib/modules/isModule.js.map +1 -1
- package/lib/modules/parseModuleId.js +36 -31
- package/lib/modules/parseModuleId.js.map +1 -1
- package/lib/objects/get.js +13 -11
- package/lib/objects/get.js.map +1 -1
- package/lib/objects/get.test-d.js +33 -0
- package/lib/objects/get.test-d.js.map +1 -0
- package/lib/objects/merge/index.js +3 -0
- package/lib/objects/merge/index.js.map +1 -0
- package/lib/objects/merge/isMergeableObject.js +11 -10
- package/lib/objects/merge/isMergeableObject.js.map +1 -1
- package/lib/objects/merge/merge.js +65 -66
- package/lib/objects/merge/merge.js.map +1 -1
- package/lib/objects/parseObjectPath.js +35 -23
- package/lib/objects/parseObjectPath.js.map +1 -1
- package/lib/objects/set.js +33 -34
- package/lib/objects/set.js.map +1 -1
- package/lib/schema/typebox/gen/codegen/common/encoder.js +100 -0
- package/lib/schema/typebox/gen/codegen/common/encoder.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/common/formatter.js +33 -0
- package/lib/schema/typebox/gen/codegen/common/formatter.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/common/index.js +5 -0
- package/lib/schema/typebox/gen/codegen/common/index.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/common/jsdoc.js +117 -0
- package/lib/schema/typebox/gen/codegen/common/jsdoc.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/expression/compiler.js +367 -0
- package/lib/schema/typebox/gen/codegen/expression/compiler.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/expression/errors.js +259 -0
- package/lib/schema/typebox/gen/codegen/expression/errors.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/expression/evaluator.js +254 -0
- package/lib/schema/typebox/gen/codegen/expression/evaluator.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/expression/expression.js +384 -0
- package/lib/schema/typebox/gen/codegen/expression/expression.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/expression/index.js +6 -0
- package/lib/schema/typebox/gen/codegen/expression/index.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/index.js +5 -0
- package/lib/schema/typebox/gen/codegen/index.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/model/index.js +16 -0
- package/lib/schema/typebox/gen/codegen/model/index.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js +239 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-expression.js +359 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-expression.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js +217 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js +253 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js +47 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js +171 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js +33 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js +164 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js +218 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-value.js +43 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-value.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js +206 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-yup.js +204 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-yup.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-zod.js +227 -0
- package/lib/schema/typebox/gen/codegen/model/model-to-zod.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/model/model.js +27 -0
- package/lib/schema/typebox/gen/codegen/model/model.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/typescript/index.js +4 -0
- package/lib/schema/typebox/gen/codegen/typescript/index.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js +48 -0
- package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js.map +1 -0
- package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js +596 -0
- package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js.map +1 -0
- package/lib/schema/typebox/gen/index.js +3 -0
- package/lib/schema/typebox/gen/index.js.map +1 -0
- package/lib/schema/typebox/index.js +3 -0
- package/lib/schema/typebox/index.js.map +1 -0
- package/lib/schema/typebox/typebox.js +23 -0
- package/lib/schema/typebox/typebox.js.map +1 -0
- package/lib/server.js +2 -1
- package/lib/server.js.map +1 -1
- package/lib/servers/crypto/md5.js +3 -5
- package/lib/servers/crypto/md5.js.map +1 -1
- package/lib/servers/fetch/createFetchWithProxy.js +2 -4
- package/lib/servers/fetch/createFetchWithProxy.js.map +1 -1
- package/lib/servers/fetch/createFetchWithProxyByNodeFetch.js +34 -34
- package/lib/servers/fetch/createFetchWithProxyByNodeFetch.js.map +1 -1
- package/lib/servers/fetch/createFetchWithProxyByUndici.js +59 -45
- package/lib/servers/fetch/createFetchWithProxyByUndici.js.map +1 -1
- package/lib/servers/getPackageDir.js +8 -10
- package/lib/servers/getPackageDir.js.map +1 -1
- package/lib/servers/jsdom.js +3 -2
- package/lib/servers/jsdom.js.map +1 -1
- package/lib/servers/node-fetch.js +4 -3
- package/lib/servers/node-fetch.js.map +1 -1
- package/lib/servers/polyfill/polyfillBrowser.js +17 -0
- package/lib/servers/polyfill/polyfillBrowser.js.map +1 -0
- package/lib/servers/polyfill/polyfillCrypto.js +8 -10
- package/lib/servers/polyfill/polyfillCrypto.js.map +1 -1
- package/lib/servers/polyfill/polyfillFetch.js +23 -22
- package/lib/servers/polyfill/polyfillFetch.js.map +1 -1
- package/lib/servers/polyfill/polyfillJsDom.js +59 -52
- package/lib/servers/polyfill/polyfillJsDom.js.map +1 -1
- package/lib/servers/polyfill/polyfillWebSocket.js +13 -13
- package/lib/servers/polyfill/polyfillWebSocket.js.map +1 -1
- package/lib/servers/ws.js +3 -2
- package/lib/servers/ws.js.map +1 -1
- package/lib/strings/camelCase.js +51 -49
- package/lib/strings/camelCase.js.map +1 -1
- package/lib/strings/formatBytes.js +41 -15
- package/lib/strings/formatBytes.js.map +1 -1
- package/lib/strings/renderTemplate.js +27 -20
- package/lib/strings/renderTemplate.js.map +1 -1
- package/lib/typedoc.js +4 -0
- package/lib/typedoc.js.map +1 -0
- package/lib/types/global.d.js +2 -0
- package/lib/types/global.d.js.map +1 -0
- package/lib/types/index.d.js +6 -0
- package/lib/types/index.d.js.map +1 -0
- package/lib/validations/asserts.js +14 -0
- package/lib/validations/asserts.js.map +1 -0
- package/lib/validations/isUUID.js +3 -4
- package/lib/validations/isUUID.js.map +1 -1
- package/lib/validations/parseTimestamp.js +25 -21
- package/lib/validations/parseTimestamp.js.map +1 -1
- package/package.json +59 -44
- package/src/index.ts +3 -3
- package/src/langs/deepFreeze.ts +19 -0
- package/src/langs/hashCode.ignored.ts +125 -0
- package/src/libs/README.md +2 -0
- package/src/logging/slog.ts +121 -0
- package/src/maths/clamp.test.ts +19 -0
- package/src/maths/clamp.ts +23 -1
- package/src/objects/get.ts +14 -14
- package/src/objects/set.ts +5 -5
- package/src/schema/typebox/gen/codegen/common/encoder.ts +99 -0
- package/src/schema/typebox/gen/codegen/common/formatter.ts +31 -0
- package/src/schema/typebox/gen/codegen/common/index.ts +29 -0
- package/src/schema/typebox/gen/codegen/common/jsdoc.ts +93 -0
- package/src/schema/typebox/gen/codegen/expression/compiler.ts +377 -0
- package/src/schema/typebox/gen/codegen/expression/errors.ts +302 -0
- package/src/schema/typebox/gen/codegen/expression/evaluator.ts +268 -0
- package/src/schema/typebox/gen/codegen/expression/expression.ts +538 -0
- package/src/schema/typebox/gen/codegen/expression/index.ts +32 -0
- package/src/schema/typebox/gen/codegen/index.ts +29 -0
- package/src/schema/typebox/gen/codegen/model/index.ts +40 -0
- package/src/schema/typebox/gen/codegen/model/model-to-arktype.ts +266 -0
- package/src/schema/typebox/gen/codegen/model/model-to-expression.ts +378 -0
- package/src/schema/typebox/gen/codegen/model/model-to-grpc.ts +244 -0
- package/src/schema/typebox/gen/codegen/model/model-to-io-ts.ts +294 -0
- package/src/schema/typebox/gen/codegen/model/model-to-javascript.ts +42 -0
- package/src/schema/typebox/gen/codegen/model/model-to-json-schema.ts +166 -0
- package/src/schema/typebox/gen/codegen/model/model-to-typebox.ts +32 -0
- package/src/schema/typebox/gen/codegen/model/model-to-typescript.ts +189 -0
- package/src/schema/typebox/gen/codegen/model/model-to-valibot.ts +236 -0
- package/src/schema/typebox/gen/codegen/model/model-to-value.ts +42 -0
- package/src/schema/typebox/gen/codegen/model/model-to-yrel.ts +232 -0
- package/src/schema/typebox/gen/codegen/model/model-to-yup.ts +226 -0
- package/src/schema/typebox/gen/codegen/model/model-to-zod.ts +251 -0
- package/src/schema/typebox/gen/codegen/model/model.ts +33 -0
- package/src/schema/typebox/gen/codegen/typescript/index.ts +28 -0
- package/src/schema/typebox/gen/codegen/typescript/typescript-to-model.ts +61 -0
- package/src/schema/typebox/gen/codegen/typescript/typescript-to-typebox.ts +647 -0
- package/src/schema/typebox/gen/gen.test.ts +12 -0
- package/src/schema/typebox/gen/index.ts +1 -0
- package/src/schema/typebox/index.ts +1 -0
- package/src/schema/typebox/typebox.ts +34 -0
- package/src/servers/fetch/createFetchWithProxyByUndici.ts +16 -1
- package/src/types/index.d.ts +1 -0
- package/dist/LICENSE.txt +0 -1
- package/dist/cjs/getGlobalThis-304f74e0.js +0 -2
- package/dist/cjs/getGlobalThis-304f74e0.js.map +0 -1
- package/dist/cjs/index.cjs +0 -21
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/cjs/server.cjs +0 -2
- package/dist/cjs/server.cjs.map +0 -1
- package/dist/cjs/servers/jsdom.cjs +0 -2
- package/dist/cjs/servers/jsdom.cjs.map +0 -1
- package/dist/cjs/servers/node-fetch.cjs +0 -2
- package/dist/cjs/servers/node-fetch.cjs.map +0 -1
- package/dist/cjs/servers/ws.cjs +0 -2
- package/dist/cjs/servers/ws.cjs.map +0 -1
- package/dist/esm/getGlobalThis-b7ad0cf9.js +0 -2
- package/dist/esm/getGlobalThis-b7ad0cf9.js.map +0 -1
- package/dist/esm/index.js +0 -21
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/server.js +0 -2
- package/dist/esm/server.js.map +0 -1
- package/dist/esm/servers/jsdom.js +0 -2
- package/dist/esm/servers/jsdom.js.map +0 -1
- package/dist/esm/servers/node-fetch.js +0 -2
- package/dist/esm/servers/node-fetch.js.map +0 -1
- package/dist/esm/servers/ws.js +0 -2
- package/dist/esm/servers/ws.js.map +0 -1
- package/dist/system/getGlobalThis-8951eb0e.js +0 -2
- package/dist/system/getGlobalThis-8951eb0e.js.map +0 -1
- package/dist/system/index.js +0 -21
- package/dist/system/index.js.map +0 -1
- package/dist/system/server.js +0 -2
- package/dist/system/server.js.map +0 -1
- package/dist/system/servers/jsdom.js +0 -2
- package/dist/system/servers/jsdom.js.map +0 -1
- package/dist/system/servers/node-fetch.js +0 -2
- package/dist/system/servers/node-fetch.js.map +0 -1
- package/dist/system/servers/ws.js +0 -2
- package/dist/system/servers/ws.js.map +0 -1
- package/src/langs/hashCode.ts +0 -37
package/README.md
CHANGED
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
- https://github.com/lukeed/templite
|
|
11
11
|
- https://github.com/lukeed/rosetta
|
|
12
12
|
- https://github.com/sindresorhus/camelcase
|
|
13
|
+
- https://github.com/triggerdotdev/trigger.dev/blob/main/packages/core-backend/src/bloom.ts
|
|
14
|
+
- ohash
|
|
15
|
+
- humanlize-duration
|
|
16
|
+
- morgan
|
|
13
17
|
- see also
|
|
14
18
|
- https://github.com/Daninet/hash-wasm
|
|
15
19
|
|
package/lib/arrays/MaybeArray.js
CHANGED
|
@@ -1,30 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Array or element of an array
|
|
3
|
+
*/ /**
|
|
4
|
+
* convert to single value object
|
|
5
|
+
*/ export function objectOfMaybeArray(o, keys = null, picker = firstOfMaybeArray) {
|
|
6
|
+
if (keys === null) {
|
|
7
|
+
return Object.fromEntries(Object.entries(o).map(([k, v])=>[
|
|
8
|
+
k,
|
|
9
|
+
picker(v)
|
|
10
|
+
]));
|
|
11
|
+
}
|
|
12
|
+
return Object.fromEntries(keys.map((v)=>[
|
|
13
|
+
v,
|
|
14
|
+
picker(v)
|
|
15
|
+
]));
|
|
6
16
|
}
|
|
7
|
-
function firstOfMaybeArray(v) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
function lastOfMaybeArray(v) {
|
|
14
|
-
if (Array.isArray(v)) {
|
|
15
|
-
return v[v.length - 1];
|
|
16
|
-
}
|
|
17
|
-
return v;
|
|
17
|
+
export function firstOfMaybeArray(v) {
|
|
18
|
+
if (Array.isArray(v)) {
|
|
19
|
+
return v[0];
|
|
20
|
+
}
|
|
21
|
+
return v;
|
|
18
22
|
}
|
|
19
|
-
function
|
|
20
|
-
|
|
23
|
+
export function lastOfMaybeArray(v) {
|
|
24
|
+
if (Array.isArray(v)) {
|
|
25
|
+
return v[v.length - 1];
|
|
26
|
+
}
|
|
21
27
|
return v;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
}
|
|
29
|
+
export function arrayOfMaybeArray(v) {
|
|
30
|
+
if (Array.isArray(v)) {
|
|
31
|
+
return v;
|
|
32
|
+
}
|
|
33
|
+
if (v === null || v === undefined) {
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
return [
|
|
37
|
+
v
|
|
38
|
+
];
|
|
27
39
|
}
|
|
28
40
|
|
|
29
|
-
|
|
30
|
-
//# sourceMappingURL=MaybeArray.js.map
|
|
41
|
+
//# sourceMappingURL=MaybeArray.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/arrays/MaybeArray.ts"],"sourcesContent":["/**\n * Array or element of an array\n */\nexport type MaybeArray<T> = T | T[];\n\n/**\n * convert to single value object\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}\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> | null | undefined): T[] {\n if (Array.isArray(v)) {\n return v;\n }\n if (v === null || v === undefined) {\n return [];\n }\n return [v];\n}\n"],"names":["objectOfMaybeArray","o","keys","picker","firstOfMaybeArray","Object","fromEntries","entries","map","k","v","Array","isArray","lastOfMaybeArray","length","arrayOfMaybeArray","undefined"],"mappings":"AAAA;;CAEC,GAGD;;CAEC,GACD,OAAO,SAASA,mBACdC,CAAgC,EAChCC,OAAwB,IAAI,EAC5BC,SAASC,iBAAiB;IAE1B,IAAIF,SAAS,MAAM;QACjB,OAAOG,OAAOC,WAAW,CAACD,OAAOE,OAAO,CAACN,GAAGO,GAAG,CAAC,CAAC,CAACC,GAAGC,EAAE,GAAK;gBAACD;gBAAGN,OAAOO;aAAG;IAC5E;IACA,OAAOL,OAAOC,WAAW,CAACJ,KAAKM,GAAG,CAAC,CAACE,IAAM;YAACA;YAAGP,OAAOO;SAAG;AAC1D;AAEA,OAAO,SAASN,kBAAqBM,CAAgB;IACnD,IAAIC,MAAMC,OAAO,CAACF,IAAI;QACpB,OAAOA,CAAC,CAAC,EAAE;IACb;IACA,OAAOA;AACT;AAEA,OAAO,SAASG,iBAAoBH,CAAgB;IAClD,IAAIC,MAAMC,OAAO,CAACF,IAAI;QACpB,OAAOA,CAAC,CAACA,EAAEI,MAAM,GAAG,EAAE;IACxB;IACA,OAAOJ;AACT;AAEA,OAAO,SAASK,kBAAqBL,CAAmC;IACtE,IAAIC,MAAMC,OAAO,CAACF,IAAI;QACpB,OAAOA;IACT;IACA,IAAIA,MAAM,QAAQA,MAAMM,WAAW;QACjC,OAAO,EAAE;IACX;IACA,OAAO;QAACN;KAAE;AACZ"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
async function arrayFromAsync(asyncIterable) {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
array
|
|
5
|
-
return array;
|
|
1
|
+
export async function arrayFromAsync(asyncIterable) {
|
|
2
|
+
const array = [];
|
|
3
|
+
for await (const i of asyncIterable)array.push(i);
|
|
4
|
+
return array;
|
|
6
5
|
}
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
//# sourceMappingURL=arrayFromAsync.js.map
|
|
7
|
+
//# sourceMappingURL=arrayFromAsync.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/arrays/arrayFromAsync.ts"],"sourcesContent":["export async function arrayFromAsync<T>(asyncIterable: AsyncIterable<T>): Promise<T[]> {\n const array = [];\n for await (const i of asyncIterable) array.push(i);\n return array;\n}\n"],"names":["arrayFromAsync","asyncIterable","array","i","push"],"mappings":"AAAA,OAAO,eAAeA,eAAkBC,aAA+B;IACrE,MAAMC,QAAQ,EAAE;IAChB,WAAW,MAAMC,KAAKF,cAAeC,MAAME,IAAI,CAACD;IAChD,OAAOD;AACT"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
function setAsyncInterval(cb, interval, initial = interval) {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
export function setAsyncInterval(cb, interval, initial = interval) {
|
|
2
|
+
let id;
|
|
3
|
+
const handler = async ()=>{
|
|
4
|
+
await cb();
|
|
5
|
+
id = setTimeout(handler, interval);
|
|
6
|
+
};
|
|
7
|
+
id = setTimeout(handler, initial);
|
|
8
|
+
return ()=>id;
|
|
9
9
|
}
|
|
10
|
-
function clearAsyncInterval(v) {
|
|
11
|
-
|
|
10
|
+
export function clearAsyncInterval(v) {
|
|
11
|
+
clearTimeout(v?.());
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
//# sourceMappingURL=AsyncInterval.js.map
|
|
14
|
+
//# sourceMappingURL=AsyncInterval.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/asyncs/AsyncInterval.ts"],"sourcesContent":["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"],"names":["setAsyncInterval","cb","interval","initial","id","handler","setTimeout","clearAsyncInterval","v","clearTimeout"],"mappings":"AAEA,OAAO,SAASA,iBAAiBC,EAAc,EAAEC,QAAgB,EAAEC,UAAUD,QAAQ;IACnF,IAAIE;IACJ,MAAMC,UAAU;QACd,MAAMJ;QACNG,KAAKE,WAAWD,SAASH;IAC3B;IACAE,KAAKE,WAAWD,SAASF;IACzB,OAAO,IAAMC;AACf;AAEA,OAAO,SAASG,mBAAmBC,CAA0B;IAC3DC,aAAaD;AACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/asyncs/MaybePromise.ts"],"sourcesContent":["export type MaybePromise<T> = Promise<T> | T;\n"],"names":[],"mappings":"AAAA,WAA6C"}
|
|
@@ -1,39 +1,41 @@
|
|
|
1
1
|
import { createLazyPromise } from './createLazyPromise.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
let value;
|
|
23
|
-
let err;
|
|
24
|
-
for (let i = 0, done = false; !done; i++) {
|
|
25
|
-
let result = await values[i];
|
|
26
|
-
delete values[i];
|
|
27
|
-
[value, done, err] = result;
|
|
28
|
-
if (err) {
|
|
29
|
-
throw err;
|
|
30
|
-
}
|
|
31
|
-
if (value !== void 0) {
|
|
32
|
-
yield value;
|
|
33
|
-
}
|
|
2
|
+
export function createAsyncIterator(fn) {
|
|
3
|
+
const values = [];
|
|
4
|
+
let recv;
|
|
5
|
+
{
|
|
6
|
+
let next;
|
|
7
|
+
values.push(next = createLazyPromise());
|
|
8
|
+
recv = (val, err)=>{
|
|
9
|
+
if (err !== undefined) {
|
|
10
|
+
next.resolve([
|
|
11
|
+
undefined,
|
|
12
|
+
true,
|
|
13
|
+
err
|
|
14
|
+
]);
|
|
15
|
+
} else if (val !== undefined) {
|
|
16
|
+
next.resolve(val);
|
|
17
|
+
} else {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
values.push(next = createLazyPromise());
|
|
21
|
+
};
|
|
34
22
|
}
|
|
35
|
-
|
|
23
|
+
fn(recv);
|
|
24
|
+
return async function*() {
|
|
25
|
+
let value;
|
|
26
|
+
let err;
|
|
27
|
+
for(let i = 0, done = false; !done; i++){
|
|
28
|
+
let result = await values[i];
|
|
29
|
+
delete values[i];
|
|
30
|
+
[value, done, err] = result;
|
|
31
|
+
if (err) {
|
|
32
|
+
throw err;
|
|
33
|
+
}
|
|
34
|
+
if (value !== undefined) {
|
|
35
|
+
yield value;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}();
|
|
36
39
|
}
|
|
37
40
|
|
|
38
|
-
|
|
39
|
-
//# sourceMappingURL=createAsyncIterator.js.map
|
|
41
|
+
//# sourceMappingURL=createAsyncIterator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/asyncs/createAsyncIterator.ts"],"sourcesContent":["import { type MaybePromise } from './MaybePromise';\nimport { createLazyPromise, type LazyPromise } from './createLazyPromise';\n\ntype Val<T> = [val: MaybePromise<T> | undefined, done: boolean, err?: any];\n\nexport function createAsyncIterator<T>(\n fn: (next: (val: [MaybePromise<T> | undefined, boolean] | undefined, err?: any) => void) => void,\n): AsyncGenerator<T, void, unknown> {\n const values: Array<Promise<Val<T>>> = [];\n let recv: (val: [MaybePromise<T> | undefined, boolean] | undefined, err?: any) => void;\n {\n let next: LazyPromise<Val<T>>;\n values.push((next = createLazyPromise()));\n recv = (val, err) => {\n if (err !== undefined) {\n next.resolve([undefined, true, err]);\n } else if (val !== undefined) {\n next.resolve(val);\n } else {\n return;\n }\n values.push((next = createLazyPromise()));\n };\n }\n\n fn(recv);\n\n return (async function* () {\n let value: Val<T>[0];\n let err: any;\n for (let i = 0, done = false; !done; i++) {\n let result = await values[i];\n delete values[i];\n [value, done, err] = result;\n if (err) {\n throw err;\n }\n if (value !== undefined) {\n yield value;\n }\n }\n })();\n}\n"],"names":["createLazyPromise","createAsyncIterator","fn","values","recv","next","push","val","err","undefined","resolve","value","i","done","result"],"mappings":"AACA,SAASA,iBAAiB,QAA0B,sBAAsB;AAI1E,OAAO,SAASC,oBACdC,EAAgG;IAEhG,MAAMC,SAAiC,EAAE;IACzC,IAAIC;IACJ;QACE,IAAIC;QACJF,OAAOG,IAAI,CAAED,OAAOL;QACpBI,OAAO,CAACG,KAAKC;YACX,IAAIA,QAAQC,WAAW;gBACrBJ,KAAKK,OAAO,CAAC;oBAACD;oBAAW;oBAAMD;iBAAI;YACrC,OAAO,IAAID,QAAQE,WAAW;gBAC5BJ,KAAKK,OAAO,CAACH;YACf,OAAO;gBACL;YACF;YACAJ,OAAOG,IAAI,CAAED,OAAOL;QACtB;IACF;IAEAE,GAAGE;IAEH,OAAO,AAAC;QACN,IAAIO;QACJ,IAAIH;QACJ,IAAK,IAAII,IAAI,GAAGC,OAAO,OAAO,CAACA,MAAMD,IAAK;YACxC,IAAIE,SAAS,MAAMX,MAAM,CAACS,EAAE;YAC5B,OAAOT,MAAM,CAACS,EAAE;YAChB,CAACD,OAAOE,MAAML,IAAI,GAAGM;YACrB,IAAIN,KAAK;gBACP,MAAMA;YACR;YACA,IAAIG,UAAUF,WAAW;gBACvB,MAAME;YACR;QACF;IACF;AACF"}
|
|
@@ -1,66 +1,65 @@
|
|
|
1
1
|
import { isPromise } from './isPromise.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const future = Object.assign(
|
|
13
|
-
new Promise((resolve, reject) => {
|
|
14
|
-
holder.reject = reject;
|
|
15
|
-
holder.resolve = resolve;
|
|
16
|
-
}),
|
|
17
|
-
{
|
|
18
|
-
resolve(v) {
|
|
19
|
-
holder.resolve(v);
|
|
20
|
-
},
|
|
21
|
-
reject(v) {
|
|
22
|
-
holder.resolve(v);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
);
|
|
26
|
-
if (executor) {
|
|
27
|
-
const r = holder.resolve;
|
|
28
|
-
let shouldExec = true;
|
|
29
|
-
holder.resolve = (v) => {
|
|
30
|
-
shouldExec = false;
|
|
31
|
-
r(v);
|
|
32
|
-
};
|
|
33
|
-
const then = future.then.bind(future);
|
|
34
|
-
future.then = (...args) => {
|
|
35
|
-
if (shouldExec) {
|
|
36
|
-
shouldExec = false;
|
|
37
|
-
try {
|
|
38
|
-
const result = executor(holder.resolve, holder.reject);
|
|
39
|
-
if (isPromise(result)) {
|
|
40
|
-
result.then(holder.resolve, holder.reject);
|
|
41
|
-
} else if (result !== void 0) {
|
|
42
|
-
holder.resolve(result);
|
|
43
|
-
}
|
|
44
|
-
} catch (e) {
|
|
45
|
-
holder.reject(e);
|
|
2
|
+
/**
|
|
3
|
+
* createLazyPromise return a promise that can be resolved or rejected manually.
|
|
4
|
+
* if you pass a function to it, it will be executed when the promise try to resolve.
|
|
5
|
+
*/ export function createLazyPromise(executor) {
|
|
6
|
+
const holder = {
|
|
7
|
+
resolve (_) {
|
|
8
|
+
throw new Error('pending resolve');
|
|
9
|
+
},
|
|
10
|
+
reject (_) {
|
|
11
|
+
throw new Error('pending reject');
|
|
46
12
|
}
|
|
47
|
-
}
|
|
48
|
-
return then(...args);
|
|
49
13
|
};
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
14
|
+
const future = Object.assign(new Promise((resolve, reject)=>{
|
|
15
|
+
holder.reject = reject;
|
|
16
|
+
holder.resolve = resolve;
|
|
17
|
+
}), {
|
|
18
|
+
resolve (v) {
|
|
19
|
+
holder.resolve(v);
|
|
20
|
+
},
|
|
21
|
+
reject (v) {
|
|
22
|
+
holder.resolve(v);
|
|
23
|
+
}
|
|
59
24
|
});
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
25
|
+
if (executor) {
|
|
26
|
+
const r = holder.resolve;
|
|
27
|
+
let shouldExec = true;
|
|
28
|
+
holder.resolve = (v)=>{
|
|
29
|
+
shouldExec = false;
|
|
30
|
+
r(v);
|
|
31
|
+
};
|
|
32
|
+
const then = future.then.bind(future);
|
|
33
|
+
future.then = (...args)=>{
|
|
34
|
+
if (shouldExec) {
|
|
35
|
+
shouldExec = false;
|
|
36
|
+
try {
|
|
37
|
+
// kind of bad
|
|
38
|
+
const result = executor(holder.resolve, holder.reject);
|
|
39
|
+
// ensure resolve/reject is called
|
|
40
|
+
if (isPromise(result)) {
|
|
41
|
+
result.then(holder.resolve, holder.reject);
|
|
42
|
+
} else if (result !== undefined) {
|
|
43
|
+
holder.resolve(result);
|
|
44
|
+
}
|
|
45
|
+
} catch (e) {
|
|
46
|
+
holder.reject(e);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return then(...args);
|
|
50
|
+
};
|
|
51
|
+
const like = holder;
|
|
52
|
+
like.then = future.then;
|
|
53
|
+
like.catch = future.catch.bind(future);
|
|
54
|
+
if (future.finally) like.finally = future.finally;
|
|
55
|
+
void Object.defineProperty(like, Symbol.species, {
|
|
56
|
+
get () {
|
|
57
|
+
return Promise;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
return like;
|
|
61
|
+
}
|
|
62
|
+
return future;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
//# sourceMappingURL=createLazyPromise.js.map
|
|
65
|
+
//# sourceMappingURL=createLazyPromise.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/asyncs/createLazyPromise.ts"],"sourcesContent":["import type { MaybePromise } from './MaybePromise';\nimport { isPromise } from './isPromise';\n\nexport type LazyPromise<T> = Promise<T> & {\n reject(reason?: any): void;\n resolve(v?: MaybePromise<T>): void;\n};\n\n/**\n * createLazyPromise return a promise that can be resolved or rejected manually.\n * if you pass a function to it, it will be executed when the promise try to resolve.\n */\nexport function createLazyPromise<T = any>(\n executor?:\n | ((resolve: LazyPromise<T>['resolve'], reject: LazyPromise<T>['reject']) => void)\n | ((resolve: LazyPromise<T>['resolve'], reject: LazyPromise<T>['reject']) => MaybePromise<T>),\n): 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 const future = 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 if (executor) {\n const r = holder.resolve;\n let shouldExec = true;\n holder.resolve = (v: any) => {\n shouldExec = false;\n r(v);\n };\n const then = future.then.bind(future);\n future.then = (...args) => {\n if (shouldExec) {\n shouldExec = false;\n try {\n // kind of bad\n const result = executor(holder.resolve, holder.reject);\n // ensure resolve/reject is called\n if (isPromise(result)) {\n result.then(holder.resolve, holder.reject);\n } else if (result !== undefined) {\n holder.resolve(result);\n }\n } catch (e) {\n holder.reject(e);\n }\n }\n return then(...args);\n };\n const like = holder as LazyPromise<T>;\n like.then = future.then;\n like.catch = future.catch.bind(future);\n if (future.finally) like.finally = future.finally;\n\n void Object.defineProperty(like, Symbol.species, {\n get() {\n return Promise;\n },\n });\n return like;\n }\n return future;\n}\n"],"names":["isPromise","createLazyPromise","executor","holder","resolve","_","Error","reject","future","Object","assign","Promise","v","r","shouldExec","then","bind","args","result","undefined","e","like","catch","finally","defineProperty","Symbol","species","get"],"mappings":"AACA,SAASA,SAAS,QAAQ,cAAc;AAOxC;;;CAGC,GACD,OAAO,SAASC,kBACdC,QAE+F;IAE/F,MAAMC,SAAS;QACbC,SAAQC,CAAM;YACZ,MAAM,IAAIC,MAAM;QAClB;QACAC,QAAOF,CAAM;YACX,MAAM,IAAIC,MAAM;QAClB;IACF;IACA,MAAME,SAASC,OAAOC,MAAM,CAC1B,IAAIC,QAAW,CAACP,SAASG;QACvBJ,OAAOI,MAAM,GAAGA;QAChBJ,OAAOC,OAAO,GAAGA;IACnB,IACA;QACEA,SAAQQ,CAAM;YACZT,OAAOC,OAAO,CAACQ;QACjB;QACAL,QAAOK,CAAM;YACXT,OAAOC,OAAO,CAACQ;QACjB;IACF;IAEF,IAAIV,UAAU;QACZ,MAAMW,IAAIV,OAAOC,OAAO;QACxB,IAAIU,aAAa;QACjBX,OAAOC,OAAO,GAAG,CAACQ;YAChBE,aAAa;YACbD,EAAED;QACJ;QACA,MAAMG,OAAOP,OAAOO,IAAI,CAACC,IAAI,CAACR;QAC9BA,OAAOO,IAAI,GAAG,CAAC,GAAGE;YAChB,IAAIH,YAAY;gBACdA,aAAa;gBACb,IAAI;oBACF,cAAc;oBACd,MAAMI,SAAShB,SAASC,OAAOC,OAAO,EAAED,OAAOI,MAAM;oBACrD,kCAAkC;oBAClC,IAAIP,UAAUkB,SAAS;wBACrBA,OAAOH,IAAI,CAACZ,OAAOC,OAAO,EAAED,OAAOI,MAAM;oBAC3C,OAAO,IAAIW,WAAWC,WAAW;wBAC/BhB,OAAOC,OAAO,CAACc;oBACjB;gBACF,EAAE,OAAOE,GAAG;oBACVjB,OAAOI,MAAM,CAACa;gBAChB;YACF;YACA,OAAOL,QAAQE;QACjB;QACA,MAAMI,OAAOlB;QACbkB,KAAKN,IAAI,GAAGP,OAAOO,IAAI;QACvBM,KAAKC,KAAK,GAAGd,OAAOc,KAAK,CAACN,IAAI,CAACR;QAC/B,IAAIA,OAAOe,OAAO,EAAEF,KAAKE,OAAO,GAAGf,OAAOe,OAAO;QAEjD,KAAKd,OAAOe,cAAc,CAACH,MAAMI,OAAOC,OAAO,EAAE;YAC/CC;gBACE,OAAOhB;YACT;QACF;QACA,OAAOU;IACT;IACA,OAAOb;AACT"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { isPromise } from './isPromise.js';
|
|
2
2
|
import { nextOfAsyncIterator } from './nextOfAsyncIterator.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return next[0];
|
|
3
|
+
export function firstOfAsyncIterator(it) {
|
|
4
|
+
const next = nextOfAsyncIterator(it);
|
|
5
|
+
if (isPromise(next)) {
|
|
6
|
+
return next.then((v)=>v[0]);
|
|
7
|
+
}
|
|
8
|
+
return next[0];
|
|
10
9
|
}
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
//# sourceMappingURL=firstOfAsyncIterator.js.map
|
|
11
|
+
//# sourceMappingURL=firstOfAsyncIterator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/asyncs/firstOfAsyncIterator.ts"],"sourcesContent":["import { MaybePromise } from './MaybePromise';\nimport { isPromise } from './isPromise';\nimport { nextOfAsyncIterator } from './nextOfAsyncIterator';\n\nexport function firstOfAsyncIterator<T>(it: MaybePromise<AsyncIterator<T> | Iterator<T> | T>): MaybePromise<T> {\n const next = nextOfAsyncIterator(it);\n if (isPromise(next)) {\n return next.then((v) => v[0]);\n }\n return next[0];\n}\n"],"names":["isPromise","nextOfAsyncIterator","firstOfAsyncIterator","it","next","then","v"],"mappings":"AACA,SAASA,SAAS,QAAQ,cAAc;AACxC,SAASC,mBAAmB,QAAQ,wBAAwB;AAE5D,OAAO,SAASC,qBAAwBC,EAAoD;IAC1F,MAAMC,OAAOH,oBAAoBE;IACjC,IAAIH,UAAUI,OAAO;QACnB,OAAOA,KAAKC,IAAI,CAAC,CAACC,IAAMA,CAAC,CAAC,EAAE;IAC9B;IACA,OAAOF,IAAI,CAAC,EAAE;AAChB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function* generatorOfStream(stream) {
|
|
2
|
+
let done = false;
|
|
3
|
+
stream.on('end', ()=>{
|
|
4
|
+
done = true;
|
|
5
|
+
});
|
|
6
|
+
// eslint-disable-next-line no-unmodified-loop-condition
|
|
7
|
+
while(!done){
|
|
8
|
+
yield new Promise((resolve, reject)=>{
|
|
9
|
+
stream.once('data', resolve);
|
|
10
|
+
stream.once('end', resolve);
|
|
11
|
+
stream.once('error', reject);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=generatorOfStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/asyncs/generatorOfStream.ts"],"sourcesContent":["export function* generatorOfStream<T = any>(stream: any): IterableIterator<Promise<T>> {\n let done = false;\n stream.on('end', () => {\n done = true;\n });\n // eslint-disable-next-line no-unmodified-loop-condition\n while (!done) {\n yield new Promise((resolve, reject) => {\n stream.once('data', resolve);\n stream.once('end', resolve);\n stream.once('error', reject);\n });\n }\n}\n"],"names":["generatorOfStream","stream","done","on","Promise","resolve","reject","once"],"mappings":"AAAA,OAAO,UAAUA,kBAA2BC,MAAW;IACrD,IAAIC,OAAO;IACXD,OAAOE,EAAE,CAAC,OAAO;QACfD,OAAO;IACT;IACA,wDAAwD;IACxD,MAAO,CAACA,KAAM;QACZ,MAAM,IAAIE,QAAQ,CAACC,SAASC;YAC1BL,OAAOM,IAAI,CAAC,QAAQF;YACpBJ,OAAOM,IAAI,CAAC,OAAOF;YACnBJ,OAAOM,IAAI,CAAC,SAASD;QACvB;IACF;AACF"}
|
package/lib/asyncs/isIterator.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
function isIterator(it) {
|
|
2
|
-
|
|
1
|
+
export function isIterator(it) {
|
|
2
|
+
return typeof it?.next === 'function';
|
|
3
3
|
}
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=isIterator.js.map
|
|
5
|
+
//# sourceMappingURL=isIterator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/asyncs/isIterator.ts"],"sourcesContent":["export function isIterator<T>(it: any): it is Iterator<T> | AsyncIterator<T> {\n return typeof it?.next === 'function';\n}\n"],"names":["isIterator","it","next"],"mappings":"AAAA,OAAO,SAASA,WAAcC,EAAO;IACnC,OAAO,OAAOA,IAAIC,SAAS;AAC7B"}
|
package/lib/asyncs/isPromise.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
function isPromise(v) {
|
|
2
|
-
|
|
1
|
+
export function isPromise(v) {
|
|
2
|
+
return v && (v instanceof Promise || v.then && v.catch);
|
|
3
3
|
}
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=isPromise.js.map
|
|
5
|
+
//# sourceMappingURL=isPromise.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/asyncs/isPromise.ts"],"sourcesContent":["export function isPromise<T>(v: any): v is Promise<T> {\n return v && (v instanceof Promise || (v.then && v.catch));\n}\n"],"names":["isPromise","v","Promise","then","catch"],"mappings":"AAAA,OAAO,SAASA,UAAaC,CAAM;IACjC,OAAOA,KAAMA,CAAAA,aAAaC,WAAYD,EAAEE,IAAI,IAAIF,EAAEG,KAAK;AACzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/asyncs/isThenable.ts"],"sourcesContent":["export function isThenable(v: any): v is PromiseLike<any> {\n // we are at Promise era now, so we can use Promise instead of PromiseLike\n return v && typeof v.then === 'function';\n}\n"],"names":["isThenable","v","then"],"mappings":"AAAA,OAAO,SAASA,WAAWC,CAAM;IAC/B,0EAA0E;IAC1E,OAAOA,KAAK,OAAOA,EAAEC,IAAI,KAAK;AAChC"}
|
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
import { isIterator } from './isIterator.js';
|
|
2
2
|
import { isPromise } from './isPromise.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
export function nextOfAsyncIterator(it) {
|
|
4
|
+
if (isPromise(it)) {
|
|
5
|
+
return it.then((v)=>nextOfAsyncIterator(v));
|
|
6
|
+
}
|
|
7
|
+
if (isIterator(it)) {
|
|
8
|
+
let next = it.next();
|
|
9
|
+
if (isPromise(next)) {
|
|
10
|
+
return next.then((v)=>[
|
|
11
|
+
v.value,
|
|
12
|
+
v.done
|
|
13
|
+
]);
|
|
14
|
+
}
|
|
15
|
+
return [
|
|
16
|
+
next.value,
|
|
17
|
+
next.done
|
|
18
|
+
];
|
|
12
19
|
}
|
|
13
|
-
return [
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
return [
|
|
21
|
+
it
|
|
22
|
+
];
|
|
16
23
|
}
|
|
17
24
|
|
|
18
|
-
|
|
19
|
-
//# sourceMappingURL=nextOfAsyncIterator.js.map
|
|
25
|
+
//# sourceMappingURL=nextOfAsyncIterator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/asyncs/nextOfAsyncIterator.ts"],"sourcesContent":["import { MaybePromise } from './MaybePromise';\nimport { isIterator } from './isIterator';\nimport { isPromise } from './isPromise';\n\nexport function nextOfAsyncIterator<T>(\n it: MaybePromise<AsyncIterator<T> | Iterator<T> | T>,\n): MaybePromise<[value: T, done?: boolean]> {\n if (isPromise(it)) {\n return it.then((v) => nextOfAsyncIterator(v));\n }\n if (isIterator(it)) {\n let next = it.next();\n if (isPromise(next)) {\n return next.then((v) => [v.value, v.done]);\n }\n return [next.value, next.done];\n }\n return [it];\n}\n"],"names":["isIterator","isPromise","nextOfAsyncIterator","it","then","v","next","value","done"],"mappings":"AACA,SAASA,UAAU,QAAQ,eAAe;AAC1C,SAASC,SAAS,QAAQ,cAAc;AAExC,OAAO,SAASC,oBACdC,EAAoD;IAEpD,IAAIF,UAAUE,KAAK;QACjB,OAAOA,GAAGC,IAAI,CAAC,CAACC,IAAMH,oBAAoBG;IAC5C;IACA,IAAIL,WAAWG,KAAK;QAClB,IAAIG,OAAOH,GAAGG,IAAI;QAClB,IAAIL,UAAUK,OAAO;YACnB,OAAOA,KAAKF,IAAI,CAAC,CAACC,IAAM;oBAACA,EAAEE,KAAK;oBAAEF,EAAEG,IAAI;iBAAC;QAC3C;QACA,OAAO;YAACF,KAAKC,KAAK;YAAED,KAAKE,IAAI;SAAC;IAChC;IACA,OAAO;QAACL;KAAG;AACb"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function promiseOfCallback(fun) {
|
|
2
|
+
return new Promise((resolve, reject)=>{
|
|
3
|
+
try {
|
|
4
|
+
fun((e, v)=>{
|
|
5
|
+
if (e) {
|
|
6
|
+
reject(e);
|
|
7
|
+
} else {
|
|
8
|
+
resolve(v);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
} catch (e) {
|
|
12
|
+
reject(e);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=promiseOfCallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/asyncs/promiseOfCallback.ts"],"sourcesContent":["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"],"names":["promiseOfCallback","fun","Promise","resolve","reject","e","v"],"mappings":"AAAA,OAAO,SAASA,kBAAqBC,GAA8C;IACjF,OAAO,IAAIC,QAAW,CAACC,SAASC;QAC9B,IAAI;YACFH,IAAI,CAACI,GAAQC;gBACX,IAAID,GAAG;oBACLD,OAAOC;gBACT,OAAO;oBACLF,QAAQG;gBACV;YACF;QACF,EAAE,OAAOD,GAAG;YACVD,OAAOC;QACT;IACF;AACF"}
|
package/lib/asyncs/sleep.js
CHANGED
package/lib/asyncs/sleep.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/asyncs/sleep.ts"],"sourcesContent":["export const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n"],"names":["sleep","ms","Promise","resolve","setTimeout"],"mappings":"AAAA,OAAO,MAAMA,QAAQ,CAACC,KAAe,IAAIC,QAAQ,CAACC,UAAYC,WAAWD,SAASF,KAAK"}
|