@adviser/cement 0.4.6 → 0.4.8
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/base-basic-sys-abstraction.test.d.ts +2 -0
- package/base-basic-sys-abstraction.test.d.ts.map +1 -0
- package/base-basic-sys-abstraction.test.js +88 -0
- package/base-basic-sys-abstraction.test.js.map +1 -0
- package/{base-sys-abstraction-h0dB3nZ5.d.ts → base-sys-abstraction.d.ts} +23 -22
- package/base-sys-abstraction.d.ts.map +1 -0
- package/base-sys-abstraction.js +193 -0
- package/base-sys-abstraction.js.map +1 -0
- package/bin2text.d.ts +3 -0
- package/bin2text.d.ts.map +1 -0
- package/bin2text.js +43 -0
- package/bin2text.js.map +1 -0
- package/bin2text.test.d.ts +2 -0
- package/bin2text.test.d.ts.map +1 -0
- package/bin2text.test.js +51 -0
- package/bin2text.test.js.map +1 -0
- package/cf/cf-basic-sys-abstraction.d.ts +14 -0
- package/cf/cf-basic-sys-abstraction.d.ts.map +1 -0
- package/cf/cf-basic-sys-abstraction.js +67 -0
- package/cf/cf-basic-sys-abstraction.js.map +1 -0
- package/cf/cf-env-actions.d.ts +16 -0
- package/cf/cf-env-actions.d.ts.map +1 -0
- package/cf/cf-env-actions.js +53 -0
- package/cf/cf-env-actions.js.map +1 -0
- package/cf/index.d.ts +3 -30
- package/cf/index.d.ts.map +1 -0
- package/cf/index.js +2 -11
- package/cf/index.js.map +1 -1
- package/cf-test-main.d.ts +5 -0
- package/cf-test-main.d.ts.map +1 -0
- package/cf-test-main.js +12 -0
- package/cf-test-main.js.map +1 -0
- package/coerce-binary.d.ts +6 -0
- package/coerce-binary.d.ts.map +1 -0
- package/coerce-binary.js +32 -0
- package/coerce-binary.js.map +1 -0
- package/coerce-binary.test.d.ts +2 -0
- package/coerce-binary.test.d.ts.map +1 -0
- package/coerce-binary.test.js +39 -0
- package/coerce-binary.test.js.map +1 -0
- package/crypto.d.ts +76 -0
- package/crypto.d.ts.map +1 -0
- package/crypto.js +22 -0
- package/crypto.js.map +1 -0
- package/crypto.test.d.ts +2 -0
- package/crypto.test.d.ts.map +1 -0
- package/crypto.test.js +21 -0
- package/crypto.test.js.map +1 -0
- package/deno/deno-basic-sys-abstraction.d.ts +14 -0
- package/deno/deno-basic-sys-abstraction.d.ts.map +1 -0
- package/deno/deno-basic-sys-abstraction.js +35 -0
- package/deno/deno-basic-sys-abstraction.js.map +1 -0
- package/deno/deno-env-actions.d.ts +23 -0
- package/deno/deno-env-actions.d.ts.map +1 -0
- package/deno/deno-env-actions.js +40 -0
- package/deno/deno-env-actions.js.map +1 -0
- package/deno/deno-file-service.d.ts +17 -0
- package/deno/deno-file-service.d.ts.map +1 -0
- package/deno/deno-file-service.js +67 -0
- package/deno/deno-file-service.js.map +1 -0
- package/deno/deno-sys-abstraction.d.ts +19 -0
- package/deno/deno-sys-abstraction.d.ts.map +1 -0
- package/deno/deno-sys-abstraction.js +96 -0
- package/deno/deno-sys-abstraction.js.map +1 -0
- package/deno/index.d.ts +3 -37
- package/deno/index.d.ts.map +1 -0
- package/deno/index.js +2 -179
- package/deno/index.js.map +1 -1
- package/file-service.d.ts +17 -0
- package/file-service.d.ts.map +1 -0
- package/file-service.js +2 -0
- package/file-service.js.map +1 -0
- package/future.d.ts +8 -0
- package/future.d.ts.map +1 -0
- package/future.js +25 -0
- package/future.js.map +1 -0
- package/future.test.d.ts +2 -0
- package/future.test.d.ts.map +1 -0
- package/future.test.js +32 -0
- package/future.test.js.map +1 -0
- package/http_header.d.ts +29 -0
- package/http_header.d.ts.map +1 -0
- package/http_header.js +157 -0
- package/http_header.js.map +1 -0
- package/http_header.test.d.ts +2 -0
- package/http_header.test.d.ts.map +1 -0
- package/http_header.test.js +96 -0
- package/http_header.test.js.map +1 -0
- package/index.d.ts +29 -396
- package/index.d.ts.map +1 -0
- package/index.js +28 -609
- package/index.js.map +1 -1
- package/is-promise.d.ts +4 -0
- package/is-promise.d.ts.map +1 -0
- package/is-promise.js +10 -0
- package/is-promise.js.map +1 -0
- package/is-promise.test.d.ts +2 -0
- package/is-promise.test.d.ts.map +1 -0
- package/is-promise.test.js +48 -0
- package/is-promise.test.js.map +1 -0
- package/json-en-decoder.d.ts +12 -0
- package/json-en-decoder.d.ts.map +1 -0
- package/json-en-decoder.js +42 -0
- package/json-en-decoder.js.map +1 -0
- package/json-en-decoder.test.d.ts +2 -0
- package/json-en-decoder.test.d.ts.map +1 -0
- package/json-en-decoder.test.js +18 -0
- package/json-en-decoder.test.js.map +1 -0
- package/log-level-impl.d.ts +17 -0
- package/log-level-impl.d.ts.map +1 -0
- package/log-level-impl.js +75 -0
- package/log-level-impl.js.map +1 -0
- package/log-writer-impl.d.ts +11 -0
- package/log-writer-impl.d.ts.map +1 -0
- package/log-writer-impl.js +52 -0
- package/log-writer-impl.js.map +1 -0
- package/logger-impl.d.ts +75 -0
- package/logger-impl.d.ts.map +1 -0
- package/logger-impl.js +505 -0
- package/logger-impl.js.map +1 -0
- package/logger.d.ts +97 -0
- package/logger.d.ts.map +1 -0
- package/logger.js +150 -0
- package/logger.js.map +1 -0
- package/logger.test.d.ts +2 -0
- package/logger.test.d.ts.map +1 -0
- package/logger.test.js +1577 -0
- package/logger.test.js.map +1 -0
- package/lru-map-set.d.ts +33 -0
- package/lru-map-set.d.ts.map +1 -0
- package/lru-map-set.js +116 -0
- package/lru-map-set.js.map +1 -0
- package/lru-map-set.test.d.ts +2 -0
- package/lru-map-set.test.d.ts.map +1 -0
- package/lru-map-set.test.js +81 -0
- package/lru-map-set.test.js.map +1 -0
- package/node/index.d.ts +4 -45
- package/node/index.d.ts.map +1 -0
- package/node/index.js +3 -222
- package/node/index.js.map +1 -1
- package/node/mock-file-service.d.ts +11 -0
- package/node/mock-file-service.d.ts.map +1 -0
- package/node/mock-file-service.js +31 -0
- package/node/mock-file-service.js.map +1 -0
- package/node/mock-file-service.test.d.ts +2 -0
- package/node/mock-file-service.test.d.ts.map +1 -0
- package/node/mock-file-service.test.js +31 -0
- package/node/mock-file-service.test.js.map +1 -0
- package/node/node-basic-sys-abstraction.d.ts +25 -0
- package/node/node-basic-sys-abstraction.d.ts.map +1 -0
- package/node/node-basic-sys-abstraction.js +45 -0
- package/node/node-basic-sys-abstraction.js.map +1 -0
- package/node/node-env-actions.d.ts +15 -0
- package/node/node-env-actions.d.ts.map +1 -0
- package/node/node-env-actions.js +38 -0
- package/node/node-env-actions.js.map +1 -0
- package/node/node-file-service.d.ts +16 -0
- package/node/node-file-service.d.ts.map +1 -0
- package/node/node-file-service.js +72 -0
- package/node/node-file-service.js.map +1 -0
- package/node/node-sys-abstraction.d.ts +19 -0
- package/node/node-sys-abstraction.d.ts.map +1 -0
- package/node/node-sys-abstraction.js +95 -0
- package/node/node-sys-abstraction.js.map +1 -0
- package/node/node-sys-abstraction.test.d.ts +2 -0
- package/node/node-sys-abstraction.test.d.ts.map +1 -0
- package/node/node-sys-abstraction.test.js +83 -0
- package/node/node-sys-abstraction.test.js.map +1 -0
- package/option.d.ts +26 -0
- package/option.d.ts.map +1 -0
- package/option.js +54 -0
- package/option.js.map +1 -0
- package/package.json +4 -10
- package/path-ops.d.ts +7 -0
- package/path-ops.d.ts.map +1 -0
- package/path-ops.js +35 -0
- package/path-ops.js.map +1 -0
- package/path-ops.test.d.ts +2 -0
- package/path-ops.test.d.ts.map +1 -0
- package/path-ops.test.js +39 -0
- package/path-ops.test.js.map +1 -0
- package/resolve-once.d.ts +59 -0
- package/resolve-once.d.ts.map +1 -0
- package/resolve-once.js +212 -0
- package/resolve-once.js.map +1 -0
- package/resolve-once.test.d.ts +2 -0
- package/resolve-once.test.d.ts.map +1 -0
- package/resolve-once.test.js +392 -0
- package/resolve-once.test.js.map +1 -0
- package/result.d.ts +34 -0
- package/result.d.ts.map +1 -0
- package/result.js +94 -0
- package/result.js.map +1 -0
- package/result.test.d.ts +2 -0
- package/result.test.d.ts.map +1 -0
- package/result.test.js +83 -0
- package/result.test.js.map +1 -0
- package/runtime.d.ts +9 -0
- package/runtime.d.ts.map +1 -0
- package/runtime.js +33 -0
- package/runtime.js.map +1 -0
- package/src/jsr.json +1 -1
- package/src/uri.ts +66 -37
- package/sys-abstraction.d.ts +43 -0
- package/sys-abstraction.d.ts.map +1 -0
- package/sys-abstraction.js +28 -0
- package/sys-abstraction.js.map +1 -0
- package/sys-env.d.ts +46 -0
- package/sys-env.d.ts.map +1 -0
- package/sys-env.js +161 -0
- package/sys-env.js.map +1 -0
- package/sys-env.test.d.ts +2 -0
- package/sys-env.test.d.ts.map +1 -0
- package/sys-env.test.js +170 -0
- package/sys-env.test.js.map +1 -0
- package/test/index.d.ts +3 -4
- package/test/index.d.ts.map +1 -0
- package/test/index.js +2 -13
- package/test/index.js.map +1 -1
- package/test/log-write-stream.d.ts +27 -0
- package/test/log-write-stream.d.ts.map +1 -0
- package/test/log-write-stream.js +78 -0
- package/test/log-write-stream.js.map +1 -0
- package/test/mock-logger.d.ts +14 -0
- package/test/mock-logger.d.ts.map +1 -0
- package/test/mock-logger.js +29 -0
- package/test/mock-logger.js.map +1 -0
- package/test/mock-logger.test.d.ts +2 -0
- package/test/mock-logger.test.d.ts.map +1 -0
- package/test/mock-logger.test.js +63 -0
- package/test/mock-logger.test.js.map +1 -0
- package/test/test-exit-handler.d.ts +2 -0
- package/test/test-exit-handler.d.ts.map +1 -0
- package/test/test-exit-handler.js +61 -0
- package/test/test-exit-handler.js.map +1 -0
- package/time.d.ts +14 -0
- package/time.d.ts.map +1 -0
- package/time.js +13 -0
- package/time.js.map +1 -0
- package/tracer.d.ts +59 -0
- package/tracer.d.ts.map +1 -0
- package/tracer.js +174 -0
- package/tracer.js.map +1 -0
- package/tracer.test.d.ts +2 -0
- package/tracer.test.d.ts.map +1 -0
- package/tracer.test.js +304 -0
- package/tracer.test.js.map +1 -0
- package/ts/smoke/smoke.js +1 -1
- package/ts/smoke/smoke.js.map +1 -1
- package/ts/src/base-sys-abstraction.js +20 -8
- package/ts/src/base-sys-abstraction.js.map +1 -1
- package/ts/src/cf/cf-basic-sys-abstraction.js +3 -3
- package/ts/src/cf/cf-basic-sys-abstraction.js.map +1 -1
- package/ts/src/cf/cf-env-actions.js +3 -1
- package/ts/src/cf/cf-env-actions.js.map +1 -1
- package/ts/src/coerce-binary.js +1 -1
- package/ts/src/coerce-binary.js.map +1 -1
- package/ts/src/deno/deno-basic-sys-abstraction.js +3 -3
- package/ts/src/deno/deno-basic-sys-abstraction.js.map +1 -1
- package/ts/src/deno/deno-env-actions.js +3 -9
- package/ts/src/deno/deno-env-actions.js.map +1 -1
- package/ts/src/deno/deno-file-service.js +2 -0
- package/ts/src/deno/deno-file-service.js.map +1 -1
- package/ts/src/deno/deno-sys-abstraction.js +21 -21
- package/ts/src/deno/deno-sys-abstraction.js.map +1 -1
- package/ts/src/future.js +13 -26
- package/ts/src/future.js.map +1 -1
- package/ts/src/http_header.js +2 -3
- package/ts/src/http_header.js.map +1 -1
- package/ts/src/json-en-decoder.js +3 -2
- package/ts/src/json-en-decoder.js.map +1 -1
- package/ts/src/log-level-impl.js +4 -6
- package/ts/src/log-level-impl.js.map +1 -1
- package/ts/src/log-writer-impl.js +9 -5
- package/ts/src/log-writer-impl.js.map +1 -1
- package/ts/src/logger-impl.js +15 -5
- package/ts/src/logger-impl.js.map +1 -1
- package/ts/src/logger.js +3 -3
- package/ts/src/logger.js.map +1 -1
- package/ts/src/logger.test.js +7 -19
- package/ts/src/logger.test.js.map +1 -1
- package/ts/src/lru-map-set.js +3 -1
- package/ts/src/lru-map-set.js.map +1 -1
- package/ts/src/node/mock-file-service.js +1 -4
- package/ts/src/node/mock-file-service.js.map +1 -1
- package/ts/src/node/node-basic-sys-abstraction.js +4 -3
- package/ts/src/node/node-basic-sys-abstraction.js.map +1 -1
- package/ts/src/node/node-env-actions.js +3 -9
- package/ts/src/node/node-env-actions.js.map +1 -1
- package/ts/src/node/node-file-service.js +1 -0
- package/ts/src/node/node-file-service.js.map +1 -1
- package/ts/src/node/node-sys-abstraction.js +21 -21
- package/ts/src/node/node-sys-abstraction.js.map +1 -1
- package/ts/src/option.js +1 -0
- package/ts/src/option.js.map +1 -1
- package/ts/src/path-ops.js +21 -30
- package/ts/src/path-ops.js.map +1 -1
- package/ts/src/resolve-once.js +17 -13
- package/ts/src/resolve-once.js.map +1 -1
- package/ts/src/result.js +2 -0
- package/ts/src/result.js.map +1 -1
- package/ts/src/sys-abstraction.js +1 -1
- package/ts/src/sys-abstraction.js.map +1 -1
- package/ts/src/sys-env.js +2 -1
- package/ts/src/sys-env.js.map +1 -1
- package/ts/src/sys-env.test.js +6 -19
- package/ts/src/sys-env.test.js.map +1 -1
- package/ts/src/test/log-write-stream.js +10 -6
- package/ts/src/test/log-write-stream.js.map +1 -1
- package/ts/src/test/mock-logger.js +6 -6
- package/ts/src/test/mock-logger.js.map +1 -1
- package/ts/src/test/test-exit-handler.js +1 -2
- package/ts/src/test/test-exit-handler.js.map +1 -1
- package/ts/src/tracer.js +10 -3
- package/ts/src/tracer.js.map +1 -1
- package/ts/src/tracer.test.js +5 -9
- package/ts/src/tracer.test.js.map +1 -1
- package/ts/src/txt-en-decoder.js +2 -4
- package/ts/src/txt-en-decoder.js.map +1 -1
- package/ts/src/types.js +2 -6
- package/ts/src/types.js.map +1 -1
- package/ts/src/uri.d.ts +5 -0
- package/ts/src/uri.d.ts.map +1 -1
- package/ts/src/uri.js +57 -34
- package/ts/src/uri.js.map +1 -1
- package/ts/src/uri.test.js +47 -0
- package/ts/src/uri.test.js.map +1 -1
- package/ts/src/utils/console-write-stream.js +8 -5
- package/ts/src/utils/console-write-stream.js.map +1 -1
- package/ts/src/utils/fanout-write-stream.js +4 -1
- package/ts/src/utils/fanout-write-stream.js.map +1 -1
- package/ts/src/utils/rebuffer.test.js +1 -1
- package/ts/src/utils/rebuffer.test.js.map +1 -1
- package/ts/src/utils/relative-path.js +1 -0
- package/ts/src/utils/relative-path.js.map +1 -1
- package/ts/src/utils/stream-map.test.js +1 -1
- package/ts/src/utils/stream-map.test.js.map +1 -1
- package/ts/src/web/web-basic-sys-abstraction.js +3 -3
- package/ts/src/web/web-basic-sys-abstraction.js.map +1 -1
- package/ts/src/web/web-env-actions.js +2 -1
- package/ts/src/web/web-env-actions.js.map +1 -1
- package/txt-en-decoder.d.ts +11 -0
- package/txt-en-decoder.d.ts.map +1 -0
- package/txt-en-decoder.js +37 -0
- package/txt-en-decoder.js.map +1 -0
- package/txt-en-decoder.test.d.ts +2 -0
- package/txt-en-decoder.test.d.ts.map +1 -0
- package/txt-en-decoder.test.js +48 -0
- package/txt-en-decoder.test.js.map +1 -0
- package/types.d.ts +16 -0
- package/types.d.ts.map +1 -0
- package/types.js +11 -0
- package/types.js.map +1 -0
- package/uri.d.ts +137 -0
- package/uri.d.ts.map +1 -0
- package/uri.js +567 -0
- package/uri.js.map +1 -0
- package/uri.test.d.ts +2 -0
- package/uri.test.d.ts.map +1 -0
- package/uri.test.js +633 -0
- package/uri.test.js.map +1 -0
- package/utils/coerce-uint8.d.ts +8 -0
- package/utils/coerce-uint8.d.ts.map +1 -0
- package/utils/coerce-uint8.js +34 -0
- package/utils/coerce-uint8.js.map +1 -0
- package/utils/console-write-stream.d.ts +21 -0
- package/utils/console-write-stream.d.ts.map +1 -0
- package/utils/console-write-stream.js +66 -0
- package/utils/console-write-stream.js.map +1 -0
- package/utils/fanout-write-stream.d.ts +12 -0
- package/utils/fanout-write-stream.d.ts.map +1 -0
- package/utils/fanout-write-stream.js +27 -0
- package/utils/fanout-write-stream.js.map +1 -0
- package/utils/get-params-result.d.ts +8 -0
- package/utils/get-params-result.d.ts.map +1 -0
- package/utils/get-params-result.js +45 -0
- package/utils/get-params-result.js.map +1 -0
- package/utils/index.d.ts +12 -3
- package/utils/index.d.ts.map +1 -0
- package/utils/index.js +11 -50
- package/utils/index.js.map +1 -1
- package/utils/rebuffer.d.ts +3 -0
- package/utils/rebuffer.d.ts.map +1 -0
- package/utils/rebuffer.js +66 -0
- package/utils/rebuffer.js.map +1 -0
- package/utils/rebuffer.test.d.ts +2 -0
- package/utils/rebuffer.test.d.ts.map +1 -0
- package/utils/rebuffer.test.js +77 -0
- package/utils/rebuffer.test.js.map +1 -0
- package/utils/relative-path.d.ts +18 -0
- package/utils/relative-path.d.ts.map +1 -0
- package/utils/relative-path.js +148 -0
- package/utils/relative-path.js.map +1 -0
- package/utils/relative-path.test.d.ts +2 -0
- package/utils/relative-path.test.d.ts.map +1 -0
- package/utils/relative-path.test.js +187 -0
- package/utils/relative-path.test.js.map +1 -0
- package/utils/sorted-objec.test.d.ts +2 -0
- package/utils/sorted-objec.test.d.ts.map +1 -0
- package/utils/sorted-objec.test.js +20 -0
- package/utils/sorted-objec.test.js.map +1 -0
- package/utils/sorted-object.d.ts +4 -0
- package/utils/sorted-object.d.ts.map +1 -0
- package/utils/sorted-object.js +16 -0
- package/utils/sorted-object.js.map +1 -0
- package/utils/stream-map.d.ts +9 -0
- package/utils/stream-map.d.ts.map +1 -0
- package/utils/stream-map.js +63 -0
- package/utils/stream-map.js.map +1 -0
- package/utils/stream-map.test.d.ts +2 -0
- package/utils/stream-map.test.d.ts.map +1 -0
- package/utils/stream-map.test.js +87 -0
- package/utils/stream-map.test.js.map +1 -0
- package/utils/stream-test-helper.d.ts +17 -0
- package/utils/stream-test-helper.d.ts.map +1 -0
- package/utils/stream-test-helper.js +45 -0
- package/utils/stream-test-helper.js.map +1 -0
- package/utils/stream2string.d.ts +3 -0
- package/utils/stream2string.d.ts.map +1 -0
- package/utils/stream2string.js +48 -0
- package/utils/stream2string.js.map +1 -0
- package/utils/stream2string.test.d.ts +2 -0
- package/utils/stream2string.test.d.ts.map +1 -0
- package/utils/stream2string.test.js +29 -0
- package/utils/stream2string.test.js.map +1 -0
- package/utils/string2stream.d.ts +4 -0
- package/utils/string2stream.d.ts.map +1 -0
- package/utils/string2stream.js +13 -0
- package/utils/string2stream.js.map +1 -0
- package/utils/string2stream.test.d.ts +2 -0
- package/utils/string2stream.test.d.ts.map +1 -0
- package/utils/string2stream.test.js +6 -0
- package/utils/string2stream.test.js.map +1 -0
- package/utils/stripper.d.ts +3 -0
- package/utils/stripper.d.ts.map +1 -0
- package/utils/stripper.js +59 -0
- package/utils/stripper.js.map +1 -0
- package/utils/stripper.test.d.ts +2 -0
- package/utils/stripper.test.d.ts.map +1 -0
- package/utils/stripper.test.js +128 -0
- package/utils/stripper.test.js.map +1 -0
- package/utils/uint8array-equal.d.ts +2 -0
- package/utils/uint8array-equal.d.ts.map +1 -0
- package/utils/uint8array-equal.js +12 -0
- package/utils/uint8array-equal.js.map +1 -0
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +4 -0
- package/version.js.map +1 -0
- package/web/index.d.ts +2 -7
- package/web/index.d.ts.map +1 -0
- package/web/index.js +1 -7
- package/web/index.js.map +1 -1
- package/web/web-basic-sys-abstraction.d.ts +4 -0
- package/web/web-basic-sys-abstraction.d.ts.map +1 -0
- package/web/web-basic-sys-abstraction.js +45 -0
- package/web/web-basic-sys-abstraction.js.map +1 -0
- package/web/web-env-actions.d.ts +14 -0
- package/web/web-env-actions.d.ts.map +1 -0
- package/web/web-env-actions.js +36 -0
- package/web/web-env-actions.js.map +1 -0
- package/base-sys-abstraction-DgTynXGV.d.cts +0 -95
- package/cf/index.cjs +0 -1110
- package/cf/index.cjs.map +0 -1
- package/cf/index.d.cts +0 -30
- package/chunk-FOALXQST.js +0 -89
- package/chunk-FOALXQST.js.map +0 -1
- package/chunk-FURW5CDL.js +0 -792
- package/chunk-FURW5CDL.js.map +0 -1
- package/chunk-NJMNJYN2.js +0 -270
- package/chunk-NJMNJYN2.js.map +0 -1
- package/chunk-NTOGMD33.js +0 -684
- package/chunk-NTOGMD33.js.map +0 -1
- package/chunk-O3CWMM7E.js +0 -1678
- package/chunk-O3CWMM7E.js.map +0 -1
- package/deno/index.cjs +0 -1280
- package/deno/index.cjs.map +0 -1
- package/deno/index.d.cts +0 -37
- package/get-params-result-4xHM5s4_.d.cts +0 -71
- package/get-params-result-4xHM5s4_.d.ts +0 -71
- package/index-CMLb7JSe.d.ts +0 -97
- package/index-DL2hPDP5.d.cts +0 -296
- package/index-DTF3tq6t.d.ts +0 -296
- package/index-LQOsS7gM.d.cts +0 -97
- package/index.cjs +0 -4006
- package/index.cjs.map +0 -1
- package/index.d.cts +0 -396
- package/metafile-cjs.json +0 -1
- package/metafile-esm.json +0 -1
- package/node/index.cjs +0 -1335
- package/node/index.cjs.map +0 -1
- package/node/index.d.cts +0 -45
- package/stripper-BpBUUZ9p.d.cts +0 -4
- package/stripper-BpBUUZ9p.d.ts +0 -4
- package/sys-abstraction-CeAxxg9H.d.ts +0 -117
- package/sys-abstraction-DDAwGTnk.d.cts +0 -117
- package/test/index.cjs +0 -2991
- package/test/index.cjs.map +0 -1
- package/test/index.d.cts +0 -4
- package/utils/index.cjs +0 -778
- package/utils/index.cjs.map +0 -1
- package/utils/index.d.cts +0 -3
- package/web/index.cjs +0 -1153
- package/web/index.cjs.map +0 -1
- package/web/index.d.cts +0 -7
@@ -0,0 +1,392 @@
|
|
1
|
+
import { Result, KeyedResolvOnce, ResolveOnce, ResolveSeq } from "@adviser/cement";
|
2
|
+
describe("resolve-once", () => {
|
3
|
+
it("sequence", async () => {
|
4
|
+
const once = new ResolveOnce();
|
5
|
+
const reallyOnce = vi.fn(async () => {
|
6
|
+
return new Promise((resolve) => {
|
7
|
+
setTimeout(() => {
|
8
|
+
resolve(42);
|
9
|
+
}, 100);
|
10
|
+
});
|
11
|
+
});
|
12
|
+
const start = Date.now();
|
13
|
+
const fn = () => once.once(async () => reallyOnce());
|
14
|
+
expect(reallyOnce).toHaveBeenCalledTimes(0);
|
15
|
+
expect(await fn()).toBe(42);
|
16
|
+
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
17
|
+
expect(await fn()).toBe(42);
|
18
|
+
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
19
|
+
expect(await fn()).toBe(42);
|
20
|
+
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
21
|
+
const diff = Date.now() - start;
|
22
|
+
expect(diff).toBeGreaterThanOrEqual(99);
|
23
|
+
expect(diff).toBeLessThan(150);
|
24
|
+
});
|
25
|
+
it("parallel", async () => {
|
26
|
+
const once = new ResolveOnce();
|
27
|
+
const reallyOnce = vi.fn(async () => {
|
28
|
+
return new Promise((resolve) => {
|
29
|
+
setTimeout(() => {
|
30
|
+
resolve(42);
|
31
|
+
}, 100);
|
32
|
+
});
|
33
|
+
});
|
34
|
+
const fn = () => once.once(async () => reallyOnce());
|
35
|
+
const start = Date.now();
|
36
|
+
expect(await Promise.all(Array(100)
|
37
|
+
.fill(fn)
|
38
|
+
.map((fn) => fn()))).toEqual(Array(100).fill(42));
|
39
|
+
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
40
|
+
const diff = Date.now() - start;
|
41
|
+
expect(diff).toBeGreaterThanOrEqual(99);
|
42
|
+
expect(diff).toBeLessThan(150);
|
43
|
+
});
|
44
|
+
it("works with void", async () => {
|
45
|
+
const once = new ResolveOnce();
|
46
|
+
const reallyOnce = vi.fn(async () => {
|
47
|
+
return new Promise((resolve) => {
|
48
|
+
setTimeout(() => {
|
49
|
+
resolve();
|
50
|
+
}, 100);
|
51
|
+
});
|
52
|
+
});
|
53
|
+
const fn = () => once.once(async () => reallyOnce());
|
54
|
+
const start = Date.now();
|
55
|
+
expect(await Promise.all(Array(100)
|
56
|
+
.fill(fn)
|
57
|
+
.map((fn) => fn()))).toEqual(Array(100).fill(undefined));
|
58
|
+
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
59
|
+
const diff = Date.now() - start;
|
60
|
+
expect(diff).toBeGreaterThanOrEqual(99);
|
61
|
+
expect(diff).toBeLessThan(150);
|
62
|
+
});
|
63
|
+
it("throws", async () => {
|
64
|
+
const once = new ResolveOnce();
|
65
|
+
const reallyOnce = vi.fn(async () => {
|
66
|
+
return new Promise((rs, rj) => {
|
67
|
+
setTimeout(() => {
|
68
|
+
rj(new Error("nope"));
|
69
|
+
}, 100);
|
70
|
+
});
|
71
|
+
});
|
72
|
+
const fn = () => once.once(async () => reallyOnce());
|
73
|
+
const start = Date.now();
|
74
|
+
await new Promise((rs) => {
|
75
|
+
for (let i = 0; i < 100; i++) {
|
76
|
+
fn()
|
77
|
+
.then(() => {
|
78
|
+
assert.fail("should not happen");
|
79
|
+
})
|
80
|
+
.catch((e) => {
|
81
|
+
expect(e).toEqual(new Error("nope"));
|
82
|
+
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
83
|
+
if (i === 99) {
|
84
|
+
rs(undefined);
|
85
|
+
}
|
86
|
+
});
|
87
|
+
}
|
88
|
+
});
|
89
|
+
const diff = Date.now() - start;
|
90
|
+
expect(diff).toBeGreaterThanOrEqual(99);
|
91
|
+
expect(diff).toBeLessThan(250);
|
92
|
+
});
|
93
|
+
it("preserves order", async () => {
|
94
|
+
const once = new ResolveOnce();
|
95
|
+
const reallyOnce = vi.fn(async () => {
|
96
|
+
return new Promise((resolve) => {
|
97
|
+
setTimeout(() => {
|
98
|
+
resolve(42);
|
99
|
+
}, 100);
|
100
|
+
});
|
101
|
+
});
|
102
|
+
let order = 0;
|
103
|
+
const fn = async () => {
|
104
|
+
const o = order++;
|
105
|
+
const ret = await once.once(async () => reallyOnce());
|
106
|
+
return `${o}:${ret}`;
|
107
|
+
};
|
108
|
+
const start = Date.now();
|
109
|
+
expect(await Promise.all(Array(100)
|
110
|
+
.fill(fn)
|
111
|
+
.map((fn) => fn()))).toEqual(Array(100)
|
112
|
+
.fill(undefined)
|
113
|
+
.map((_, i) => `${i}:42`));
|
114
|
+
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
115
|
+
const diff = Date.now() - start;
|
116
|
+
expect(diff).toBeGreaterThanOrEqual(99);
|
117
|
+
expect(diff).toBeLessThan(150);
|
118
|
+
});
|
119
|
+
it("preserves call order to resolv order", async () => {
|
120
|
+
const once = new ResolveOnce();
|
121
|
+
const reallyOnce = vi.fn(async () => {
|
122
|
+
return new Promise((resolve) => {
|
123
|
+
setTimeout(() => {
|
124
|
+
resolve(42);
|
125
|
+
}, 100);
|
126
|
+
});
|
127
|
+
});
|
128
|
+
const start = Date.now();
|
129
|
+
const orderFn = vi.fn();
|
130
|
+
const fns = Array(100)
|
131
|
+
.fill(0)
|
132
|
+
.map((_, i) => {
|
133
|
+
return once
|
134
|
+
.once(() => reallyOnce())
|
135
|
+
.then((once) => {
|
136
|
+
orderFn(i, once);
|
137
|
+
return `${i}:${once}`;
|
138
|
+
});
|
139
|
+
});
|
140
|
+
expect(await Promise.all(fns)).toEqual(Array(100)
|
141
|
+
.fill(undefined)
|
142
|
+
.map((_, i) => `${i}:42`));
|
143
|
+
expect(reallyOnce).toHaveBeenCalledTimes(1);
|
144
|
+
const diff = Date.now() - start;
|
145
|
+
expect(diff).toBeGreaterThanOrEqual(99);
|
146
|
+
expect(diff).toBeLessThan(150);
|
147
|
+
expect(orderFn).toHaveBeenCalledTimes(100);
|
148
|
+
expect(orderFn.mock.calls.map(([i]) => i)).toEqual(Array(100)
|
149
|
+
.fill(0)
|
150
|
+
.map((_, i) => i));
|
151
|
+
});
|
152
|
+
it("reset", async () => {
|
153
|
+
const once = new ResolveOnce();
|
154
|
+
const orderFn = vi.fn(() => Promise.resolve(42));
|
155
|
+
await once.once(orderFn);
|
156
|
+
await once.once(orderFn);
|
157
|
+
await once.once(orderFn);
|
158
|
+
once.reset();
|
159
|
+
await once.once(orderFn);
|
160
|
+
await once.once(orderFn);
|
161
|
+
once.reset();
|
162
|
+
await once.once(orderFn);
|
163
|
+
await once.once(orderFn);
|
164
|
+
once.reset();
|
165
|
+
expect(orderFn).toHaveBeenCalledTimes(3);
|
166
|
+
});
|
167
|
+
it("keyed", async () => {
|
168
|
+
const keyed = new KeyedResolvOnce();
|
169
|
+
const a_orderFn = vi.fn(() => Promise.resolve(42));
|
170
|
+
const b_orderFn = vi.fn(() => Promise.resolve(42));
|
171
|
+
for (let i = 0; i < 5; i++) {
|
172
|
+
await keyed.get("a").once(a_orderFn);
|
173
|
+
await keyed.get(() => "a").once(a_orderFn);
|
174
|
+
await keyed.get("b").once(b_orderFn);
|
175
|
+
await keyed.get(() => "b").once(b_orderFn);
|
176
|
+
expect(a_orderFn).toHaveBeenCalledTimes(i + 1);
|
177
|
+
expect(b_orderFn).toHaveBeenCalledTimes(i + 1);
|
178
|
+
keyed.reset();
|
179
|
+
}
|
180
|
+
});
|
181
|
+
it("keyed with pass ctx", async () => {
|
182
|
+
const keyed = new KeyedResolvOnce();
|
183
|
+
const a_orderFn = vi.fn((key) => Promise.resolve(key));
|
184
|
+
const b_orderFn = vi.fn((key) => Promise.resolve(key));
|
185
|
+
await Promise.all([
|
186
|
+
keyed.get("a").once(a_orderFn),
|
187
|
+
keyed.get(() => "a").once(a_orderFn),
|
188
|
+
keyed.get("b").once(b_orderFn),
|
189
|
+
keyed.get(() => "b").once(b_orderFn),
|
190
|
+
]);
|
191
|
+
expect(a_orderFn).toHaveBeenCalledTimes(1);
|
192
|
+
expect(a_orderFn).toHaveBeenCalledWith("a");
|
193
|
+
expect(b_orderFn).toHaveBeenCalledTimes(1);
|
194
|
+
expect(b_orderFn).toHaveBeenCalledWith("b");
|
195
|
+
});
|
196
|
+
it("keyed asyncGet", async () => {
|
197
|
+
const keyed = new KeyedResolvOnce();
|
198
|
+
const a_orderFn = vi.fn((key) => Promise.resolve(key));
|
199
|
+
const b_orderFn = vi.fn((key) => Promise.resolve(key));
|
200
|
+
await Promise.all([
|
201
|
+
keyed
|
202
|
+
.asyncGet(async () => {
|
203
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
204
|
+
return "a";
|
205
|
+
})
|
206
|
+
.then((resolveOnce) => resolveOnce.once(a_orderFn)),
|
207
|
+
keyed
|
208
|
+
.asyncGet(async () => {
|
209
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
210
|
+
return "b";
|
211
|
+
})
|
212
|
+
.then((resolveOnce) => resolveOnce.once(b_orderFn)),
|
213
|
+
]);
|
214
|
+
expect(a_orderFn).toHaveBeenCalledTimes(1);
|
215
|
+
expect(a_orderFn).toHaveBeenCalledWith("a");
|
216
|
+
expect(b_orderFn).toHaveBeenCalledTimes(1);
|
217
|
+
expect(b_orderFn).toHaveBeenCalledWith("b");
|
218
|
+
});
|
219
|
+
function shuffle(array) {
|
220
|
+
let currentIndex = array.length;
|
221
|
+
while (currentIndex != 0) {
|
222
|
+
const randomIndex = Math.floor(Math.random() * currentIndex);
|
223
|
+
currentIndex--;
|
224
|
+
[array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]];
|
225
|
+
}
|
226
|
+
return array;
|
227
|
+
}
|
228
|
+
it("ResolveSeq", async () => {
|
229
|
+
const seq = new ResolveSeq();
|
230
|
+
let enter = 0;
|
231
|
+
let leave = 0;
|
232
|
+
const actions = Array(10)
|
233
|
+
.fill(0)
|
234
|
+
.map((_, i) => {
|
235
|
+
return seq.add(async () => {
|
236
|
+
expect(enter++).toBe(i);
|
237
|
+
await new Promise((resolve) => setTimeout(resolve, i * 3));
|
238
|
+
await new Promise((resolve) => setTimeout(resolve, i * 2));
|
239
|
+
expect(leave++).toBe(i);
|
240
|
+
expect(leave).toBe(enter);
|
241
|
+
return i;
|
242
|
+
}, i);
|
243
|
+
});
|
244
|
+
const ret = await Promise.all(shuffle(actions));
|
245
|
+
expect(ret.length).toBe(10);
|
246
|
+
expect(enter).toBe(10);
|
247
|
+
expect(leave).toBe(10);
|
248
|
+
});
|
249
|
+
it("with promise", async () => {
|
250
|
+
const once = new ResolveOnce();
|
251
|
+
let val = 42;
|
252
|
+
const fn = async () => {
|
253
|
+
return new Promise((resolve) => {
|
254
|
+
setTimeout(() => {
|
255
|
+
resolve(val++);
|
256
|
+
}, 10);
|
257
|
+
});
|
258
|
+
};
|
259
|
+
expect(await once.once(fn)).toBe(42);
|
260
|
+
expect(await once.once(fn)).toBe(42);
|
261
|
+
});
|
262
|
+
it("without promise", () => {
|
263
|
+
const once = new ResolveOnce();
|
264
|
+
let val = 42;
|
265
|
+
const fn = () => val++;
|
266
|
+
expect(once.once(fn)).toBe(42);
|
267
|
+
expect(once.once(fn)).toBe(42);
|
268
|
+
});
|
269
|
+
it("without promise but exception", () => {
|
270
|
+
const once = new ResolveOnce();
|
271
|
+
let val = 42;
|
272
|
+
const fn = () => {
|
273
|
+
throw new Error(`nope ${val++}`);
|
274
|
+
};
|
275
|
+
expect(() => once.once(fn)).toThrowError("nope 42");
|
276
|
+
expect(() => once.once(fn)).toThrowError("nope 42");
|
277
|
+
});
|
278
|
+
it.each([() => new Promise((resolve) => setTimeout(resolve, 10)), () => Promise.resolve()])("async with unget", async (sleeper) => {
|
279
|
+
const once = new KeyedResolvOnce();
|
280
|
+
let triggerUnget = true;
|
281
|
+
const fn = vitest.fn();
|
282
|
+
async function onceFn() {
|
283
|
+
await sleeper();
|
284
|
+
if (triggerUnget) {
|
285
|
+
fn("first");
|
286
|
+
once.unget("a");
|
287
|
+
return await sleeper().then(() => "first");
|
288
|
+
}
|
289
|
+
fn("second");
|
290
|
+
return await sleeper().then(() => "second");
|
291
|
+
}
|
292
|
+
expect(await once.get("a").once(onceFn)).toBe("first");
|
293
|
+
expect(fn).toHaveBeenCalledTimes(1);
|
294
|
+
expect(await once.get("a").once(onceFn)).toBe("first");
|
295
|
+
expect(fn).toHaveBeenCalledTimes(2);
|
296
|
+
triggerUnget = false;
|
297
|
+
expect(await once.get("a").once(onceFn)).toBe("second");
|
298
|
+
expect(fn).toHaveBeenCalledTimes(3);
|
299
|
+
expect(await once.get("a").once(onceFn)).toBe("second");
|
300
|
+
expect(fn).toHaveBeenCalledTimes(3);
|
301
|
+
once.unget("a");
|
302
|
+
expect(await once.get("a").once(onceFn)).toBe("second");
|
303
|
+
expect(fn).toHaveBeenCalledTimes(4);
|
304
|
+
});
|
305
|
+
it("sync with unget", () => {
|
306
|
+
const once = new KeyedResolvOnce();
|
307
|
+
let triggerUnget = true;
|
308
|
+
const fn = vitest.fn();
|
309
|
+
function onceFn() {
|
310
|
+
if (triggerUnget) {
|
311
|
+
fn("first");
|
312
|
+
once.unget("a");
|
313
|
+
return "first";
|
314
|
+
}
|
315
|
+
fn("second");
|
316
|
+
return "second";
|
317
|
+
}
|
318
|
+
expect(once.get("a").once(onceFn)).toBe("first");
|
319
|
+
expect(fn).toHaveBeenCalledTimes(1);
|
320
|
+
expect(once.get("a").once(onceFn)).toBe("first");
|
321
|
+
expect(fn).toHaveBeenCalledTimes(2);
|
322
|
+
triggerUnget = false;
|
323
|
+
expect(once.get("a").once(onceFn)).toBe("second");
|
324
|
+
expect(fn).toHaveBeenCalledTimes(3);
|
325
|
+
expect(once.get("a").once(onceFn)).toBe("second");
|
326
|
+
expect(fn).toHaveBeenCalledTimes(3);
|
327
|
+
once.unget("a");
|
328
|
+
expect(once.get("a").once(onceFn)).toBe("second");
|
329
|
+
expect(fn).toHaveBeenCalledTimes(4);
|
330
|
+
});
|
331
|
+
it("flush on seq", async () => {
|
332
|
+
const seq = new ResolveSeq();
|
333
|
+
let call = 42;
|
334
|
+
const fn = vitest.fn(async () => {
|
335
|
+
await new Promise((resolve) => setTimeout(resolve, 10));
|
336
|
+
return call++;
|
337
|
+
});
|
338
|
+
const results = Array(10)
|
339
|
+
.fill(0)
|
340
|
+
.map((_, i) => {
|
341
|
+
return seq.add(fn, i);
|
342
|
+
});
|
343
|
+
expect(seq._seqFutures.length).toBe(10);
|
344
|
+
const flushes = [seq.flush(), seq.flush(), seq.flush(), seq.flush(), seq.flush()];
|
345
|
+
await Promise.all(flushes);
|
346
|
+
expect(seq._seqFutures.length).toBe(0);
|
347
|
+
expect(await Promise.all(results)).toEqual(Array(10)
|
348
|
+
.fill(0)
|
349
|
+
.map((_, i) => 42 + i));
|
350
|
+
expect(fn).toHaveBeenCalledTimes(10);
|
351
|
+
});
|
352
|
+
it("KeyedResolvOnce values", () => {
|
353
|
+
const keyed = new KeyedResolvOnce();
|
354
|
+
expect(keyed.values()).toEqual([]);
|
355
|
+
const a = keyed.get("a");
|
356
|
+
expect(keyed.values()).toEqual([]);
|
357
|
+
a.once(() => 42);
|
358
|
+
expect(keyed.values()).toEqual([{ key: "a", value: Result.Ok(42) }]);
|
359
|
+
keyed.get("b").once(() => 43);
|
360
|
+
expect(keyed.values()).toEqual([
|
361
|
+
{ key: "a", value: Result.Ok(42) },
|
362
|
+
{ key: "b", value: Result.Ok(43) },
|
363
|
+
]);
|
364
|
+
try {
|
365
|
+
keyed.get("c").once(() => {
|
366
|
+
throw new Error("nope");
|
367
|
+
});
|
368
|
+
}
|
369
|
+
catch (e) {
|
370
|
+
expect(e).toEqual(new Error("nope"));
|
371
|
+
}
|
372
|
+
expect(keyed.values()).toEqual([
|
373
|
+
{ key: "a", value: Result.Ok(42) },
|
374
|
+
{ key: "b", value: Result.Ok(43) },
|
375
|
+
{ key: "c", value: Result.Err(new Error("nope")) },
|
376
|
+
]);
|
377
|
+
keyed.unget("a");
|
378
|
+
keyed.unget("c");
|
379
|
+
expect(keyed.values()).toEqual([{ key: "b", value: Result.Ok(43) }]);
|
380
|
+
});
|
381
|
+
it("uses lru cache", () => {
|
382
|
+
const keyed = new KeyedResolvOnce({ lru: { maxEntries: 2 } });
|
383
|
+
for (let i = 0; i < 10; i++) {
|
384
|
+
keyed.get(i.toString()).once(() => i);
|
385
|
+
}
|
386
|
+
expect(keyed.values()).toEqual([
|
387
|
+
{ key: "8", value: Result.Ok(8) },
|
388
|
+
{ key: "9", value: Result.Ok(9) },
|
389
|
+
]);
|
390
|
+
});
|
391
|
+
});
|
392
|
+
//# sourceMappingURL=resolve-once.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"resolve-once.test.js","sourceRoot":"","sources":["../../../src/resolve-once.test.ts"],"names":[],"mappings":"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"}
|
package/result.d.ts
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
export declare abstract class Result<T, E = Error> {
|
2
|
+
static Ok<T = void>(t: T): Result<T, Error>;
|
3
|
+
static Err<T, E extends Error = Error>(t: E | string | Result<unknown, E>): Result<T, E>;
|
4
|
+
static Is<T>(t: unknown): t is Result<T>;
|
5
|
+
isOk(): boolean;
|
6
|
+
isErr(): boolean;
|
7
|
+
Ok(): T;
|
8
|
+
Err(): E;
|
9
|
+
abstract is_ok(): boolean;
|
10
|
+
abstract is_err(): boolean;
|
11
|
+
abstract unwrap(): T;
|
12
|
+
abstract unwrap_err(): E;
|
13
|
+
}
|
14
|
+
export declare class ResultOK<T> extends Result<T, Error> {
|
15
|
+
private _t;
|
16
|
+
constructor(t: T);
|
17
|
+
is_ok(): boolean;
|
18
|
+
is_err(): boolean;
|
19
|
+
unwrap_err(): Error;
|
20
|
+
unwrap(): T;
|
21
|
+
}
|
22
|
+
export declare class ResultError<T extends Error> extends Result<never, T> {
|
23
|
+
private _error;
|
24
|
+
constructor(t: T);
|
25
|
+
is_ok(): boolean;
|
26
|
+
is_err(): boolean;
|
27
|
+
unwrap(): never;
|
28
|
+
unwrap_err(): T;
|
29
|
+
}
|
30
|
+
export type WithoutResult<T> = T extends Result<infer U> ? U : T;
|
31
|
+
type WithResult<T> = T extends Promise<infer U> ? Promise<Result<U>> : Result<T>;
|
32
|
+
export declare function exception2Result<FN extends () => Promise<T> | T, T>(fn: FN): WithResult<ReturnType<FN>>;
|
33
|
+
export {};
|
34
|
+
//# sourceMappingURL=result.d.ts.map
|
package/result.d.ts.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../src/result.ts"],"names":[],"mappings":"AAEA,8BAAsB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK;IACvC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;IAG3C,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAYxF,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;IAcxC,IAAI,IAAI,OAAO;IAGf,KAAK,IAAI,OAAO;IAIhB,EAAE,IAAI,CAAC;IAGP,GAAG,IAAI,CAAC;IAIR,QAAQ,CAAC,KAAK,IAAI,OAAO;IACzB,QAAQ,CAAC,MAAM,IAAI,OAAO;IAC1B,QAAQ,CAAC,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,UAAU,IAAI,CAAC;CACzB;AAED,qBAAa,QAAQ,CAAC,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAI;gBACF,CAAC,EAAE,CAAC;IAIhB,KAAK,IAAI,OAAO;IAGhB,MAAM,IAAI,OAAO;IAGjB,UAAU,IAAI,KAAK;IAGnB,MAAM,IAAI,CAAC;CAGZ;AAED,qBAAa,WAAW,CAAC,CAAC,SAAS,KAAK,CAAE,SAAQ,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,MAAM,CAAI;gBACN,CAAC,EAAE,CAAC;IAIhB,KAAK,IAAI,OAAO;IAGhB,MAAM,IAAI,OAAO;IAGjB,MAAM,IAAI,KAAK;IAGf,UAAU,IAAI,CAAC;CAGhB;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAGjE,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAEjF,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAUvG"}
|
package/result.js
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
import { isPromise } from "./is-promise.js";
|
2
|
+
export class Result {
|
3
|
+
static Ok(t) {
|
4
|
+
return new ResultOK(t);
|
5
|
+
}
|
6
|
+
static Err(t) {
|
7
|
+
if (typeof t === "string") {
|
8
|
+
return new ResultError(new Error(t));
|
9
|
+
}
|
10
|
+
if (Result.Is(t)) {
|
11
|
+
if (t.is_ok()) {
|
12
|
+
return new ResultError(new Error("Result Error is Ok"));
|
13
|
+
}
|
14
|
+
return t;
|
15
|
+
}
|
16
|
+
return new ResultError(t);
|
17
|
+
}
|
18
|
+
static Is(t) {
|
19
|
+
if (!t) {
|
20
|
+
return false;
|
21
|
+
}
|
22
|
+
if (t instanceof Result) {
|
23
|
+
return true;
|
24
|
+
}
|
25
|
+
const rt = t;
|
26
|
+
if ([typeof rt.is_ok, typeof rt.is_err, typeof rt.unwrap, typeof rt.unwrap_err].every((x) => x === "function")) {
|
27
|
+
return true;
|
28
|
+
}
|
29
|
+
return false;
|
30
|
+
}
|
31
|
+
isOk() {
|
32
|
+
return this.is_ok();
|
33
|
+
}
|
34
|
+
isErr() {
|
35
|
+
return this.is_err();
|
36
|
+
}
|
37
|
+
Ok() {
|
38
|
+
return this.unwrap();
|
39
|
+
}
|
40
|
+
Err() {
|
41
|
+
return this.unwrap_err();
|
42
|
+
}
|
43
|
+
}
|
44
|
+
export class ResultOK extends Result {
|
45
|
+
_t;
|
46
|
+
constructor(t) {
|
47
|
+
super();
|
48
|
+
this._t = t;
|
49
|
+
}
|
50
|
+
is_ok() {
|
51
|
+
return true;
|
52
|
+
}
|
53
|
+
is_err() {
|
54
|
+
return false;
|
55
|
+
}
|
56
|
+
unwrap_err() {
|
57
|
+
throw new Error("Result is Ok");
|
58
|
+
}
|
59
|
+
unwrap() {
|
60
|
+
return this._t;
|
61
|
+
}
|
62
|
+
}
|
63
|
+
export class ResultError extends Result {
|
64
|
+
_error;
|
65
|
+
constructor(t) {
|
66
|
+
super();
|
67
|
+
this._error = t;
|
68
|
+
}
|
69
|
+
is_ok() {
|
70
|
+
return false;
|
71
|
+
}
|
72
|
+
is_err() {
|
73
|
+
return true;
|
74
|
+
}
|
75
|
+
unwrap() {
|
76
|
+
throw new Error(`Result is Err: ${this._error}`);
|
77
|
+
}
|
78
|
+
unwrap_err() {
|
79
|
+
return this._error;
|
80
|
+
}
|
81
|
+
}
|
82
|
+
export function exception2Result(fn) {
|
83
|
+
try {
|
84
|
+
const res = fn();
|
85
|
+
if (isPromise(res)) {
|
86
|
+
return res.then((value) => Result.Ok(value)).catch((e) => Result.Err(e));
|
87
|
+
}
|
88
|
+
return Result.Ok(res);
|
89
|
+
}
|
90
|
+
catch (e) {
|
91
|
+
return Result.Err(e);
|
92
|
+
}
|
93
|
+
}
|
94
|
+
//# sourceMappingURL=result.js.map
|
package/result.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,OAAgB,MAAM;IAC1B,MAAM,CAAC,EAAE,CAAW,CAAI;QACtB,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,CAAC,GAAG,CAA6B,CAAkC;QACvE,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC,CAAM,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBACd,OAAO,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAM,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,CAAiB,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,CAAC,EAAE,CAAI,CAAU;QACrB,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,EAAE,GAAG,CAAc,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,EAAE,CAAC;YAC/G,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IACD,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED,EAAE;QACA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IACD,GAAG;QACD,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;CAMF;AAED,MAAM,OAAO,QAAY,SAAQ,MAAgB;IACvC,EAAE,CAAI;IACd,YAAY,CAAI;QACd,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACd,CAAC;IACD,KAAK;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM;QACJ,OAAO,KAAK,CAAC;IACf,CAAC;IACD,UAAU;QACR,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,MAAM;QACJ,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;CACF;AAED,MAAM,OAAO,WAA6B,SAAQ,MAAgB;IACxD,MAAM,CAAI;IAClB,YAAY,CAAI;QACd,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,KAAK;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM;QACJ,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAOD,MAAM,UAAU,gBAAgB,CAAqC,EAAM;IACzE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,EAAE,CAAC;QACjB,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAA+B,CAAC;QACzG,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,GAAG,CAA+B,CAAC;IACtD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,MAAM,CAAC,GAAG,CAAC,CAAU,CAA+B,CAAC;IAC9D,CAAC;AACH,CAAC"}
|
package/result.test.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"result.test.d.ts","sourceRoot":"","sources":["../../../src/result.test.ts"],"names":[],"mappings":""}
|
package/result.test.js
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
import { exception2Result, Result } from "@adviser/cement";
|
2
|
+
it("ResultOk", () => {
|
3
|
+
const result = Result.Ok(1);
|
4
|
+
expect(result.isOk()).toBe(true);
|
5
|
+
expect(result.is_ok()).toBe(true);
|
6
|
+
expect(result.Ok()).toBe(1);
|
7
|
+
expect(result.unwrap()).toBe(1);
|
8
|
+
expect(result.isErr()).toBe(false);
|
9
|
+
expect(result.is_err()).toBe(false);
|
10
|
+
expect(() => result.Err()).toThrow();
|
11
|
+
expect(() => result.unwrap_err()).toThrow();
|
12
|
+
});
|
13
|
+
it("ResultErr", () => {
|
14
|
+
const result = Result.Err("xxx");
|
15
|
+
expect(result.isOk()).toBe(false);
|
16
|
+
expect(result.is_ok()).toBe(false);
|
17
|
+
expect(result.Err().message).toEqual("xxx");
|
18
|
+
expect(result.unwrap_err().message).toBe("xxx");
|
19
|
+
expect(result.isErr()).toBe(true);
|
20
|
+
expect(result.is_err()).toBe(true);
|
21
|
+
expect(() => result.Ok()).toThrow();
|
22
|
+
expect(() => result.unwrap()).toThrow();
|
23
|
+
});
|
24
|
+
class xResult {
|
25
|
+
}
|
26
|
+
class fakeResult {
|
27
|
+
is_ok() {
|
28
|
+
return true;
|
29
|
+
}
|
30
|
+
is_err() {
|
31
|
+
return false;
|
32
|
+
}
|
33
|
+
unwrap() {
|
34
|
+
return 1;
|
35
|
+
}
|
36
|
+
unwrap_err() {
|
37
|
+
throw new Error("Result is Ok");
|
38
|
+
}
|
39
|
+
}
|
40
|
+
it("is Result", () => {
|
41
|
+
expect(Result.Is(Result.Ok(1))).toBe(true);
|
42
|
+
expect(Result.Is(Result.Err("xxx"))).toEqual(true);
|
43
|
+
expect(Result.Is(new fakeResult())).toBe(true);
|
44
|
+
expect(Result.Is(new xResult())).toBe(false);
|
45
|
+
});
|
46
|
+
it("WithoutResult", () => {
|
47
|
+
const result = Result.Ok({ a: 1 });
|
48
|
+
const a1 = {};
|
49
|
+
a1.a = 1;
|
50
|
+
expect(a1.a).toEqual(1);
|
51
|
+
expect(result.Ok().a).toEqual(1);
|
52
|
+
});
|
53
|
+
it("sync exception2Result ok", () => {
|
54
|
+
expect(exception2Result(() => 1)).toEqual(Result.Ok(1));
|
55
|
+
});
|
56
|
+
it("sync exception2Result throw", () => {
|
57
|
+
expect(exception2Result(() => {
|
58
|
+
throw new Error("x");
|
59
|
+
})).toEqual(Result.Err("x"));
|
60
|
+
});
|
61
|
+
it("async exception2Result ok", async () => {
|
62
|
+
expect(await exception2Result(() => Promise.resolve(1))).toEqual(Result.Ok(1));
|
63
|
+
});
|
64
|
+
it("async exception2Result throw", async () => {
|
65
|
+
expect(await exception2Result(() => Promise.reject(new Error("x")))).toEqual(Result.Err("x"));
|
66
|
+
});
|
67
|
+
it("result typ", () => {
|
68
|
+
function ok() {
|
69
|
+
return Result.Ok(1);
|
70
|
+
}
|
71
|
+
function err() {
|
72
|
+
return Result.Err("x");
|
73
|
+
}
|
74
|
+
expect(ok().Ok()).toBe(1);
|
75
|
+
expect(err().Err().message).toBe("x");
|
76
|
+
});
|
77
|
+
it("Result.Err receive Result", () => {
|
78
|
+
expect(Result.Err(Result.Ok(1)).Err().message).toBe("Result Error is Ok");
|
79
|
+
const err = Result.Err("xxx");
|
80
|
+
expect(Result.Err(err)).toBe(err);
|
81
|
+
expect(Result.Err(err.Err())).toStrictEqual(err);
|
82
|
+
});
|
83
|
+
//# sourceMappingURL=result.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"result.test.js","sourceRoot":"","sources":["../../../src/result.test.ts"],"names":[],"mappings":"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"}
|