From b12b22f06a6959612cc639791fde7cd123e3018a Mon Sep 17 00:00:00 2001 From: Robert Fischer Date: Fri, 11 Dec 2020 13:21:50 -0500 Subject: [PATCH 01/22] build(bundle): before packaging, run the bundle --- .gitignore | 4 ++++ .npmignore | 3 ++- package.json | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 786dcf7..d939db6 100644 --- a/.gitignore +++ b/.gitignore @@ -120,3 +120,7 @@ index.*.map *.old fun-promises-*.tgz + +dist/*.tgz +dist/*.tar.gz +dist/*.tar.xz diff --git a/.npmignore b/.npmignore index f930489..ac37494 100644 --- a/.npmignore +++ b/.npmignore @@ -6,5 +6,6 @@ script docs conf.d tsconfig/* -dist/docs.tgz fun-promises-*.tgz +dist/*.tgz +dist/*.tar.xz diff --git a/package.json b/package.json index c0d50e6..904d25c 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "build": "echo 'Executing build' && yarn build:dists && yarn build:docs", "build:amd": "tsc -p ./tsconfig/amd.json", "build:browser": "( test -d ./dist/esnext || yarn build:esnext ) && parcel build ./dist/esnext/index.js --target browser --out-dir ./dist/browser/ --global FunPromise --detailed-report 15", - "build:bundle": "./script/bootstrap && yarn build:dists && ./script/bundle-dists", + "build:bundles": "./script/bootstrap && yarn build:dists && ./script/bundle-dists", "build:cjs": "tsc -p ./tsconfig/cjs.json", "build:dists": "rm -rf dist && yarn build:esnext && yarn build:es6 && yarn build:node && yarn build:react-native && yarn build:browser", "build:docs": "rm -rf ./docs && mkdir ./docs && yarn build:docs:typedocs && yarn build:docs:changelog && yarn build:docs:test && yarn build:docs:coverage && mkdir -p ./dist && tar cJvf ./dist/docs.tar.xz ./docs", @@ -106,7 +106,7 @@ "bump-deps": "yarn upgrade -LCA && yarn install && yarn test", "clean": "./script/clean", "polish": "prettier --write .", - "prepack": "echo 'Executing prepack' && yarn build:dists", + "prepack": "echo 'Executing prepack' && yarn build:bundles", "serve:docs": "yarn build:docs && npx http-server ./docs", "test": "jest --detectOpenHandles --forceExit ./*.test.js ./src/*.test.js", "watch:compile": "tsc --watch -p tsconfig.json", From f129cda2da3a1daffcc2e9c81deebcaf51e063d6 Mon Sep 17 00:00:00 2001 From: Robert Fischer Date: Fri, 11 Dec 2020 13:23:29 -0500 Subject: [PATCH 02/22] build(release): get rid of the NPM package asset and fix RN --- release.config.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/release.config.js b/release.config.js index d3c91f5..4346c51 100644 --- a/release.config.js +++ b/release.config.js @@ -5,7 +5,6 @@ const path = require("path"); const { name } = require("./package.json"); const distributions = { - NPM: `dist/${name}-v*.tgz`, "Browser - Single File": "./dist/browser.index.js.xz", "Browser - with Source Maps": "./dist/browser.tar.xz", "ES6 AMD - Single File": "./dist/amd.index.js.xz", @@ -16,7 +15,7 @@ const distributions = { "Node 10": "./dist/v10.tar.xz", "Node 12": "./dist/v12.tar.xz", "Node 14": "./dist/v14.tar.xz", - "React Native": "./dist/react-native-tar.xz", + "React Native": "./dist/react-native.tar.xz", }; const assets = _.concat( From 092830056cfe05a70e7fc643a0ed697146f1808d Mon Sep 17 00:00:00 2001 From: Robert Fischer Date: Fri, 11 Dec 2020 13:28:02 -0500 Subject: [PATCH 03/22] build(build script): build the bundles, not just the dists --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 904d25c..41eb743 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "typedoc-plugin-nojekyll": "^1.0.1" }, "scripts": { - "build": "echo 'Executing build' && yarn build:dists && yarn build:docs", + "build": "echo 'Executing build' && yarn build:bundles && yarn build:docs", "build:amd": "tsc -p ./tsconfig/amd.json", "build:browser": "( test -d ./dist/esnext || yarn build:esnext ) && parcel build ./dist/esnext/index.js --target browser --out-dir ./dist/browser/ --global FunPromise --detailed-report 15", "build:bundles": "./script/bootstrap && yarn build:dists && ./script/bundle-dists", From c3eb9484338aa037d090e18f01d802c01b2b9e88 Mon Sep 17 00:00:00 2001 From: Robert Fischer Date: Fri, 11 Dec 2020 13:28:45 -0500 Subject: [PATCH 04/22] ci(release): fix up the message used to commit the assets produced after the release --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6bf8f7e..6cc9d50 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -42,7 +42,7 @@ jobs: - name: Polish Files run: yarn polish - name: Build Distribution Bundles - run: yarn build:bundle + run: yarn build - name: Perform Semantic Release id: release uses: cycjimmy/semantic-release-action@v2.5.3 @@ -74,4 +74,4 @@ jobs: - uses: stefanzweifel/git-auto-commit-action@v4 with: commit_message: - "chore(post-release): committing changes produced during the release" + "chore(docs and dist): commit what was produced during the release" From 82ff886c448692be9f877be179c0052b786e0c38 Mon Sep 17 00:00:00 2001 From: Robert Fischer Date: Fri, 11 Dec 2020 13:29:54 -0500 Subject: [PATCH 05/22] ci(release): add in a polish step to keep code looking good --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6cc9d50..b5ca6d4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -70,6 +70,7 @@ jobs: NONINTERACTIVE: true - run: yarn install - run: yarn bump-deps + - run: yarn polish - run: yarn build - uses: stefanzweifel/git-auto-commit-action@v4 with: From 08c86c08e3dc4a6935a83233732a782995e1d199 Mon Sep 17 00:00:00 2001 From: RobertFischer Date: Fri, 11 Dec 2020 18:37:13 +0000 Subject: [PATCH 06/22] chore(docs and dist): commit what was produced during the release --- CHANGELOG.md | 35 +- dist/amd.index.js.xz | Bin 0 -> 8936 bytes dist/browser.index.js.xz | Bin 0 -> 14132 bytes dist/cjs.index.js.xz | Bin 0 -> 584 bytes dist/docs.tar.xz | Bin 74684 -> 74704 bytes dist/es6/cjs/src/deferral.test.d.ts | 2 - dist/es6/cjs/src/deferral.test.d.ts.map | 1 - dist/es6/cjs/src/deferral.test.js | 44 -- dist/es6/cjs/src/deferral.test.js.map | 1 - dist/es6/cjs/src/fun-promise.test.d.ts | 2 - dist/es6/cjs/src/fun-promise.test.d.ts.map | 1 - dist/es6/cjs/src/fun-promise.test.js | 601 ----------------- dist/es6/cjs/src/fun-promise.test.js.map | 1 - dist/es6/cjs/src/types.test.d.ts | 2 - dist/es6/cjs/src/types.test.d.ts.map | 1 - dist/es6/cjs/src/types.test.js | 32 - dist/es6/cjs/src/types.test.js.map | 1 - dist/es6/esm/src/deferral.test.d.ts | 2 - dist/es6/esm/src/deferral.test.d.ts.map | 1 - dist/es6/esm/src/deferral.test.js | 42 -- dist/es6/esm/src/deferral.test.js.map | 1 - dist/es6/esm/src/fun-promise.test.d.ts | 2 - dist/es6/esm/src/fun-promise.test.d.ts.map | 1 - dist/es6/esm/src/fun-promise.test.js | 599 ----------------- dist/es6/esm/src/fun-promise.test.js.map | 1 - dist/es6/esm/src/types.test.d.ts | 2 - dist/es6/esm/src/types.test.d.ts.map | 1 - dist/es6/esm/src/types.test.js | 30 - dist/es6/esm/src/types.test.js.map | 1 - dist/es6/umd/src/deferral.test.d.ts | 2 - dist/es6/umd/src/deferral.test.d.ts.map | 1 - dist/es6/umd/src/deferral.test.js | 54 -- dist/es6/umd/src/deferral.test.js.map | 1 - dist/es6/umd/src/fun-promise.test.d.ts | 2 - dist/es6/umd/src/fun-promise.test.d.ts.map | 1 - dist/es6/umd/src/fun-promise.test.js | 611 ------------------ dist/es6/umd/src/fun-promise.test.js.map | 1 - dist/es6/umd/src/types.test.d.ts | 2 - dist/es6/umd/src/types.test.d.ts.map | 1 - dist/es6/umd/src/types.test.js | 42 -- dist/es6/umd/src/types.test.js.map | 1 - dist/esm.index.js.xz | Bin 0 -> 480 bytes dist/esnext.index.js.xz | Bin 0 -> 484 bytes dist/esnext/src/deferral.test.d.ts | 2 - dist/esnext/src/deferral.test.d.ts.map | 1 - dist/esnext/src/deferral.test.js | 41 -- dist/esnext/src/deferral.test.js.map | 1 - dist/esnext/src/fun-promise.test.d.ts | 2 - dist/esnext/src/fun-promise.test.d.ts.map | 1 - dist/esnext/src/fun-promise.test.js | 598 ----------------- dist/esnext/src/fun-promise.test.js.map | 1 - dist/esnext/src/types.test.d.ts | 2 - dist/esnext/src/types.test.d.ts.map | 1 - dist/esnext/src/types.test.js | 30 - dist/esnext/src/types.test.js.map | 1 - dist/react-native.index.js.xz | Bin 0 -> 824 bytes dist/umd.index.js.xz | Bin 0 -> 744 bytes dist/v10.index.js.xz | Bin 0 -> 824 bytes dist/v12.index.js.xz | Bin 0 -> 824 bytes dist/v14.index.js.xz | Bin 0 -> 824 bytes docs/CHANGELOG.md | 35 +- docs/classes/_src_deferral_.deferral.html | 8 +- .../classes/_src_fun_promise_.funpromise.html | 120 ++-- docs/classes/_src_types_.fulfillment.html | 6 +- docs/classes/_src_types_.rejection.html | 6 +- docs/modules/_src_types_.html | 18 +- docs/test-results.txt | 110 ++-- 67 files changed, 174 insertions(+), 2936 deletions(-) create mode 100644 dist/amd.index.js.xz create mode 100644 dist/browser.index.js.xz create mode 100644 dist/cjs.index.js.xz delete mode 100644 dist/es6/cjs/src/deferral.test.d.ts delete mode 100644 dist/es6/cjs/src/deferral.test.d.ts.map delete mode 100644 dist/es6/cjs/src/deferral.test.js delete mode 100644 dist/es6/cjs/src/deferral.test.js.map delete mode 100644 dist/es6/cjs/src/fun-promise.test.d.ts delete mode 100644 dist/es6/cjs/src/fun-promise.test.d.ts.map delete mode 100644 dist/es6/cjs/src/fun-promise.test.js delete mode 100644 dist/es6/cjs/src/fun-promise.test.js.map delete mode 100644 dist/es6/cjs/src/types.test.d.ts delete mode 100644 dist/es6/cjs/src/types.test.d.ts.map delete mode 100644 dist/es6/cjs/src/types.test.js delete mode 100644 dist/es6/cjs/src/types.test.js.map delete mode 100644 dist/es6/esm/src/deferral.test.d.ts delete mode 100644 dist/es6/esm/src/deferral.test.d.ts.map delete mode 100644 dist/es6/esm/src/deferral.test.js delete mode 100644 dist/es6/esm/src/deferral.test.js.map delete mode 100644 dist/es6/esm/src/fun-promise.test.d.ts delete mode 100644 dist/es6/esm/src/fun-promise.test.d.ts.map delete mode 100644 dist/es6/esm/src/fun-promise.test.js delete mode 100644 dist/es6/esm/src/fun-promise.test.js.map delete mode 100644 dist/es6/esm/src/types.test.d.ts delete mode 100644 dist/es6/esm/src/types.test.d.ts.map delete mode 100644 dist/es6/esm/src/types.test.js delete mode 100644 dist/es6/esm/src/types.test.js.map delete mode 100644 dist/es6/umd/src/deferral.test.d.ts delete mode 100644 dist/es6/umd/src/deferral.test.d.ts.map delete mode 100644 dist/es6/umd/src/deferral.test.js delete mode 100644 dist/es6/umd/src/deferral.test.js.map delete mode 100644 dist/es6/umd/src/fun-promise.test.d.ts delete mode 100644 dist/es6/umd/src/fun-promise.test.d.ts.map delete mode 100644 dist/es6/umd/src/fun-promise.test.js delete mode 100644 dist/es6/umd/src/fun-promise.test.js.map delete mode 100644 dist/es6/umd/src/types.test.d.ts delete mode 100644 dist/es6/umd/src/types.test.d.ts.map delete mode 100644 dist/es6/umd/src/types.test.js delete mode 100644 dist/es6/umd/src/types.test.js.map create mode 100644 dist/esm.index.js.xz create mode 100644 dist/esnext.index.js.xz delete mode 100644 dist/esnext/src/deferral.test.d.ts delete mode 100644 dist/esnext/src/deferral.test.d.ts.map delete mode 100644 dist/esnext/src/deferral.test.js delete mode 100644 dist/esnext/src/deferral.test.js.map delete mode 100644 dist/esnext/src/fun-promise.test.d.ts delete mode 100644 dist/esnext/src/fun-promise.test.d.ts.map delete mode 100644 dist/esnext/src/fun-promise.test.js delete mode 100644 dist/esnext/src/fun-promise.test.js.map delete mode 100644 dist/esnext/src/types.test.d.ts delete mode 100644 dist/esnext/src/types.test.d.ts.map delete mode 100644 dist/esnext/src/types.test.js delete mode 100644 dist/esnext/src/types.test.js.map create mode 100644 dist/react-native.index.js.xz create mode 100644 dist/umd.index.js.xz create mode 100644 dist/v10.index.js.xz create mode 100644 dist/v12.index.js.xz create mode 100644 dist/v14.index.js.xz diff --git a/CHANGELOG.md b/CHANGELOG.md index f9b5de2..4f14275 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,48 +1,53 @@ + + fun-promises Changelog ## [1.2.0](https://github.com/RobertFischer/fun-promises/compare/v1.1.0...v1.2.0) (2020-12-03) - ### Features -* **fold:** implements fold in case map and filter don't cut it ([86c010f](https://github.com/RobertFischer/fun-promises/commit/86c010ff5f934602a2a964cb71ebb73697ed7c2a)), closes [#12](https://github.com/RobertFischer/fun-promises/issues/12) -* **tap:** implement 'tap' for peeking at values ([0f4816a](https://github.com/RobertFischer/fun-promises/commit/0f4816ab42fd9f18bf91e179d2c03fed25822f11)) - +- **fold:** implements fold in case map and filter don't cut it + ([86c010f](https://github.com/RobertFischer/fun-promises/commit/86c010ff5f934602a2a964cb71ebb73697ed7c2a)), + closes [#12](https://github.com/RobertFischer/fun-promises/issues/12) +- **tap:** implement 'tap' for peeking at values + ([0f4816a](https://github.com/RobertFischer/fun-promises/commit/0f4816ab42fd9f18bf91e179d2c03fed25822f11)) ### Reverts -* **release:** the cleanup caused a problem with the autocommitting ([6c03637](https://github.com/RobertFischer/fun-promises/commit/6c03637137923e0581a4a736bcb6bd4aa25c77d4)) +- **release:** the cleanup caused a problem with the autocommitting + ([6c03637](https://github.com/RobertFischer/fun-promises/commit/6c03637137923e0581a4a736bcb6bd4aa25c77d4)) ## [1.2.0-rc.2](https://github.com/RobertFischer/fun-promises/compare/v1.2.0-rc.1...v1.2.0-rc.2) (2020-12-02) - ### Features -* **fold:** implements fold in case map and filter don't cut it ([86c010f](https://github.com/RobertFischer/fun-promises/commit/86c010ff5f934602a2a964cb71ebb73697ed7c2a)), closes [#12](https://github.com/RobertFischer/fun-promises/issues/12) +- **fold:** implements fold in case map and filter don't cut it + ([86c010f](https://github.com/RobertFischer/fun-promises/commit/86c010ff5f934602a2a964cb71ebb73697ed7c2a)), + closes [#12](https://github.com/RobertFischer/fun-promises/issues/12) ## [1.2.0-rc.1](https://github.com/RobertFischer/fun-promises/compare/v1.1.0...v1.2.0-rc.1) (2020-12-02) - ### Features -* **tap:** implement 'tap' for peeking at values ([0f4816a](https://github.com/RobertFischer/fun-promises/commit/0f4816ab42fd9f18bf91e179d2c03fed25822f11)) - +- **tap:** implement 'tap' for peeking at values + ([0f4816a](https://github.com/RobertFischer/fun-promises/commit/0f4816ab42fd9f18bf91e179d2c03fed25822f11)) ### Reverts -* **release:** the cleanup caused a problem with the autocommitting ([6c03637](https://github.com/RobertFischer/fun-promises/commit/6c03637137923e0581a4a736bcb6bd4aa25c77d4)) +- **release:** the cleanup caused a problem with the autocommitting + ([6c03637](https://github.com/RobertFischer/fun-promises/commit/6c03637137923e0581a4a736bcb6bd4aa25c77d4)) ## [1.1.0-rc.2](https://github.com/RobertFischer/fun-promises/compare/v1.1.0-rc.1...v1.1.0-rc.2) (2020-12-02) - ### Features -* **tap:** implement 'tap' for peeking at values ([ce059bd](https://github.com/RobertFischer/fun-promises/commit/ce059bdb12c4706f8bf8189d5b09dadae740fa47)) - +- **tap:** implement 'tap' for peeking at values + ([ce059bd](https://github.com/RobertFischer/fun-promises/commit/ce059bdb12c4706f8bf8189d5b09dadae740fa47)) ### Reverts -* **release:** the cleanup caused a problem with the autocommitting ([c9ad636](https://github.com/RobertFischer/fun-promises/commit/c9ad636762e510ce0218f4c13b506cac05f4ab0f)) +- **release:** the cleanup caused a problem with the autocommitting + ([c9ad636](https://github.com/RobertFischer/fun-promises/commit/c9ad636762e510ce0218f4c13b506cac05f4ab0f)) diff --git a/dist/amd.index.js.xz b/dist/amd.index.js.xz new file mode 100644 index 0000000000000000000000000000000000000000..35f782fea1058a0c54ff3afc44ae8eaa487627fb GIT binary patch literal 8936 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%0Aj9BpZ zuJVDRm;i0jXF!{S^t&1Uy#)lQ!q~*1E&0sz9JK42`qgQrzE8JIw!-WZQ>O9bDTOF1`T}57%KVBW2Yfo%^h7r zmx1}4tCf>y!x@1o%TRT4@yzSsecgQ2nv{w$WAAYBeFP1OHW_QJt2eHvJ=W?Ex#%x* zUE_JV3cXntRJcM$IoTk%A9O6%*0sF^c3~}6=PWC;`z=1|ko2;Nnn#w}!p%n5@BV5K z74J)-N$Z#(^MC}5H^IFj@EPq!Pa?m3r=7~W z#9E)nl*PUP%2Tc`LtWzLEwWMFe3DIu%hLvZd^HK%OC-dyq<3HIs+YnT8dDU+^Rw|0 z;?kMqB|=qRQZBT=>xqzDQhMzKj%3jba}m1F_>{^z6Xib0CDi<73^fejRrF6jhhDeCpc zmY0SKrW&J?v=987Ul?Etv4j+RySNQS3OCL#Q(Y9pBJ971?W4+Dys=#JiaZTMR68$F-&t7-_6?)RpP7 zK{vr~8{CvD&=(Zs$>p0oT32}UpdyAl-b4~Fh;5kJR}b{59%l;fggDR_0=5#{MRR|p z*VT=lZZ4pHlw&gjb{nMXy~lx0ZaU^B@U(5K(gH{ZU0SFww<96 z-)*ukUeEQLEI62CU6%-NR^AWqF$a1u?c>>*7z-BN68V~|fIm`Bdj7t;{nQv%rrOPa z)jp1EH_~f-&?^fC8L@!f>lOJM$j+@N!kq{jEYTRlbuHR?tu_EBz@u@&t!(E%oed24 zU7=q)g+AqKap<$|$juBItm`L~@y6VZE;kc-Wq}4&LQ8}nDQ$_TY*Mq)fXvbOhUO~0 zt{}VwyFi8Q4ktSb4u|M=PQ!QteCxlb(bJs?<*~OR{kIQ$W@|L+)w*<#QarAkNM4JL zzd>Lc`5H+wWm`Inzkt+oHc`ieux*Yal=4Na_woS_@exez;3Bs7HG<%ZgHb;_8{=hQ zB^;hW!DwPOIKDi==zy`(F)Dogt}50w=3zfYogYUxUcpEbD}JV!r#J@7W?D0Bvi0D- zbwn{>H_0W;&XLaZU1t2|%jmTFeuWnP4N{GL-Tt;E;*b6?Ms)p=zc-GEoXOY0r!1}_ zU`p}%tFl#EzEhzg9!~+8P>MkBPrv6KC;lbVwWyIJ4i}i2c`LX;w@iIq&@#{8k!D-+ zD|hc=i8&L0HsT{+^5LzMy$BIx z&UoKllA5-w#BbLk`(MR?oI(-RjuNe6@MqU3`)^s1n+b@F0{m2bq?z~lXWH!yCOmQg z1G@>@S*g=TpEuaOfivawgw0VX2aTS{=Vpt)e zQubr=2m-xC?l7%8MDy;4%V0F=MiN9HR5&Y>b~{q@t$*ckHi_W=C^GFYoz*+KDcU@9 zj99DiN}nqgKdM^`vG5V`@?25p>k6s_BZ-`Dlf+W9QnltWWvbvdEHRzmojz3_K!m8g zi?ao@b8C1QsBV49&y@?|c#qBR-5X4>ijd>dB~N*z^0}L&S?AAMwBCP&B>vJ~ZVYim z2E3L59D|W%!Og*q)p?Wv0000_1i!~w=lmG}0l`Ip-~#}y`();^#Ao{g000001X)_2 C3uR~k literal 0 HcmV?d00001 diff --git a/dist/browser.index.js.xz b/dist/browser.index.js.xz new file mode 100644 index 0000000000000000000000000000000000000000..28172540cd7f1436a96644e8666974a952c81445 GIT binary patch literal 14132 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 literal 0 HcmV?d00001 diff --git a/dist/cjs.index.js.xz b/dist/cjs.index.js.xz new file mode 100644 index 0000000000000000000000000000000000000000..99f4b8ee3cb54306158d9f14868e792801ce2cf8 GIT binary patch literal 584 zcmV-O0=NDBH+ooF000E$*0e?f03iVu0001VFXf})C;tKnT>uvg$)}l&u;dj1tPQQF z9an5w(!<9WQxQsjics{EA8g+`vNTJ zUHyye?J!gKskVGl9DH-j<B!FblZFY-6bgQA&h1cl_mkWY9js$`}qNLce)%loJna>mp zoXOFhvuUVCi3kk|V@7H}lb2GC{Y$366*ZwO&9AQd?;1!?RXpjYq0s4YP;?zQyv4N7 z($qJy#Vg#b`PyoCsw?7AgA2KAsfS}vmLfo2q^w{~;qZ>^ZLcCSfHN)@n$Moo_lUKu zF%Mkog;$un&*?-YBqBd3uiJd-8}eLOne4IBWiq;ozYG~S^sOrnsU1KjL4E_C@pO>1 z?Iig)5JfvP6Zs@SF`se>&ymijGKp>q4%~5T7r|VGgg{+*bN~S7s59#Ao{g000001X)@p#vbti literal 0 HcmV?d00001 diff --git a/dist/docs.tar.xz b/dist/docs.tar.xz index 764c4bbfbd56593e3c5d3134090fe7e32017672f..f57f118a2634b8a63f3c822ad83cc2353573dde4 100644 GIT binary patch literal 74704 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

J1=jES$gEkVkaD6Evc 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

FS~T*&ut-j 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 K000001X)^#nx7^B literal 74684 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�neeBHNDgLD8&np)JbiY}uUt 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 diff --git a/dist/es6/cjs/src/deferral.test.d.ts b/dist/es6/cjs/src/deferral.test.d.ts deleted file mode 100644 index 4c655ce..0000000 --- a/dist/es6/cjs/src/deferral.test.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=deferral.test.d.ts.map \ No newline at end of file diff --git a/dist/es6/cjs/src/deferral.test.d.ts.map b/dist/es6/cjs/src/deferral.test.d.ts.map deleted file mode 100644 index 1e43120..0000000 --- a/dist/es6/cjs/src/deferral.test.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"deferral.test.d.ts","sourceRoot":"","sources":["../../../../src/deferral.test.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/es6/cjs/src/deferral.test.js b/dist/es6/cjs/src/deferral.test.js deleted file mode 100644 index b49c2d0..0000000 --- a/dist/es6/cjs/src/deferral.test.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; -/** @format */ -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -const fun_promise_1 = require("./fun-promise"); -const deferral_1 = require("./deferral"); -require("./types"); -require("lodash"); -describe("Deferral", () => { - it("can be constructed", () => { - const deferral = new deferral_1.default(); - expect(deferral).not.toBeNil(); - }); - describe("promise", () => { - it("is a FunPromise", () => { - const deferral = new deferral_1.default(); - expect(deferral.promise).toBeInstanceOf(fun_promise_1.default); - }); - }); - describe("resolve", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const deferral = new deferral_1.default(); - deferral.resolve(true); - yield expect(deferral.resolve(true)).resolves.toBe(true); - })); - it("does not change resolved value if called multiple times", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const deferral = new deferral_1.default(); - yield expect(deferral.resolve(true)).resolves.toBe(true); - yield expect(deferral.resolve(false)).resolves.toBe(true); - })); - }); - describe("reject", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const deferral = new deferral_1.default(); - yield expect(deferral.reject(new Error("BOOM!"))).rejects.toHaveProperty("message", "BOOM!"); - })); - it("does not change reason if called multiple times", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const deferral = new deferral_1.default(); - yield expect(deferral.reject(new Error("BOOM!"))).rejects.toHaveProperty("message", "BOOM!"); - yield expect(deferral.reject(new Error("BANG!"))).rejects.toHaveProperty("message", "BOOM!"); - })); - }); -}); -//# sourceMappingURL=deferral.test.js.map \ No newline at end of file diff --git a/dist/es6/cjs/src/deferral.test.js.map b/dist/es6/cjs/src/deferral.test.js.map deleted file mode 100644 index 8583046..0000000 --- a/dist/es6/cjs/src/deferral.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"deferral.test.js","sourceRoot":"","sources":["../../../../src/deferral.test.js"],"names":[],"mappings":";AAAA,cAAc;;;AAEd,+CAAuC;AACvC,yCAAkC;AAClC,mBAAuC;AACvC,kBAAuB;AAEvB,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC7B,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;YAC1B,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAC;YAChC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,qBAAU,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,iBAAiB,EAAE,GAAS,EAAE;YAChC,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAC;YAChC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAS,EAAE;YACxE,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC,CAAA,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,iBAAiB,EAAE,GAAS,EAAE;YAChC,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CACvE,SAAS,EACT,OAAO,CACP,CAAC;QACH,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAS,EAAE;YAChE,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CACvE,SAAS,EACT,OAAO,CACP,CAAC;YACF,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CACvE,SAAS,EACT,OAAO,CACP,CAAC;QACH,CAAC,CAAA,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["/** @format */\n\nimport FunPromise from \"./fun-promise\";\nimport Deferral from \"./deferral\";\nimport { PromiseState } from \"./types\";\nimport _ from \"lodash\";\n\ndescribe(\"Deferral\", () => {\n\tit(\"can be constructed\", () => {\n\t\tconst deferral = new Deferral();\n\t\texpect(deferral).not.toBeNil();\n\t});\n\n\tdescribe(\"promise\", () => {\n\t\tit(\"is a FunPromise\", () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\texpect(deferral.promise).toBeInstanceOf(FunPromise);\n\t\t});\n\t});\n\n\tdescribe(\"resolve\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tdeferral.resolve(true);\n\t\t\tawait expect(deferral.resolve(true)).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"does not change resolved value if called multiple times\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tawait expect(deferral.resolve(true)).resolves.toBe(true);\n\t\t\tawait expect(deferral.resolve(false)).resolves.toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"reject\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tawait expect(deferral.reject(new Error(\"BOOM!\"))).rejects.toHaveProperty(\n\t\t\t\t\"message\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\n\t\tit(\"does not change reason if called multiple times\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tawait expect(deferral.reject(new Error(\"BOOM!\"))).rejects.toHaveProperty(\n\t\t\t\t\"message\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t\tawait expect(deferral.reject(new Error(\"BANG!\"))).rejects.toHaveProperty(\n\t\t\t\t\"message\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\t});\n});\n"]} \ No newline at end of file diff --git a/dist/es6/cjs/src/fun-promise.test.d.ts b/dist/es6/cjs/src/fun-promise.test.d.ts deleted file mode 100644 index 597914a..0000000 --- a/dist/es6/cjs/src/fun-promise.test.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=fun-promise.test.d.ts.map \ No newline at end of file diff --git a/dist/es6/cjs/src/fun-promise.test.d.ts.map b/dist/es6/cjs/src/fun-promise.test.d.ts.map deleted file mode 100644 index e2ecf9b..0000000 --- a/dist/es6/cjs/src/fun-promise.test.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"fun-promise.test.d.ts","sourceRoot":"","sources":["../../../../src/fun-promise.test.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/es6/cjs/src/fun-promise.test.js b/dist/es6/cjs/src/fun-promise.test.js deleted file mode 100644 index 4e6ca85..0000000 --- a/dist/es6/cjs/src/fun-promise.test.js +++ /dev/null @@ -1,601 +0,0 @@ -"use strict"; -/** @format */ -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -const fun_promise_1 = require("./fun-promise"); -const lodash_1 = require("lodash"); -const ts_nested_error_1 = require("ts-nested-error"); -const types_1 = require("./types"); -const tokenPromise = new Promise((resolve) => resolve(true)); -const tokenFunPromise = new fun_promise_1.default(tokenPromise); -function withRejection(rejectionReason, callback) { - const rejection = Promise.reject(rejectionReason); - try { - return callback(rejection); - } - finally { - rejection.catch(lodash_1.default.noop); // Disable uncaught exception issues - } -} -describe("FunPromise", () => { - it("can be constructed and resolved", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(new fun_promise_1.default(tokenPromise)).resolves.toBe(true); - })); - describe("resolve/return", () => { - lodash_1.default.forEach({ static: fun_promise_1.default, instance: tokenFunPromise }, (impl, implName) => { - lodash_1.default.forEach(["resolve", "return"], (methodName) => { - describe(methodName, () => { - describe(implName, () => { - function doResolve(value) { - return impl[methodName](value); - } - it("rejects when provided a rejection", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(doResolve(Promise.reject("BOOM!"))).rejects.toBe("BOOM!"); - })); - it("does not resolve the elements of an array", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - expect.hasAssertions(); - yield withRejection("BOOM!", (rejection) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(doResolve([rejection])).resolves.toHaveLength(1); - })); - })); - describe("resolves correctly", () => { - it("with a value", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(doResolve(tokenPromise)).resolves.toBe(true); - })); - it("returns the FunPromise if passed a FunPromise", () => { - expect(doResolve(tokenFunPromise)).toEqual(tokenFunPromise); - }); - it("without a value", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(doResolve()).resolves.toBeNil(); - })); - }); - }); - }); - }); - }); - }); - describe("then", () => { - it("works without onrejected", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(tokenFunPromise.then(lodash_1.default.identity)).resolves.toBe(true); - })); - }); - describe("catch", () => { - it("handles rejections", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(tokenFunPromise - .then(() => Promise.reject("BOOM!")) - .catch((e) => { - expect(e).toBe("BOOM!"); - return "DONE!"; - })).resolves.toBe("DONE!"); - })); - it("returns the error when not passed an argument", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const error = new Error("BOOM!"); - yield expect(tokenFunPromise.then(() => Promise.reject(error)).catch()).resolves.toBe(error); - })); - }); - describe("arrayify", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const value = [1, 2, 3, 4]; - yield expect(fun_promise_1.default.resolve(value).arrayify()).resolves.toStrictEqual(value); - })); - it("returns a clone", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const value = [1, 2, 3, 4]; - yield expect(fun_promise_1.default.resolve(value) - .arrayify() - .then((it) => { - it.pop(); - return it; - })).resolves.not.toBe(value); - expect(value).toHaveLength(4); - })); - it("does not resolve values when called without an argument", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const rejection = Promise.reject("BOOM!"); - try { - yield expect(fun_promise_1.default.resolve([1, 2, rejection]).arrayify()).resolves.toBeArrayOfSize(3); - } - finally { - rejection.catch((e) => { }); // Disarm the rejection - } - })); - it("resolves values when called with the sole argument `true`", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.resolve([ - Promise.resolve(1), - fun_promise_1.default.resolve(2), - ]).arrayify(true)).resolves.toEqual([1, 2]); - })); - it("rejects values when called with the sole argument `true` and a rejection in the mix", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const rejection = Promise.reject("BOOM!"); - yield expect(fun_promise_1.default.resolve([1, 2, rejection]).arrayify(true)).rejects.toBe("BOOM!"); - })); - it("rejects values in order when called with the arguments `(true, true)`", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const rejection1 = Promise.reject("BOOM!"); - const rejection2 = Promise.reject("BANG!"); - try { - yield expect(fun_promise_1.default.resolve([1, 2, rejection1, rejection2]).arrayify(true, true)).rejects.toBe("BOOM!"); - } - finally { - rejection1.catch((e) => { }); // Disarm the rejection - rejection2.catch((e) => { }); // Disarm the rejection - } - })); - it("resolves values in order when called with the arguments `(true, true)`", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - let sawFirst = false; - let sawSecond = false; - let sawThird = false; - let sawFourth = false; - yield expect(fun_promise_1.default.resolve([ - fun_promise_1.default.try(() => { - expect(sawFirst).toBe(false); - expect(sawSecond).toBe(false); - expect(sawThird).toBe(false); - expect(sawFourth).toBe(false); - sawFirst = true; - return 1; - }), - fun_promise_1.default.try(() => { - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(false); - expect(sawThird).toBe(false); - expect(sawFourth).toBe(false); - sawSecond = true; - return 2; - }), - fun_promise_1.default.try(() => { - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(true); - expect(sawThird).toBe(false); - expect(sawFourth).toBe(false); - sawThird = true; - return 3; - }), - fun_promise_1.default.try(() => { - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(true); - expect(sawThird).toBe(true); - expect(sawFourth).toBe(false); - sawFourth = true; - return 4; - }), - ]).arrayify(true, true)).resolves.toStrictEqual([1, 2, 3, 4]); - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(true); - expect(sawThird).toBe(true); - expect(sawFourth).toBe(true); - })); - }); - describe("all", () => { - lodash_1.default.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - describe("basically works", () => { - lodash_1.default.times(10, (argCount) => { - const simpleArgs = lodash_1.default.times(argCount, (i) => Math.pow(2, i)); - function runAll(args) { - if (staticVersion) { - return fun_promise_1.default.all(args); - } - else { - return fun_promise_1.default.resolve(args).all(); - } - } - it(`for ${argCount} arguments`, () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runAll(simpleArgs)).resolves.toStrictEqual(simpleArgs); - })); - }); - }); - }); - }); - }); - describe("try", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.try(() => true)).resolves.toBe(true); - })); - it("works with one argument", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.try((i) => i, 42)).resolves.toBe(42); - })); - it("explodes properly", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.try(() => Promise.reject("BOOM!"))).rejects.toBe("BOOM!"); - })); - }); - describe("map", () => { - lodash_1.default.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - function runMap(args, mapper) { - if (staticVersion) { - return fun_promise_1.default.map(args, mapper); - } - else { - return fun_promise_1.default.resolve(args).map(mapper); - } - } - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runMap(["Hello", "Goodbye"], (it) => `${it}, World!`)).resolves.toStrictEqual(["Hello, World!", "Goodbye, World!"]); - })); - it("works with some test values", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const defaultValues = [1, 2, 4, 8, 16]; - const defaultMapper = (it) => { - if (Math.random() < 0.5) { - return Promise.resolve(it * 2); - } - else { - return it * 2; - } - }; - yield expect(runMap(defaultValues, defaultMapper)).resolves.toStrictEqual([2, 4, 8, 16, 32]); - })); - }); - }); - }); - describe("Symbol.toStringTag", () => { - it("is the same as the promise passed in", () => { - const promise = new Promise((resolve) => resolve()); - const promiseTag = promise[Symbol.toStringTag]; - expect(promiseTag).not.toBeNil(); - expect(new fun_promise_1.default(promise)[Symbol.toStringTag]).toBe(promiseTag); - }); - }); - describe("finally", () => { - it("returns the same promise when given no arguments", () => { - expect(tokenFunPromise.finally()).toBe(tokenFunPromise); - }); - it("executes on resolution", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - let finallyExecuted = false; - yield expect(fun_promise_1.default.resolve(false).finally(() => { - finallyExecuted = true; - })).resolves.toBe(false); - expect(finallyExecuted).toBe(true); - })); - it("executes on rejection", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - let finallyExecuted = false; - yield expect(fun_promise_1.default.reject("BOOM!").finally(() => { - finallyExecuted = true; - })).rejects.toBe("BOOM!"); - expect(finallyExecuted).toBe(true); - })); - }); - describe("reject", () => { - lodash_1.default.forEach({ static: fun_promise_1.default, instance: tokenFunPromise }, (impl, name) => { - describe(name, () => { - it("rejects correctly", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(impl.reject(true)).rejects.toBe(true); - })); - it("doesn't change the object that is rejected", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const reason = { foo: true, bar: 42 }; - yield expect(impl.reject(reason)).rejects.toBe(reason); - })); - }); - }); - }); - describe("coalesce", () => { - function runCoalesce(args, test) { - return fun_promise_1.default.coalesce(args, test); - } - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runCoalesce([() => null, Promise.resolve(() => true)])).resolves.toBe(true); - })); - it("returns the first resolving value", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runCoalesce([() => fun_promise_1.default.delay(1000).resolve(true), () => false])).resolves.toBe(false); - })); - it("returns the value that passes the test", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runCoalesce([() => 2, () => 4], (it) => it > 2)).resolves.toBe(4); - })); - it("throws the error if nothing passes the test", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runCoalesce([() => Promise.reject("BOOM!"), () => 4], (it) => it > 4)).rejects.toBe("BOOM!"); - })); - it("punts appropriately after the first resolution", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runCoalesce(lodash_1.default.times(3, (idx) => () => idx))).resolves.toBe(0); - })); - }); - describe("delay", () => { - lodash_1.default.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - lodash_1.default.forEach([-1000, -1, 0, 1, 1000], (delayMs) => { - describe(`When requesting a delay of ${delayMs} milliseconds`, () => { - function runDelay(arg) { - if (staticVersion) { - return fun_promise_1.default.delay(delayMs, arg); - } - else { - return fun_promise_1.default.resolve().delay(delayMs, arg); - } - } - describe("basically works", () => { - it("with no arg", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runDelay()).resolves; - })); - it("with one arg", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runDelay(1000)).resolves.toBe(1000); - })); - }); - }); - }); - }); - }); - }); - describe("simplify", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(new fun_promise_1.default(Promise.resolve(Promise.resolve(true))).simplify()).resolves.toBe(true); - })); - }); - describe("filter", () => { - lodash_1.default.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - const defaultValues = [ - 1, - true, - {}, - null, - Promise.resolve(null), - Promise.resolve(), - "Hello, Dolly!", - ]; - const defaultExpect = [1, true, {}, "Hello, Dolly!"]; - const defaultTest = (it) => !lodash_1.default.isNil(it); - function doFilter(values = defaultValues, test = defaultTest) { - if (staticVersion) { - return fun_promise_1.default.filter(values, test); - } - else { - return fun_promise_1.default.resolve(values).filter(test); - } - } - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(doFilter()).resolves.not.toBeEmpty(); - yield expect(doFilter()).resolves.toBeArrayOfSize(4); - })); - }); - }); - }); - describe("flatMap", () => { - lodash_1.default.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - const defaultValues = [ - 1, - true, - {}, - null, - Promise.resolve(null), - Promise.resolve(), - "Hello, Dolly!", - ]; - const defaultMapper = (it) => { - if (lodash_1.default.isNil(it)) { - return []; - } - else { - return [it]; - } - }; - const defaultExpect = [1, true, {}, "Hello, Dolly!"]; - function doFlatMap(values = defaultValues, mapper = defaultMapper) { - if (staticVersion) { - return fun_promise_1.default.flatMap(values, mapper); - } - else { - return fun_promise_1.default.resolve(values).flatMap(mapper); - } - } - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(doFlatMap()).resolves.toStrictEqual(defaultExpect); - })); - }); - }); - }); - describe("tap", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - let sawTap = false; - yield expect(tokenFunPromise.tap((val) => { - expect(val).toBe(true); - sawTap = true; - return false; - })).resolves.toBe(true); - expect(sawTap).toBe(true); - })); - it("rejects if it throws an exception", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - let sawTap = false; - yield expect(tokenFunPromise.tap((val) => { - sawTap = true; - throw "BOOM!"; - })).rejects.toBe("BOOM!"); - expect(sawTap).toBe(true); - })); - }); - describe("fold", () => { - lodash_1.default.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - const defaultValues = [1, 2, 3, 4, 5]; - function doFold(values = defaultValues, initialValue = 0, accumulator = (a, b) => a + b) { - if (staticVersion) { - return fun_promise_1.default.fold(values, initialValue, accumulator); - } - else { - return fun_promise_1.default.resolve(values).fold(initialValue, accumulator); - } - } - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const values = [1, 2, 3, 4, 5]; - yield expect(doFold()).resolves.toBe(1 + 2 + 3 + 4 + 5); - })); - }); - }); - }); - describe("tapCatch", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - let sawTapCatch = false; - yield expect(fun_promise_1.default.reject("BOOM!").tapCatch((e) => { - sawTapCatch = true; - expect(e).toBe("BOOM!"); - return "BANG!"; - })).rejects.toBe("BOOM!"); - expect(sawTapCatch).toBe(true); - })); - it("nests explosions", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - let sawCatch = false; - const err1 = new Error("BOOM!"); - const err2 = new Error("BANG!"); - yield expect(fun_promise_1.default.reject(err1) - .tapCatch((e) => { - throw err2; - }) - .catch((e) => { - sawCatch = true; - expect(e).toBeInstanceOf(ts_nested_error_1.NestedError); - expect(e).toHaveProperty("message", "Error thrown in 'tapCatch'"); - expect(e).toHaveProperty("innerErrors"); - expect(e.innerErrors).toHaveLength(2); - expect(e.innerErrors).toEqual([err1, err2]); - return "Hello!"; - })).resolves.toBe("Hello!"); - expect(sawCatch).toBe(true); - })); - }); - describe("tapEach", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const values = [ - 123, - Promise.resolve(true), - "Hello, Dolly!", - null, - undefined, - ]; - const funPromise = fun_promise_1.default.resolve(values); - let count = 0; - yield expect(funPromise.tapEach(() => { - count++; - })).resolves.toEqual(yield Promise.all(values)); - expect(count).toBe(values.length); - })); - }); - describe("wrapError", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const reason = "BOOM!"; - yield expect(fun_promise_1.default.reject(reason).wrapError("BANG!")).rejects.toHaveProperty("message", "BANG!"); - yield expect(fun_promise_1.default.reject(reason).wrapError("BANG!")).rejects.toHaveProperty("innerError"); - })); - }); - describe("wrapErrors", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const err1 = new Error("BOOM!"); - const err2 = new Error("BANG!"); - yield expect(fun_promise_1.default.resolve([Promise.reject(err1), Promise.reject(err2)]) - .wrapErrors("ERRORS!") - .catch((e) => { - expect(e).toBeInstanceOf(ts_nested_error_1.NestedError); - expect(e).toHaveProperty("message", "ERRORS!"); - expect(e.innerErrors).toHaveLength(2); - expect(e.innerErrors).toEqual([err1, err2]); - return true; - })).resolves.toBe(true); - })); - it("doesn't do anything if there is no error", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const values = [1, 2, 3, true, false, null, undefined]; - yield expect(fun_promise_1.default.resolve(values).wrapErrors("ERRORS!")).resolves.toEqual(values); - })); - }); - describe("cancellation", () => { - it("initially reports not cancelled", () => { - expect(fun_promise_1.default.resolve(true).isCancelled()).toBe(false); - }); - it("reports cancelled after cancel is called", () => { - expect(fun_promise_1.default.resolve(true).cancel().isCancelled()).toBe(true); - }); - it("prevents resolution after cancellation", () => { - let resolver; - let sawResolve = false; - const promise = new Promise((resolve) => { - resolver = resolve; - }).then(() => { - sawResolve = true; - }); - expect(resolver).not.toBeNil(); - const cancelled = new fun_promise_1.default(promise).cancel(); - resolver(true); - expect(sawResolve).toBe(false); - }); - it("prevents rejection after cancellation", () => { - let rejector; - let sawReject = false; - const promise = new Promise((resolve, reject) => { - rejector = reject; - }).catch(() => { - sawReject = true; - }); - expect(rejector).not.toBeNil(); - const cancelled = new fun_promise_1.default(promise).cancel(); - rejector("BOOM!"); - expect(sawReject).toBe(false); - }); - it("prevents rejection when resolving throws after cancellation", () => { - let resolver; - let sawThen = true; - let sawCatch = false; - let doCancel; - const promise = new Promise((resolve) => { - resolver = resolve; - }).then(() => { - sawThen = true; - doCancel(); - throw "BOOM!"; - }); - expect(resolver).not.toBeNil(); - const toCancel = new fun_promise_1.default(promise); - doCancel = () => { - toCancel.cancel(); - }; - toCancel.catch((e) => { - sawCatch = true; - }); - resolver(true); - expect(sawThen).toBe(true); - expect(sawCatch).toBe(false); - }); - }); - describe("simplifyAll", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.resolve("Hello").simplifyAll()).resolves.toEqual([ - "H", - "e", - "l", - "l", - "o", - ]); - })); - it("doesn't explode on an empty list", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.resolve([]).simplifyAll()).resolves.toEqual([]); - })); - }); - describe("settle", () => { - it("basically works for rejections", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.reject("BOOM!").settle()).resolves.toHaveProperty("reason", "BOOM!"); - })); - it("basically works for fulfillments", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.resolve(true).settle()).resolves.toHaveProperty("value", true); - })); - }); - describe("settleAll", () => { - lodash_1.default.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - function doSettleAll(values) { - if (staticVersion) { - return fun_promise_1.default.settleAll(values); - } - else { - return fun_promise_1.default.resolve(values).settleAll(); - } - } - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const values = [ - { in: Promise.resolve(true), out: new types_1.Fulfillment(true) }, - { in: Promise.reject("BOOM!"), out: new types_1.Rejection("BOOM!") }, - { in: Promise.reject(null), out: new types_1.Rejection(null) }, - { in: null, out: new types_1.Fulfillment(null) }, - ]; - yield expect(doSettleAll(lodash_1.default.map(values, "in"))).resolves.toEqual(lodash_1.default.map(values, "out")); - })); - it("doesn't explode on empty lists", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(doSettleAll([])).resolves.toEqual([]); - })); - }); - }); - }); -}); -//# sourceMappingURL=fun-promise.test.js.map \ No newline at end of file diff --git a/dist/es6/cjs/src/fun-promise.test.js.map b/dist/es6/cjs/src/fun-promise.test.js.map deleted file mode 100644 index 57c4acd..0000000 --- a/dist/es6/cjs/src/fun-promise.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"fun-promise.test.js","sourceRoot":"","sources":["../../../../src/fun-promise.test.js"],"names":[],"mappings":"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","sourcesContent":["/** @format */\n\nimport FunPromise from \"./fun-promise\";\nimport _ from \"lodash\";\nimport { NestedError } from \"ts-nested-error\";\nimport { Fulfillment, Rejection } from \"./types\";\n\nconst tokenPromise = new Promise((resolve) => resolve(true));\nconst tokenFunPromise = new FunPromise(tokenPromise);\n\nfunction withRejection(rejectionReason, callback) {\n\tconst rejection = Promise.reject(rejectionReason);\n\ttry {\n\t\treturn callback(rejection);\n\t} finally {\n\t\trejection.catch(_.noop); // Disable uncaught exception issues\n\t}\n}\n\ndescribe(\"FunPromise\", () => {\n\tit(\"can be constructed and resolved\", async () => {\n\t\tawait expect(new FunPromise(tokenPromise)).resolves.toBe(true);\n\t});\n\n\tdescribe(\"resolve/return\", () => {\n\t\t_.forEach(\n\t\t\t{ static: FunPromise, instance: tokenFunPromise },\n\t\t\t(impl, implName) => {\n\t\t\t\t_.forEach([\"resolve\", \"return\"], (methodName) => {\n\t\t\t\t\tdescribe(methodName, () => {\n\t\t\t\t\t\tdescribe(implName, () => {\n\t\t\t\t\t\t\tfunction doResolve(value) {\n\t\t\t\t\t\t\t\treturn impl[methodName](value);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tit(\"rejects when provided a rejection\", async () => {\n\t\t\t\t\t\t\t\tawait expect(doResolve(Promise.reject(\"BOOM!\"))).rejects.toBe(\n\t\t\t\t\t\t\t\t\t\"BOOM!\"\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tit(\"does not resolve the elements of an array\", async () => {\n\t\t\t\t\t\t\t\texpect.hasAssertions();\n\t\t\t\t\t\t\t\tawait withRejection(\"BOOM!\", async (rejection) => {\n\t\t\t\t\t\t\t\t\tawait expect(doResolve([rejection])).resolves.toHaveLength(1);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tdescribe(\"resolves correctly\", () => {\n\t\t\t\t\t\t\t\tit(\"with a value\", async () => {\n\t\t\t\t\t\t\t\t\tawait expect(doResolve(tokenPromise)).resolves.toBe(true);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tit(\"returns the FunPromise if passed a FunPromise\", () => {\n\t\t\t\t\t\t\t\t\texpect(doResolve(tokenFunPromise)).toEqual(tokenFunPromise);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tit(\"without a value\", async () => {\n\t\t\t\t\t\t\t\t\tawait expect(doResolve()).resolves.toBeNil();\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t});\n\n\tdescribe(\"then\", () => {\n\t\tit(\"works without onrejected\", async () => {\n\t\t\tawait expect(tokenFunPromise.then(_.identity)).resolves.toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"catch\", () => {\n\t\tit(\"handles rejections\", async () => {\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise\n\t\t\t\t\t.then(() => Promise.reject(\"BOOM!\"))\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\texpect(e).toBe(\"BOOM!\");\n\t\t\t\t\t\treturn \"DONE!\";\n\t\t\t\t\t})\n\t\t\t).resolves.toBe(\"DONE!\");\n\t\t});\n\n\t\tit(\"returns the error when not passed an argument\", async () => {\n\t\t\tconst error = new Error(\"BOOM!\");\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise.then(() => Promise.reject(error)).catch()\n\t\t\t).resolves.toBe(error);\n\t\t});\n\t});\n\n\tdescribe(\"arrayify\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst value = [1, 2, 3, 4];\n\t\t\tawait expect(FunPromise.resolve(value).arrayify()).resolves.toStrictEqual(\n\t\t\t\tvalue\n\t\t\t);\n\t\t});\n\n\t\tit(\"returns a clone\", async () => {\n\t\t\tconst value = [1, 2, 3, 4];\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve(value)\n\t\t\t\t\t.arrayify()\n\t\t\t\t\t.then((it) => {\n\t\t\t\t\t\tit.pop();\n\t\t\t\t\t\treturn it;\n\t\t\t\t\t})\n\t\t\t).resolves.not.toBe(value);\n\t\t\texpect(value).toHaveLength(4);\n\t\t});\n\n\t\tit(\"does not resolve values when called without an argument\", async () => {\n\t\t\tconst rejection = Promise.reject(\"BOOM!\");\n\t\t\ttry {\n\t\t\t\tawait expect(\n\t\t\t\t\tFunPromise.resolve([1, 2, rejection]).arrayify()\n\t\t\t\t).resolves.toBeArrayOfSize(3);\n\t\t\t} finally {\n\t\t\t\trejection.catch((e) => {}); // Disarm the rejection\n\t\t\t}\n\t\t});\n\n\t\tit(\"resolves values when called with the sole argument `true`\", async () => {\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([\n\t\t\t\t\tPromise.resolve(1),\n\t\t\t\t\tFunPromise.resolve(2),\n\t\t\t\t]).arrayify(true)\n\t\t\t).resolves.toEqual([1, 2]);\n\t\t});\n\n\t\tit(\"rejects values when called with the sole argument `true` and a rejection in the mix\", async () => {\n\t\t\tconst rejection = Promise.reject(\"BOOM!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([1, 2, rejection]).arrayify(true)\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t});\n\n\t\tit(\"rejects values in order when called with the arguments `(true, true)`\", async () => {\n\t\t\tconst rejection1 = Promise.reject(\"BOOM!\");\n\t\t\tconst rejection2 = Promise.reject(\"BANG!\");\n\t\t\ttry {\n\t\t\t\tawait expect(\n\t\t\t\t\tFunPromise.resolve([1, 2, rejection1, rejection2]).arrayify(\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t)\n\t\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\t} finally {\n\t\t\t\trejection1.catch((e) => {}); // Disarm the rejection\n\t\t\t\trejection2.catch((e) => {}); // Disarm the rejection\n\t\t\t}\n\t\t});\n\n\t\tit(\"resolves values in order when called with the arguments `(true, true)`\", async () => {\n\t\t\tlet sawFirst = false;\n\t\t\tlet sawSecond = false;\n\t\t\tlet sawThird = false;\n\t\t\tlet sawFourth = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(false);\n\t\t\t\t\t\texpect(sawSecond).toBe(false);\n\t\t\t\t\t\texpect(sawThird).toBe(false);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawFirst = true;\n\t\t\t\t\t\treturn 1;\n\t\t\t\t\t}),\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(true);\n\t\t\t\t\t\texpect(sawSecond).toBe(false);\n\t\t\t\t\t\texpect(sawThird).toBe(false);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawSecond = true;\n\t\t\t\t\t\treturn 2;\n\t\t\t\t\t}),\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(true);\n\t\t\t\t\t\texpect(sawSecond).toBe(true);\n\t\t\t\t\t\texpect(sawThird).toBe(false);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawThird = true;\n\t\t\t\t\t\treturn 3;\n\t\t\t\t\t}),\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(true);\n\t\t\t\t\t\texpect(sawSecond).toBe(true);\n\t\t\t\t\t\texpect(sawThird).toBe(true);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawFourth = true;\n\t\t\t\t\t\treturn 4;\n\t\t\t\t\t}),\n\t\t\t\t]).arrayify(true, true)\n\t\t\t).resolves.toStrictEqual([1, 2, 3, 4]);\n\t\t\texpect(sawFirst).toBe(true);\n\t\t\texpect(sawSecond).toBe(true);\n\t\t\texpect(sawThird).toBe(true);\n\t\t\texpect(sawFourth).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"all\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tdescribe(\"basically works\", () => {\n\t\t\t\t\t_.times(10, (argCount) => {\n\t\t\t\t\t\tconst simpleArgs = _.times(argCount, (i) => 2 ** i);\n\n\t\t\t\t\t\tfunction runAll(args) {\n\t\t\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\t\t\treturn FunPromise.all(args);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn FunPromise.resolve(args).all();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tit(`for ${argCount} arguments`, async () => {\n\t\t\t\t\t\t\tawait expect(runAll(simpleArgs)).resolves.toStrictEqual(\n\t\t\t\t\t\t\t\tsimpleArgs\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"try\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(FunPromise.try(() => true)).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"works with one argument\", async () => {\n\t\t\tawait expect(FunPromise.try((i) => i, 42)).resolves.toBe(42);\n\t\t});\n\n\t\tit(\"explodes properly\", async () => {\n\t\t\tawait expect(FunPromise.try(() => Promise.reject(\"BOOM!\"))).rejects.toBe(\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"map\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tfunction runMap(args, mapper) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.map(args, mapper);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(args).map(mapper);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tawait expect(\n\t\t\t\t\t\trunMap([\"Hello\", \"Goodbye\"], (it) => `${it}, World!`)\n\t\t\t\t\t).resolves.toStrictEqual([\"Hello, World!\", \"Goodbye, World!\"]);\n\t\t\t\t});\n\n\t\t\t\tit(\"works with some test values\", async () => {\n\t\t\t\t\tconst defaultValues = [1, 2, 4, 8, 16];\n\t\t\t\t\tconst defaultMapper = (it) => {\n\t\t\t\t\t\tif (Math.random() < 0.5) {\n\t\t\t\t\t\t\treturn Promise.resolve(it * 2);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn it * 2;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tawait expect(\n\t\t\t\t\t\trunMap(defaultValues, defaultMapper)\n\t\t\t\t\t).resolves.toStrictEqual([2, 4, 8, 16, 32]);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"Symbol.toStringTag\", () => {\n\t\tit(\"is the same as the promise passed in\", () => {\n\t\t\tconst promise = new Promise((resolve) => resolve());\n\t\t\tconst promiseTag = promise[Symbol.toStringTag];\n\t\t\texpect(promiseTag).not.toBeNil();\n\t\t\texpect(new FunPromise(promise)[Symbol.toStringTag]).toBe(promiseTag);\n\t\t});\n\t});\n\n\tdescribe(\"finally\", () => {\n\t\tit(\"returns the same promise when given no arguments\", () => {\n\t\t\texpect(tokenFunPromise.finally()).toBe(tokenFunPromise);\n\t\t});\n\n\t\tit(\"executes on resolution\", async () => {\n\t\t\tlet finallyExecuted = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve(false).finally(() => {\n\t\t\t\t\tfinallyExecuted = true;\n\t\t\t\t})\n\t\t\t).resolves.toBe(false);\n\t\t\texpect(finallyExecuted).toBe(true);\n\t\t});\n\n\t\tit(\"executes on rejection\", async () => {\n\t\t\tlet finallyExecuted = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(\"BOOM!\").finally(() => {\n\t\t\t\t\tfinallyExecuted = true;\n\t\t\t\t})\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\texpect(finallyExecuted).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"reject\", () => {\n\t\t_.forEach(\n\t\t\t{ static: FunPromise, instance: tokenFunPromise },\n\t\t\t(impl, name) => {\n\t\t\t\tdescribe(name, () => {\n\t\t\t\t\tit(\"rejects correctly\", async () => {\n\t\t\t\t\t\tawait expect(impl.reject(true)).rejects.toBe(true);\n\t\t\t\t\t});\n\n\t\t\t\t\tit(\"doesn't change the object that is rejected\", async () => {\n\t\t\t\t\t\tconst reason = { foo: true, bar: 42 };\n\t\t\t\t\t\tawait expect(impl.reject(reason)).rejects.toBe(reason);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t});\n\n\tdescribe(\"coalesce\", () => {\n\t\tfunction runCoalesce(args, test) {\n\t\t\treturn FunPromise.coalesce(args, test);\n\t\t}\n\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => null, Promise.resolve(() => true)])\n\t\t\t).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"returns the first resolving value\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => FunPromise.delay(1000).resolve(true), () => false])\n\t\t\t).resolves.toBe(false);\n\t\t});\n\n\t\tit(\"returns the value that passes the test\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => 2, () => 4], (it) => it > 2)\n\t\t\t).resolves.toBe(4);\n\t\t});\n\n\t\tit(\"throws the error if nothing passes the test\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => Promise.reject(\"BOOM!\"), () => 4], (it) => it > 4)\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t});\n\n\t\tit(\"punts appropriately after the first resolution\", async () => {\n\t\t\tawait expect(runCoalesce(_.times(3, (idx) => () => idx))).resolves.toBe(\n\t\t\t\t0\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"delay\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\t_.forEach([-1000, -1, 0, 1, 1000], (delayMs) => {\n\t\t\t\t\tdescribe(`When requesting a delay of ${delayMs} milliseconds`, () => {\n\t\t\t\t\t\tfunction runDelay(arg) {\n\t\t\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\t\t\treturn FunPromise.delay(delayMs, arg);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn FunPromise.resolve().delay(delayMs, arg);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdescribe(\"basically works\", () => {\n\t\t\t\t\t\t\tit(\"with no arg\", async () => {\n\t\t\t\t\t\t\t\tawait expect(runDelay()).resolves;\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tit(\"with one arg\", async () => {\n\t\t\t\t\t\t\t\tawait expect(runDelay(1000)).resolves.toBe(1000);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"simplify\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(\n\t\t\t\tnew FunPromise(Promise.resolve(Promise.resolve(true))).simplify()\n\t\t\t).resolves.toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"filter\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tconst defaultValues = [\n\t\t\t\t\t1,\n\t\t\t\t\ttrue,\n\t\t\t\t\t{},\n\t\t\t\t\tnull,\n\t\t\t\t\tPromise.resolve(null),\n\t\t\t\t\tPromise.resolve(),\n\t\t\t\t\t\"Hello, Dolly!\",\n\t\t\t\t];\n\t\t\t\tconst defaultExpect = [1, true, {}, \"Hello, Dolly!\"];\n\t\t\t\tconst defaultTest = (it) => !_.isNil(it);\n\t\t\t\tfunction doFilter(values = defaultValues, test = defaultTest) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.filter(values, test);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).filter(test);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tawait expect(doFilter()).resolves.not.toBeEmpty();\n\t\t\t\t\tawait expect(doFilter()).resolves.toBeArrayOfSize(4);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"flatMap\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tconst defaultValues = [\n\t\t\t\t\t1,\n\t\t\t\t\ttrue,\n\t\t\t\t\t{},\n\t\t\t\t\tnull,\n\t\t\t\t\tPromise.resolve(null),\n\t\t\t\t\tPromise.resolve(),\n\t\t\t\t\t\"Hello, Dolly!\",\n\t\t\t\t];\n\t\t\t\tconst defaultMapper = (it) => {\n\t\t\t\t\tif (_.isNil(it)) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn [it];\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst defaultExpect = [1, true, {}, \"Hello, Dolly!\"];\n\t\t\t\tfunction doFlatMap(values = defaultValues, mapper = defaultMapper) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.flatMap(values, mapper);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).flatMap(mapper);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tawait expect(doFlatMap()).resolves.toStrictEqual(defaultExpect);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"tap\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tlet sawTap = false;\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise.tap((val) => {\n\t\t\t\t\texpect(val).toBe(true);\n\t\t\t\t\tsawTap = true;\n\t\t\t\t\treturn false;\n\t\t\t\t})\n\t\t\t).resolves.toBe(true);\n\t\t\texpect(sawTap).toBe(true);\n\t\t});\n\n\t\tit(\"rejects if it throws an exception\", async () => {\n\t\t\tlet sawTap = false;\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise.tap((val) => {\n\t\t\t\t\tsawTap = true;\n\t\t\t\t\tthrow \"BOOM!\";\n\t\t\t\t})\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\texpect(sawTap).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"fold\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tconst defaultValues = [1, 2, 3, 4, 5];\n\n\t\t\t\tfunction doFold(\n\t\t\t\t\tvalues = defaultValues,\n\t\t\t\t\tinitialValue = 0,\n\t\t\t\t\taccumulator = (a, b) => a + b\n\t\t\t\t) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.fold(values, initialValue, accumulator);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).fold(initialValue, accumulator);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tconst values = [1, 2, 3, 4, 5];\n\t\t\t\t\tawait expect(doFold()).resolves.toBe(1 + 2 + 3 + 4 + 5);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"tapCatch\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tlet sawTapCatch = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(\"BOOM!\").tapCatch((e) => {\n\t\t\t\t\tsawTapCatch = true;\n\t\t\t\t\texpect(e).toBe(\"BOOM!\");\n\t\t\t\t\treturn \"BANG!\";\n\t\t\t\t})\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\texpect(sawTapCatch).toBe(true);\n\t\t});\n\n\t\tit(\"nests explosions\", async () => {\n\t\t\tlet sawCatch = false;\n\t\t\tconst err1 = new Error(\"BOOM!\");\n\t\t\tconst err2 = new Error(\"BANG!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(err1)\n\t\t\t\t\t.tapCatch((e) => {\n\t\t\t\t\t\tthrow err2;\n\t\t\t\t\t})\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\tsawCatch = true;\n\t\t\t\t\t\texpect(e).toBeInstanceOf(NestedError);\n\t\t\t\t\t\texpect(e).toHaveProperty(\"message\", \"Error thrown in 'tapCatch'\");\n\t\t\t\t\t\texpect(e).toHaveProperty(\"innerErrors\");\n\t\t\t\t\t\texpect(e.innerErrors).toHaveLength(2);\n\t\t\t\t\t\texpect(e.innerErrors).toEqual([err1, err2]);\n\t\t\t\t\t\treturn \"Hello!\";\n\t\t\t\t\t})\n\t\t\t).resolves.toBe(\"Hello!\");\n\t\t\texpect(sawCatch).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"tapEach\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst values = [\n\t\t\t\t123,\n\t\t\t\tPromise.resolve(true),\n\t\t\t\t\"Hello, Dolly!\",\n\t\t\t\tnull,\n\t\t\t\tundefined,\n\t\t\t];\n\t\t\tconst funPromise = FunPromise.resolve(values);\n\t\t\tlet count = 0;\n\t\t\tawait expect(\n\t\t\t\tfunPromise.tapEach(() => {\n\t\t\t\t\tcount++;\n\t\t\t\t})\n\t\t\t).resolves.toEqual(await Promise.all(values));\n\t\t\texpect(count).toBe(values.length);\n\t\t});\n\t});\n\n\tdescribe(\"wrapError\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst reason = \"BOOM!\";\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(reason).wrapError(\"BANG!\")\n\t\t\t).rejects.toHaveProperty(\"message\", \"BANG!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(reason).wrapError(\"BANG!\")\n\t\t\t).rejects.toHaveProperty(\"innerError\");\n\t\t});\n\t});\n\n\tdescribe(\"wrapErrors\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst err1 = new Error(\"BOOM!\");\n\t\t\tconst err2 = new Error(\"BANG!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([Promise.reject(err1), Promise.reject(err2)])\n\t\t\t\t\t.wrapErrors(\"ERRORS!\")\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\texpect(e).toBeInstanceOf(NestedError);\n\t\t\t\t\t\texpect(e).toHaveProperty(\"message\", \"ERRORS!\");\n\t\t\t\t\t\texpect(e.innerErrors).toHaveLength(2);\n\t\t\t\t\t\texpect(e.innerErrors).toEqual([err1, err2]);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t})\n\t\t\t).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"doesn't do anything if there is no error\", async () => {\n\t\t\tconst values = [1, 2, 3, true, false, null, undefined];\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve(values).wrapErrors(\"ERRORS!\")\n\t\t\t).resolves.toEqual(values);\n\t\t});\n\t});\n\n\tdescribe(\"cancellation\", () => {\n\t\tit(\"initially reports not cancelled\", () => {\n\t\t\texpect(FunPromise.resolve(true).isCancelled()).toBe(false);\n\t\t});\n\n\t\tit(\"reports cancelled after cancel is called\", () => {\n\t\t\texpect(FunPromise.resolve(true).cancel().isCancelled()).toBe(true);\n\t\t});\n\n\t\tit(\"prevents resolution after cancellation\", () => {\n\t\t\tlet resolver;\n\t\t\tlet sawResolve = false;\n\t\t\tconst promise = new Promise((resolve) => {\n\t\t\t\tresolver = resolve;\n\t\t\t}).then(() => {\n\t\t\t\tsawResolve = true;\n\t\t\t});\n\t\t\texpect(resolver).not.toBeNil();\n\t\t\tconst cancelled = new FunPromise(promise).cancel();\n\t\t\tresolver(true);\n\t\t\texpect(sawResolve).toBe(false);\n\t\t});\n\n\t\tit(\"prevents rejection after cancellation\", () => {\n\t\t\tlet rejector;\n\t\t\tlet sawReject = false;\n\t\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\t\trejector = reject;\n\t\t\t}).catch(() => {\n\t\t\t\tsawReject = true;\n\t\t\t});\n\t\t\texpect(rejector).not.toBeNil();\n\t\t\tconst cancelled = new FunPromise(promise).cancel();\n\t\t\trejector(\"BOOM!\");\n\t\t\texpect(sawReject).toBe(false);\n\t\t});\n\n\t\tit(\"prevents rejection when resolving throws after cancellation\", () => {\n\t\t\tlet resolver;\n\t\t\tlet sawThen = true;\n\t\t\tlet sawCatch = false;\n\t\t\tlet doCancel;\n\t\t\tconst promise = new Promise((resolve) => {\n\t\t\t\tresolver = resolve;\n\t\t\t}).then(() => {\n\t\t\t\tsawThen = true;\n\t\t\t\tdoCancel();\n\t\t\t\tthrow \"BOOM!\";\n\t\t\t});\n\t\t\texpect(resolver).not.toBeNil();\n\t\t\tconst toCancel = new FunPromise(promise);\n\t\t\tdoCancel = () => {\n\t\t\t\ttoCancel.cancel();\n\t\t\t};\n\t\t\ttoCancel.catch((e) => {\n\t\t\t\tsawCatch = true;\n\t\t\t});\n\t\t\tresolver(true);\n\t\t\texpect(sawThen).toBe(true);\n\t\t\texpect(sawCatch).toBe(false);\n\t\t});\n\t});\n\n\tdescribe(\"simplifyAll\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(FunPromise.resolve(\"Hello\").simplifyAll()).resolves.toEqual([\n\t\t\t\t\"H\",\n\t\t\t\t\"e\",\n\t\t\t\t\"l\",\n\t\t\t\t\"l\",\n\t\t\t\t\"o\",\n\t\t\t]);\n\t\t});\n\n\t\tit(\"doesn't explode on an empty list\", async () => {\n\t\t\tawait expect(FunPromise.resolve([]).simplifyAll()).resolves.toEqual([]);\n\t\t});\n\t});\n\n\tdescribe(\"settle\", () => {\n\t\tit(\"basically works for rejections\", async () => {\n\t\t\tawait expect(FunPromise.reject(\"BOOM!\").settle()).resolves.toHaveProperty(\n\t\t\t\t\"reason\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\n\t\tit(\"basically works for fulfillments\", async () => {\n\t\t\tawait expect(FunPromise.resolve(true).settle()).resolves.toHaveProperty(\n\t\t\t\t\"value\",\n\t\t\t\ttrue\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"settleAll\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tfunction doSettleAll(values) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.settleAll(values);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).settleAll();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tconst values = [\n\t\t\t\t\t\t{ in: Promise.resolve(true), out: new Fulfillment(true) },\n\t\t\t\t\t\t{ in: Promise.reject(\"BOOM!\"), out: new Rejection(\"BOOM!\") },\n\t\t\t\t\t\t{ in: Promise.reject(null), out: new Rejection(null) },\n\t\t\t\t\t\t{ in: null, out: new Fulfillment(null) },\n\t\t\t\t\t];\n\t\t\t\t\tawait expect(doSettleAll(_.map(values, \"in\"))).resolves.toEqual(\n\t\t\t\t\t\t_.map(values, \"out\")\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\tit(\"doesn't explode on empty lists\", async () => {\n\t\t\t\t\tawait expect(doSettleAll([])).resolves.toEqual([]);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n});\n"]} \ No newline at end of file diff --git a/dist/es6/cjs/src/types.test.d.ts b/dist/es6/cjs/src/types.test.d.ts deleted file mode 100644 index 961011c..0000000 --- a/dist/es6/cjs/src/types.test.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=types.test.d.ts.map \ No newline at end of file diff --git a/dist/es6/cjs/src/types.test.d.ts.map b/dist/es6/cjs/src/types.test.d.ts.map deleted file mode 100644 index 87481cd..0000000 --- a/dist/es6/cjs/src/types.test.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../../../src/types.test.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/es6/cjs/src/types.test.js b/dist/es6/cjs/src/types.test.js deleted file mode 100644 index 56bd0a8..0000000 --- a/dist/es6/cjs/src/types.test.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -/** @format */ -Object.defineProperty(exports, "__esModule", { value: true }); -const types_1 = require("./types"); -const lodash_1 = require("lodash"); -describe("Fulfillment", () => { - lodash_1.default.forEach([true, { foo: true }], (arg) => { - describe(`when passed the ${typeof arg} argument '${JSON.stringify(arg)}'`, () => { - const fulfillment = new types_1.Fulfillment(arg); - it("exposes the argument on the 'value' property", () => { - expect(fulfillment).toHaveProperty("value", arg); - }); - it("has a 'status' property of 'fulfilled'", () => { - expect(fulfillment).toHaveProperty("status", "fulfilled"); - }); - }); - }); -}); -describe("Rejection", () => { - lodash_1.default.forEach(["BOOM!", new Error("BOOM!")], (arg) => { - describe(`when passed the ${typeof arg} argument: '${arg}'`, () => { - const rejection = new types_1.Rejection(arg); - it("returns the argument in the 'reason' property", () => { - expect(rejection).toHaveProperty("reason", arg); - }); - it("has a 'status' property whose value is 'rejected'", () => { - expect(rejection).toHaveProperty("status", "rejected"); - }); - }); - }); -}); -//# sourceMappingURL=types.test.js.map \ No newline at end of file diff --git a/dist/es6/cjs/src/types.test.js.map b/dist/es6/cjs/src/types.test.js.map deleted file mode 100644 index cd456f4..0000000 --- a/dist/es6/cjs/src/types.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../../../src/types.test.js"],"names":[],"mappings":";AAAA,cAAc;;AAEd,mCAAiD;AACjD,mCAAuB;AAEvB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC5B,gBAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;QACxC,QAAQ,CAAC,mBAAmB,OAAO,GAAG,cAAc,IAAI,CAAC,SAAS,CACjE,GAAG,CACH,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,WAAW,GAAG,IAAI,mBAAW,CAAC,GAAG,CAAC,CAAC;YAEzC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;gBACvD,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;gBACjD,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,gBAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;QAChD,QAAQ,CAAC,mBAAmB,OAAO,GAAG,eAAe,GAAG,GAAG,EAAE,GAAG,EAAE;YACjE,MAAM,SAAS,GAAG,IAAI,iBAAS,CAAC,GAAG,CAAC,CAAC;YAErC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;gBACxD,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;gBAC5D,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["/** @format */\n\nimport { Fulfillment, Rejection } from \"./types\";\nimport _ from \"lodash\";\n\ndescribe(\"Fulfillment\", () => {\n\t_.forEach([true, { foo: true }], (arg) => {\n\t\tdescribe(`when passed the ${typeof arg} argument '${JSON.stringify(\n\t\t\targ\n\t\t)}'`, () => {\n\t\t\tconst fulfillment = new Fulfillment(arg);\n\n\t\t\tit(\"exposes the argument on the 'value' property\", () => {\n\t\t\t\texpect(fulfillment).toHaveProperty(\"value\", arg);\n\t\t\t});\n\n\t\t\tit(\"has a 'status' property of 'fulfilled'\", () => {\n\t\t\t\texpect(fulfillment).toHaveProperty(\"status\", \"fulfilled\");\n\t\t\t});\n\t\t});\n\t});\n});\n\ndescribe(\"Rejection\", () => {\n\t_.forEach([\"BOOM!\", new Error(\"BOOM!\")], (arg) => {\n\t\tdescribe(`when passed the ${typeof arg} argument: '${arg}'`, () => {\n\t\t\tconst rejection = new Rejection(arg);\n\n\t\t\tit(\"returns the argument in the 'reason' property\", () => {\n\t\t\t\texpect(rejection).toHaveProperty(\"reason\", arg);\n\t\t\t});\n\n\t\t\tit(\"has a 'status' property whose value is 'rejected'\", () => {\n\t\t\t\texpect(rejection).toHaveProperty(\"status\", \"rejected\");\n\t\t\t});\n\t\t});\n\t});\n});\n"]} \ No newline at end of file diff --git a/dist/es6/esm/src/deferral.test.d.ts b/dist/es6/esm/src/deferral.test.d.ts deleted file mode 100644 index 4c655ce..0000000 --- a/dist/es6/esm/src/deferral.test.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=deferral.test.d.ts.map \ No newline at end of file diff --git a/dist/es6/esm/src/deferral.test.d.ts.map b/dist/es6/esm/src/deferral.test.d.ts.map deleted file mode 100644 index 1e43120..0000000 --- a/dist/es6/esm/src/deferral.test.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"deferral.test.d.ts","sourceRoot":"","sources":["../../../../src/deferral.test.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/es6/esm/src/deferral.test.js b/dist/es6/esm/src/deferral.test.js deleted file mode 100644 index ca92d42..0000000 --- a/dist/es6/esm/src/deferral.test.js +++ /dev/null @@ -1,42 +0,0 @@ -/** @format */ -import { __awaiter } from "tslib"; -import FunPromise from "./fun-promise"; -import Deferral from "./deferral"; -import "./types"; -import "lodash"; -describe("Deferral", () => { - it("can be constructed", () => { - const deferral = new Deferral(); - expect(deferral).not.toBeNil(); - }); - describe("promise", () => { - it("is a FunPromise", () => { - const deferral = new Deferral(); - expect(deferral.promise).toBeInstanceOf(FunPromise); - }); - }); - describe("resolve", () => { - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - const deferral = new Deferral(); - deferral.resolve(true); - yield expect(deferral.resolve(true)).resolves.toBe(true); - })); - it("does not change resolved value if called multiple times", () => __awaiter(void 0, void 0, void 0, function* () { - const deferral = new Deferral(); - yield expect(deferral.resolve(true)).resolves.toBe(true); - yield expect(deferral.resolve(false)).resolves.toBe(true); - })); - }); - describe("reject", () => { - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - const deferral = new Deferral(); - yield expect(deferral.reject(new Error("BOOM!"))).rejects.toHaveProperty("message", "BOOM!"); - })); - it("does not change reason if called multiple times", () => __awaiter(void 0, void 0, void 0, function* () { - const deferral = new Deferral(); - yield expect(deferral.reject(new Error("BOOM!"))).rejects.toHaveProperty("message", "BOOM!"); - yield expect(deferral.reject(new Error("BANG!"))).rejects.toHaveProperty("message", "BOOM!"); - })); - }); -}); -//# sourceMappingURL=deferral.test.js.map \ No newline at end of file diff --git a/dist/es6/esm/src/deferral.test.js.map b/dist/es6/esm/src/deferral.test.js.map deleted file mode 100644 index f916d4d..0000000 --- a/dist/es6/esm/src/deferral.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"deferral.test.js","sourceRoot":"","sources":["../../../../src/deferral.test.js"],"names":[],"mappings":"AAAA,cAAc;;AAEd,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAA6B,SAAS,CAAC;AACvC,OAAc,QAAQ,CAAC;AAEvB,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC7B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;YAC1B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,iBAAiB,EAAE,GAAS,EAAE;YAChC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAS,EAAE;YACxE,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC,CAAA,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,iBAAiB,EAAE,GAAS,EAAE;YAChC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CACvE,SAAS,EACT,OAAO,CACP,CAAC;QACH,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAS,EAAE;YAChE,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CACvE,SAAS,EACT,OAAO,CACP,CAAC;YACF,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CACvE,SAAS,EACT,OAAO,CACP,CAAC;QACH,CAAC,CAAA,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["/** @format */\n\nimport FunPromise from \"./fun-promise\";\nimport Deferral from \"./deferral\";\nimport { PromiseState } from \"./types\";\nimport _ from \"lodash\";\n\ndescribe(\"Deferral\", () => {\n\tit(\"can be constructed\", () => {\n\t\tconst deferral = new Deferral();\n\t\texpect(deferral).not.toBeNil();\n\t});\n\n\tdescribe(\"promise\", () => {\n\t\tit(\"is a FunPromise\", () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\texpect(deferral.promise).toBeInstanceOf(FunPromise);\n\t\t});\n\t});\n\n\tdescribe(\"resolve\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tdeferral.resolve(true);\n\t\t\tawait expect(deferral.resolve(true)).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"does not change resolved value if called multiple times\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tawait expect(deferral.resolve(true)).resolves.toBe(true);\n\t\t\tawait expect(deferral.resolve(false)).resolves.toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"reject\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tawait expect(deferral.reject(new Error(\"BOOM!\"))).rejects.toHaveProperty(\n\t\t\t\t\"message\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\n\t\tit(\"does not change reason if called multiple times\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tawait expect(deferral.reject(new Error(\"BOOM!\"))).rejects.toHaveProperty(\n\t\t\t\t\"message\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t\tawait expect(deferral.reject(new Error(\"BANG!\"))).rejects.toHaveProperty(\n\t\t\t\t\"message\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\t});\n});\n"]} \ No newline at end of file diff --git a/dist/es6/esm/src/fun-promise.test.d.ts b/dist/es6/esm/src/fun-promise.test.d.ts deleted file mode 100644 index 597914a..0000000 --- a/dist/es6/esm/src/fun-promise.test.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=fun-promise.test.d.ts.map \ No newline at end of file diff --git a/dist/es6/esm/src/fun-promise.test.d.ts.map b/dist/es6/esm/src/fun-promise.test.d.ts.map deleted file mode 100644 index e2ecf9b..0000000 --- a/dist/es6/esm/src/fun-promise.test.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"fun-promise.test.d.ts","sourceRoot":"","sources":["../../../../src/fun-promise.test.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/es6/esm/src/fun-promise.test.js b/dist/es6/esm/src/fun-promise.test.js deleted file mode 100644 index d2bc230..0000000 --- a/dist/es6/esm/src/fun-promise.test.js +++ /dev/null @@ -1,599 +0,0 @@ -/** @format */ -import { __awaiter } from "tslib"; -import FunPromise from "./fun-promise"; -import _ from "lodash"; -import { NestedError } from "ts-nested-error"; -import { Fulfillment, Rejection } from "./types"; -const tokenPromise = new Promise((resolve) => resolve(true)); -const tokenFunPromise = new FunPromise(tokenPromise); -function withRejection(rejectionReason, callback) { - const rejection = Promise.reject(rejectionReason); - try { - return callback(rejection); - } - finally { - rejection.catch(_.noop); // Disable uncaught exception issues - } -} -describe("FunPromise", () => { - it("can be constructed and resolved", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(new FunPromise(tokenPromise)).resolves.toBe(true); - })); - describe("resolve/return", () => { - _.forEach({ static: FunPromise, instance: tokenFunPromise }, (impl, implName) => { - _.forEach(["resolve", "return"], (methodName) => { - describe(methodName, () => { - describe(implName, () => { - function doResolve(value) { - return impl[methodName](value); - } - it("rejects when provided a rejection", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(doResolve(Promise.reject("BOOM!"))).rejects.toBe("BOOM!"); - })); - it("does not resolve the elements of an array", () => __awaiter(void 0, void 0, void 0, function* () { - expect.hasAssertions(); - yield withRejection("BOOM!", (rejection) => __awaiter(void 0, void 0, void 0, function* () { - yield expect(doResolve([rejection])).resolves.toHaveLength(1); - })); - })); - describe("resolves correctly", () => { - it("with a value", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(doResolve(tokenPromise)).resolves.toBe(true); - })); - it("returns the FunPromise if passed a FunPromise", () => { - expect(doResolve(tokenFunPromise)).toEqual(tokenFunPromise); - }); - it("without a value", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(doResolve()).resolves.toBeNil(); - })); - }); - }); - }); - }); - }); - }); - describe("then", () => { - it("works without onrejected", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(tokenFunPromise.then(_.identity)).resolves.toBe(true); - })); - }); - describe("catch", () => { - it("handles rejections", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(tokenFunPromise - .then(() => Promise.reject("BOOM!")) - .catch((e) => { - expect(e).toBe("BOOM!"); - return "DONE!"; - })).resolves.toBe("DONE!"); - })); - it("returns the error when not passed an argument", () => __awaiter(void 0, void 0, void 0, function* () { - const error = new Error("BOOM!"); - yield expect(tokenFunPromise.then(() => Promise.reject(error)).catch()).resolves.toBe(error); - })); - }); - describe("arrayify", () => { - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - const value = [1, 2, 3, 4]; - yield expect(FunPromise.resolve(value).arrayify()).resolves.toStrictEqual(value); - })); - it("returns a clone", () => __awaiter(void 0, void 0, void 0, function* () { - const value = [1, 2, 3, 4]; - yield expect(FunPromise.resolve(value) - .arrayify() - .then((it) => { - it.pop(); - return it; - })).resolves.not.toBe(value); - expect(value).toHaveLength(4); - })); - it("does not resolve values when called without an argument", () => __awaiter(void 0, void 0, void 0, function* () { - const rejection = Promise.reject("BOOM!"); - try { - yield expect(FunPromise.resolve([1, 2, rejection]).arrayify()).resolves.toBeArrayOfSize(3); - } - finally { - rejection.catch((e) => { }); // Disarm the rejection - } - })); - it("resolves values when called with the sole argument `true`", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(FunPromise.resolve([ - Promise.resolve(1), - FunPromise.resolve(2), - ]).arrayify(true)).resolves.toEqual([1, 2]); - })); - it("rejects values when called with the sole argument `true` and a rejection in the mix", () => __awaiter(void 0, void 0, void 0, function* () { - const rejection = Promise.reject("BOOM!"); - yield expect(FunPromise.resolve([1, 2, rejection]).arrayify(true)).rejects.toBe("BOOM!"); - })); - it("rejects values in order when called with the arguments `(true, true)`", () => __awaiter(void 0, void 0, void 0, function* () { - const rejection1 = Promise.reject("BOOM!"); - const rejection2 = Promise.reject("BANG!"); - try { - yield expect(FunPromise.resolve([1, 2, rejection1, rejection2]).arrayify(true, true)).rejects.toBe("BOOM!"); - } - finally { - rejection1.catch((e) => { }); // Disarm the rejection - rejection2.catch((e) => { }); // Disarm the rejection - } - })); - it("resolves values in order when called with the arguments `(true, true)`", () => __awaiter(void 0, void 0, void 0, function* () { - let sawFirst = false; - let sawSecond = false; - let sawThird = false; - let sawFourth = false; - yield expect(FunPromise.resolve([ - FunPromise.try(() => { - expect(sawFirst).toBe(false); - expect(sawSecond).toBe(false); - expect(sawThird).toBe(false); - expect(sawFourth).toBe(false); - sawFirst = true; - return 1; - }), - FunPromise.try(() => { - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(false); - expect(sawThird).toBe(false); - expect(sawFourth).toBe(false); - sawSecond = true; - return 2; - }), - FunPromise.try(() => { - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(true); - expect(sawThird).toBe(false); - expect(sawFourth).toBe(false); - sawThird = true; - return 3; - }), - FunPromise.try(() => { - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(true); - expect(sawThird).toBe(true); - expect(sawFourth).toBe(false); - sawFourth = true; - return 4; - }), - ]).arrayify(true, true)).resolves.toStrictEqual([1, 2, 3, 4]); - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(true); - expect(sawThird).toBe(true); - expect(sawFourth).toBe(true); - })); - }); - describe("all", () => { - _.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - describe("basically works", () => { - _.times(10, (argCount) => { - const simpleArgs = _.times(argCount, (i) => Math.pow(2, i)); - function runAll(args) { - if (staticVersion) { - return FunPromise.all(args); - } - else { - return FunPromise.resolve(args).all(); - } - } - it(`for ${argCount} arguments`, () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(runAll(simpleArgs)).resolves.toStrictEqual(simpleArgs); - })); - }); - }); - }); - }); - }); - describe("try", () => { - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(FunPromise.try(() => true)).resolves.toBe(true); - })); - it("works with one argument", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(FunPromise.try((i) => i, 42)).resolves.toBe(42); - })); - it("explodes properly", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(FunPromise.try(() => Promise.reject("BOOM!"))).rejects.toBe("BOOM!"); - })); - }); - describe("map", () => { - _.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - function runMap(args, mapper) { - if (staticVersion) { - return FunPromise.map(args, mapper); - } - else { - return FunPromise.resolve(args).map(mapper); - } - } - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(runMap(["Hello", "Goodbye"], (it) => `${it}, World!`)).resolves.toStrictEqual(["Hello, World!", "Goodbye, World!"]); - })); - it("works with some test values", () => __awaiter(void 0, void 0, void 0, function* () { - const defaultValues = [1, 2, 4, 8, 16]; - const defaultMapper = (it) => { - if (Math.random() < 0.5) { - return Promise.resolve(it * 2); - } - else { - return it * 2; - } - }; - yield expect(runMap(defaultValues, defaultMapper)).resolves.toStrictEqual([2, 4, 8, 16, 32]); - })); - }); - }); - }); - describe("Symbol.toStringTag", () => { - it("is the same as the promise passed in", () => { - const promise = new Promise((resolve) => resolve()); - const promiseTag = promise[Symbol.toStringTag]; - expect(promiseTag).not.toBeNil(); - expect(new FunPromise(promise)[Symbol.toStringTag]).toBe(promiseTag); - }); - }); - describe("finally", () => { - it("returns the same promise when given no arguments", () => { - expect(tokenFunPromise.finally()).toBe(tokenFunPromise); - }); - it("executes on resolution", () => __awaiter(void 0, void 0, void 0, function* () { - let finallyExecuted = false; - yield expect(FunPromise.resolve(false).finally(() => { - finallyExecuted = true; - })).resolves.toBe(false); - expect(finallyExecuted).toBe(true); - })); - it("executes on rejection", () => __awaiter(void 0, void 0, void 0, function* () { - let finallyExecuted = false; - yield expect(FunPromise.reject("BOOM!").finally(() => { - finallyExecuted = true; - })).rejects.toBe("BOOM!"); - expect(finallyExecuted).toBe(true); - })); - }); - describe("reject", () => { - _.forEach({ static: FunPromise, instance: tokenFunPromise }, (impl, name) => { - describe(name, () => { - it("rejects correctly", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(impl.reject(true)).rejects.toBe(true); - })); - it("doesn't change the object that is rejected", () => __awaiter(void 0, void 0, void 0, function* () { - const reason = { foo: true, bar: 42 }; - yield expect(impl.reject(reason)).rejects.toBe(reason); - })); - }); - }); - }); - describe("coalesce", () => { - function runCoalesce(args, test) { - return FunPromise.coalesce(args, test); - } - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(runCoalesce([() => null, Promise.resolve(() => true)])).resolves.toBe(true); - })); - it("returns the first resolving value", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(runCoalesce([() => FunPromise.delay(1000).resolve(true), () => false])).resolves.toBe(false); - })); - it("returns the value that passes the test", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(runCoalesce([() => 2, () => 4], (it) => it > 2)).resolves.toBe(4); - })); - it("throws the error if nothing passes the test", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(runCoalesce([() => Promise.reject("BOOM!"), () => 4], (it) => it > 4)).rejects.toBe("BOOM!"); - })); - it("punts appropriately after the first resolution", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(runCoalesce(_.times(3, (idx) => () => idx))).resolves.toBe(0); - })); - }); - describe("delay", () => { - _.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - _.forEach([-1000, -1, 0, 1, 1000], (delayMs) => { - describe(`When requesting a delay of ${delayMs} milliseconds`, () => { - function runDelay(arg) { - if (staticVersion) { - return FunPromise.delay(delayMs, arg); - } - else { - return FunPromise.resolve().delay(delayMs, arg); - } - } - describe("basically works", () => { - it("with no arg", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(runDelay()).resolves; - })); - it("with one arg", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(runDelay(1000)).resolves.toBe(1000); - })); - }); - }); - }); - }); - }); - }); - describe("simplify", () => { - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(new FunPromise(Promise.resolve(Promise.resolve(true))).simplify()).resolves.toBe(true); - })); - }); - describe("filter", () => { - _.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - const defaultValues = [ - 1, - true, - {}, - null, - Promise.resolve(null), - Promise.resolve(), - "Hello, Dolly!", - ]; - const defaultExpect = [1, true, {}, "Hello, Dolly!"]; - const defaultTest = (it) => !_.isNil(it); - function doFilter(values = defaultValues, test = defaultTest) { - if (staticVersion) { - return FunPromise.filter(values, test); - } - else { - return FunPromise.resolve(values).filter(test); - } - } - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(doFilter()).resolves.not.toBeEmpty(); - yield expect(doFilter()).resolves.toBeArrayOfSize(4); - })); - }); - }); - }); - describe("flatMap", () => { - _.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - const defaultValues = [ - 1, - true, - {}, - null, - Promise.resolve(null), - Promise.resolve(), - "Hello, Dolly!", - ]; - const defaultMapper = (it) => { - if (_.isNil(it)) { - return []; - } - else { - return [it]; - } - }; - const defaultExpect = [1, true, {}, "Hello, Dolly!"]; - function doFlatMap(values = defaultValues, mapper = defaultMapper) { - if (staticVersion) { - return FunPromise.flatMap(values, mapper); - } - else { - return FunPromise.resolve(values).flatMap(mapper); - } - } - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(doFlatMap()).resolves.toStrictEqual(defaultExpect); - })); - }); - }); - }); - describe("tap", () => { - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - let sawTap = false; - yield expect(tokenFunPromise.tap((val) => { - expect(val).toBe(true); - sawTap = true; - return false; - })).resolves.toBe(true); - expect(sawTap).toBe(true); - })); - it("rejects if it throws an exception", () => __awaiter(void 0, void 0, void 0, function* () { - let sawTap = false; - yield expect(tokenFunPromise.tap((val) => { - sawTap = true; - throw "BOOM!"; - })).rejects.toBe("BOOM!"); - expect(sawTap).toBe(true); - })); - }); - describe("fold", () => { - _.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - const defaultValues = [1, 2, 3, 4, 5]; - function doFold(values = defaultValues, initialValue = 0, accumulator = (a, b) => a + b) { - if (staticVersion) { - return FunPromise.fold(values, initialValue, accumulator); - } - else { - return FunPromise.resolve(values).fold(initialValue, accumulator); - } - } - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - const values = [1, 2, 3, 4, 5]; - yield expect(doFold()).resolves.toBe(1 + 2 + 3 + 4 + 5); - })); - }); - }); - }); - describe("tapCatch", () => { - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - let sawTapCatch = false; - yield expect(FunPromise.reject("BOOM!").tapCatch((e) => { - sawTapCatch = true; - expect(e).toBe("BOOM!"); - return "BANG!"; - })).rejects.toBe("BOOM!"); - expect(sawTapCatch).toBe(true); - })); - it("nests explosions", () => __awaiter(void 0, void 0, void 0, function* () { - let sawCatch = false; - const err1 = new Error("BOOM!"); - const err2 = new Error("BANG!"); - yield expect(FunPromise.reject(err1) - .tapCatch((e) => { - throw err2; - }) - .catch((e) => { - sawCatch = true; - expect(e).toBeInstanceOf(NestedError); - expect(e).toHaveProperty("message", "Error thrown in 'tapCatch'"); - expect(e).toHaveProperty("innerErrors"); - expect(e.innerErrors).toHaveLength(2); - expect(e.innerErrors).toEqual([err1, err2]); - return "Hello!"; - })).resolves.toBe("Hello!"); - expect(sawCatch).toBe(true); - })); - }); - describe("tapEach", () => { - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - const values = [ - 123, - Promise.resolve(true), - "Hello, Dolly!", - null, - undefined, - ]; - const funPromise = FunPromise.resolve(values); - let count = 0; - yield expect(funPromise.tapEach(() => { - count++; - })).resolves.toEqual(yield Promise.all(values)); - expect(count).toBe(values.length); - })); - }); - describe("wrapError", () => { - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - const reason = "BOOM!"; - yield expect(FunPromise.reject(reason).wrapError("BANG!")).rejects.toHaveProperty("message", "BANG!"); - yield expect(FunPromise.reject(reason).wrapError("BANG!")).rejects.toHaveProperty("innerError"); - })); - }); - describe("wrapErrors", () => { - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - const err1 = new Error("BOOM!"); - const err2 = new Error("BANG!"); - yield expect(FunPromise.resolve([Promise.reject(err1), Promise.reject(err2)]) - .wrapErrors("ERRORS!") - .catch((e) => { - expect(e).toBeInstanceOf(NestedError); - expect(e).toHaveProperty("message", "ERRORS!"); - expect(e.innerErrors).toHaveLength(2); - expect(e.innerErrors).toEqual([err1, err2]); - return true; - })).resolves.toBe(true); - })); - it("doesn't do anything if there is no error", () => __awaiter(void 0, void 0, void 0, function* () { - const values = [1, 2, 3, true, false, null, undefined]; - yield expect(FunPromise.resolve(values).wrapErrors("ERRORS!")).resolves.toEqual(values); - })); - }); - describe("cancellation", () => { - it("initially reports not cancelled", () => { - expect(FunPromise.resolve(true).isCancelled()).toBe(false); - }); - it("reports cancelled after cancel is called", () => { - expect(FunPromise.resolve(true).cancel().isCancelled()).toBe(true); - }); - it("prevents resolution after cancellation", () => { - let resolver; - let sawResolve = false; - const promise = new Promise((resolve) => { - resolver = resolve; - }).then(() => { - sawResolve = true; - }); - expect(resolver).not.toBeNil(); - const cancelled = new FunPromise(promise).cancel(); - resolver(true); - expect(sawResolve).toBe(false); - }); - it("prevents rejection after cancellation", () => { - let rejector; - let sawReject = false; - const promise = new Promise((resolve, reject) => { - rejector = reject; - }).catch(() => { - sawReject = true; - }); - expect(rejector).not.toBeNil(); - const cancelled = new FunPromise(promise).cancel(); - rejector("BOOM!"); - expect(sawReject).toBe(false); - }); - it("prevents rejection when resolving throws after cancellation", () => { - let resolver; - let sawThen = true; - let sawCatch = false; - let doCancel; - const promise = new Promise((resolve) => { - resolver = resolve; - }).then(() => { - sawThen = true; - doCancel(); - throw "BOOM!"; - }); - expect(resolver).not.toBeNil(); - const toCancel = new FunPromise(promise); - doCancel = () => { - toCancel.cancel(); - }; - toCancel.catch((e) => { - sawCatch = true; - }); - resolver(true); - expect(sawThen).toBe(true); - expect(sawCatch).toBe(false); - }); - }); - describe("simplifyAll", () => { - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(FunPromise.resolve("Hello").simplifyAll()).resolves.toEqual([ - "H", - "e", - "l", - "l", - "o", - ]); - })); - it("doesn't explode on an empty list", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(FunPromise.resolve([]).simplifyAll()).resolves.toEqual([]); - })); - }); - describe("settle", () => { - it("basically works for rejections", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(FunPromise.reject("BOOM!").settle()).resolves.toHaveProperty("reason", "BOOM!"); - })); - it("basically works for fulfillments", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(FunPromise.resolve(true).settle()).resolves.toHaveProperty("value", true); - })); - }); - describe("settleAll", () => { - _.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - function doSettleAll(values) { - if (staticVersion) { - return FunPromise.settleAll(values); - } - else { - return FunPromise.resolve(values).settleAll(); - } - } - it("basically works", () => __awaiter(void 0, void 0, void 0, function* () { - const values = [ - { in: Promise.resolve(true), out: new Fulfillment(true) }, - { in: Promise.reject("BOOM!"), out: new Rejection("BOOM!") }, - { in: Promise.reject(null), out: new Rejection(null) }, - { in: null, out: new Fulfillment(null) }, - ]; - yield expect(doSettleAll(_.map(values, "in"))).resolves.toEqual(_.map(values, "out")); - })); - it("doesn't explode on empty lists", () => __awaiter(void 0, void 0, void 0, function* () { - yield expect(doSettleAll([])).resolves.toEqual([]); - })); - }); - }); - }); -}); -//# sourceMappingURL=fun-promise.test.js.map \ No newline at end of file diff --git a/dist/es6/esm/src/fun-promise.test.js.map b/dist/es6/esm/src/fun-promise.test.js.map deleted file mode 100644 index ae0c7f4..0000000 --- a/dist/es6/esm/src/fun-promise.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"fun-promise.test.js","sourceRoot":"","sources":["../../../../src/fun-promise.test.js"],"names":[],"mappings":"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","sourcesContent":["/** @format */\n\nimport FunPromise from \"./fun-promise\";\nimport _ from \"lodash\";\nimport { NestedError } from \"ts-nested-error\";\nimport { Fulfillment, Rejection } from \"./types\";\n\nconst tokenPromise = new Promise((resolve) => resolve(true));\nconst tokenFunPromise = new FunPromise(tokenPromise);\n\nfunction withRejection(rejectionReason, callback) {\n\tconst rejection = Promise.reject(rejectionReason);\n\ttry {\n\t\treturn callback(rejection);\n\t} finally {\n\t\trejection.catch(_.noop); // Disable uncaught exception issues\n\t}\n}\n\ndescribe(\"FunPromise\", () => {\n\tit(\"can be constructed and resolved\", async () => {\n\t\tawait expect(new FunPromise(tokenPromise)).resolves.toBe(true);\n\t});\n\n\tdescribe(\"resolve/return\", () => {\n\t\t_.forEach(\n\t\t\t{ static: FunPromise, instance: tokenFunPromise },\n\t\t\t(impl, implName) => {\n\t\t\t\t_.forEach([\"resolve\", \"return\"], (methodName) => {\n\t\t\t\t\tdescribe(methodName, () => {\n\t\t\t\t\t\tdescribe(implName, () => {\n\t\t\t\t\t\t\tfunction doResolve(value) {\n\t\t\t\t\t\t\t\treturn impl[methodName](value);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tit(\"rejects when provided a rejection\", async () => {\n\t\t\t\t\t\t\t\tawait expect(doResolve(Promise.reject(\"BOOM!\"))).rejects.toBe(\n\t\t\t\t\t\t\t\t\t\"BOOM!\"\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tit(\"does not resolve the elements of an array\", async () => {\n\t\t\t\t\t\t\t\texpect.hasAssertions();\n\t\t\t\t\t\t\t\tawait withRejection(\"BOOM!\", async (rejection) => {\n\t\t\t\t\t\t\t\t\tawait expect(doResolve([rejection])).resolves.toHaveLength(1);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tdescribe(\"resolves correctly\", () => {\n\t\t\t\t\t\t\t\tit(\"with a value\", async () => {\n\t\t\t\t\t\t\t\t\tawait expect(doResolve(tokenPromise)).resolves.toBe(true);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tit(\"returns the FunPromise if passed a FunPromise\", () => {\n\t\t\t\t\t\t\t\t\texpect(doResolve(tokenFunPromise)).toEqual(tokenFunPromise);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tit(\"without a value\", async () => {\n\t\t\t\t\t\t\t\t\tawait expect(doResolve()).resolves.toBeNil();\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t});\n\n\tdescribe(\"then\", () => {\n\t\tit(\"works without onrejected\", async () => {\n\t\t\tawait expect(tokenFunPromise.then(_.identity)).resolves.toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"catch\", () => {\n\t\tit(\"handles rejections\", async () => {\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise\n\t\t\t\t\t.then(() => Promise.reject(\"BOOM!\"))\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\texpect(e).toBe(\"BOOM!\");\n\t\t\t\t\t\treturn \"DONE!\";\n\t\t\t\t\t})\n\t\t\t).resolves.toBe(\"DONE!\");\n\t\t});\n\n\t\tit(\"returns the error when not passed an argument\", async () => {\n\t\t\tconst error = new Error(\"BOOM!\");\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise.then(() => Promise.reject(error)).catch()\n\t\t\t).resolves.toBe(error);\n\t\t});\n\t});\n\n\tdescribe(\"arrayify\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst value = [1, 2, 3, 4];\n\t\t\tawait expect(FunPromise.resolve(value).arrayify()).resolves.toStrictEqual(\n\t\t\t\tvalue\n\t\t\t);\n\t\t});\n\n\t\tit(\"returns a clone\", async () => {\n\t\t\tconst value = [1, 2, 3, 4];\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve(value)\n\t\t\t\t\t.arrayify()\n\t\t\t\t\t.then((it) => {\n\t\t\t\t\t\tit.pop();\n\t\t\t\t\t\treturn it;\n\t\t\t\t\t})\n\t\t\t).resolves.not.toBe(value);\n\t\t\texpect(value).toHaveLength(4);\n\t\t});\n\n\t\tit(\"does not resolve values when called without an argument\", async () => {\n\t\t\tconst rejection = Promise.reject(\"BOOM!\");\n\t\t\ttry {\n\t\t\t\tawait expect(\n\t\t\t\t\tFunPromise.resolve([1, 2, rejection]).arrayify()\n\t\t\t\t).resolves.toBeArrayOfSize(3);\n\t\t\t} finally {\n\t\t\t\trejection.catch((e) => {}); // Disarm the rejection\n\t\t\t}\n\t\t});\n\n\t\tit(\"resolves values when called with the sole argument `true`\", async () => {\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([\n\t\t\t\t\tPromise.resolve(1),\n\t\t\t\t\tFunPromise.resolve(2),\n\t\t\t\t]).arrayify(true)\n\t\t\t).resolves.toEqual([1, 2]);\n\t\t});\n\n\t\tit(\"rejects values when called with the sole argument `true` and a rejection in the mix\", async () => {\n\t\t\tconst rejection = Promise.reject(\"BOOM!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([1, 2, rejection]).arrayify(true)\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t});\n\n\t\tit(\"rejects values in order when called with the arguments `(true, true)`\", async () => {\n\t\t\tconst rejection1 = Promise.reject(\"BOOM!\");\n\t\t\tconst rejection2 = Promise.reject(\"BANG!\");\n\t\t\ttry {\n\t\t\t\tawait expect(\n\t\t\t\t\tFunPromise.resolve([1, 2, rejection1, rejection2]).arrayify(\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t)\n\t\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\t} finally {\n\t\t\t\trejection1.catch((e) => {}); // Disarm the rejection\n\t\t\t\trejection2.catch((e) => {}); // Disarm the rejection\n\t\t\t}\n\t\t});\n\n\t\tit(\"resolves values in order when called with the arguments `(true, true)`\", async () => {\n\t\t\tlet sawFirst = false;\n\t\t\tlet sawSecond = false;\n\t\t\tlet sawThird = false;\n\t\t\tlet sawFourth = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(false);\n\t\t\t\t\t\texpect(sawSecond).toBe(false);\n\t\t\t\t\t\texpect(sawThird).toBe(false);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawFirst = true;\n\t\t\t\t\t\treturn 1;\n\t\t\t\t\t}),\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(true);\n\t\t\t\t\t\texpect(sawSecond).toBe(false);\n\t\t\t\t\t\texpect(sawThird).toBe(false);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawSecond = true;\n\t\t\t\t\t\treturn 2;\n\t\t\t\t\t}),\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(true);\n\t\t\t\t\t\texpect(sawSecond).toBe(true);\n\t\t\t\t\t\texpect(sawThird).toBe(false);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawThird = true;\n\t\t\t\t\t\treturn 3;\n\t\t\t\t\t}),\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(true);\n\t\t\t\t\t\texpect(sawSecond).toBe(true);\n\t\t\t\t\t\texpect(sawThird).toBe(true);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawFourth = true;\n\t\t\t\t\t\treturn 4;\n\t\t\t\t\t}),\n\t\t\t\t]).arrayify(true, true)\n\t\t\t).resolves.toStrictEqual([1, 2, 3, 4]);\n\t\t\texpect(sawFirst).toBe(true);\n\t\t\texpect(sawSecond).toBe(true);\n\t\t\texpect(sawThird).toBe(true);\n\t\t\texpect(sawFourth).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"all\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tdescribe(\"basically works\", () => {\n\t\t\t\t\t_.times(10, (argCount) => {\n\t\t\t\t\t\tconst simpleArgs = _.times(argCount, (i) => 2 ** i);\n\n\t\t\t\t\t\tfunction runAll(args) {\n\t\t\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\t\t\treturn FunPromise.all(args);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn FunPromise.resolve(args).all();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tit(`for ${argCount} arguments`, async () => {\n\t\t\t\t\t\t\tawait expect(runAll(simpleArgs)).resolves.toStrictEqual(\n\t\t\t\t\t\t\t\tsimpleArgs\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"try\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(FunPromise.try(() => true)).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"works with one argument\", async () => {\n\t\t\tawait expect(FunPromise.try((i) => i, 42)).resolves.toBe(42);\n\t\t});\n\n\t\tit(\"explodes properly\", async () => {\n\t\t\tawait expect(FunPromise.try(() => Promise.reject(\"BOOM!\"))).rejects.toBe(\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"map\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tfunction runMap(args, mapper) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.map(args, mapper);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(args).map(mapper);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tawait expect(\n\t\t\t\t\t\trunMap([\"Hello\", \"Goodbye\"], (it) => `${it}, World!`)\n\t\t\t\t\t).resolves.toStrictEqual([\"Hello, World!\", \"Goodbye, World!\"]);\n\t\t\t\t});\n\n\t\t\t\tit(\"works with some test values\", async () => {\n\t\t\t\t\tconst defaultValues = [1, 2, 4, 8, 16];\n\t\t\t\t\tconst defaultMapper = (it) => {\n\t\t\t\t\t\tif (Math.random() < 0.5) {\n\t\t\t\t\t\t\treturn Promise.resolve(it * 2);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn it * 2;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tawait expect(\n\t\t\t\t\t\trunMap(defaultValues, defaultMapper)\n\t\t\t\t\t).resolves.toStrictEqual([2, 4, 8, 16, 32]);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"Symbol.toStringTag\", () => {\n\t\tit(\"is the same as the promise passed in\", () => {\n\t\t\tconst promise = new Promise((resolve) => resolve());\n\t\t\tconst promiseTag = promise[Symbol.toStringTag];\n\t\t\texpect(promiseTag).not.toBeNil();\n\t\t\texpect(new FunPromise(promise)[Symbol.toStringTag]).toBe(promiseTag);\n\t\t});\n\t});\n\n\tdescribe(\"finally\", () => {\n\t\tit(\"returns the same promise when given no arguments\", () => {\n\t\t\texpect(tokenFunPromise.finally()).toBe(tokenFunPromise);\n\t\t});\n\n\t\tit(\"executes on resolution\", async () => {\n\t\t\tlet finallyExecuted = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve(false).finally(() => {\n\t\t\t\t\tfinallyExecuted = true;\n\t\t\t\t})\n\t\t\t).resolves.toBe(false);\n\t\t\texpect(finallyExecuted).toBe(true);\n\t\t});\n\n\t\tit(\"executes on rejection\", async () => {\n\t\t\tlet finallyExecuted = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(\"BOOM!\").finally(() => {\n\t\t\t\t\tfinallyExecuted = true;\n\t\t\t\t})\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\texpect(finallyExecuted).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"reject\", () => {\n\t\t_.forEach(\n\t\t\t{ static: FunPromise, instance: tokenFunPromise },\n\t\t\t(impl, name) => {\n\t\t\t\tdescribe(name, () => {\n\t\t\t\t\tit(\"rejects correctly\", async () => {\n\t\t\t\t\t\tawait expect(impl.reject(true)).rejects.toBe(true);\n\t\t\t\t\t});\n\n\t\t\t\t\tit(\"doesn't change the object that is rejected\", async () => {\n\t\t\t\t\t\tconst reason = { foo: true, bar: 42 };\n\t\t\t\t\t\tawait expect(impl.reject(reason)).rejects.toBe(reason);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t});\n\n\tdescribe(\"coalesce\", () => {\n\t\tfunction runCoalesce(args, test) {\n\t\t\treturn FunPromise.coalesce(args, test);\n\t\t}\n\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => null, Promise.resolve(() => true)])\n\t\t\t).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"returns the first resolving value\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => FunPromise.delay(1000).resolve(true), () => false])\n\t\t\t).resolves.toBe(false);\n\t\t});\n\n\t\tit(\"returns the value that passes the test\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => 2, () => 4], (it) => it > 2)\n\t\t\t).resolves.toBe(4);\n\t\t});\n\n\t\tit(\"throws the error if nothing passes the test\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => Promise.reject(\"BOOM!\"), () => 4], (it) => it > 4)\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t});\n\n\t\tit(\"punts appropriately after the first resolution\", async () => {\n\t\t\tawait expect(runCoalesce(_.times(3, (idx) => () => idx))).resolves.toBe(\n\t\t\t\t0\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"delay\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\t_.forEach([-1000, -1, 0, 1, 1000], (delayMs) => {\n\t\t\t\t\tdescribe(`When requesting a delay of ${delayMs} milliseconds`, () => {\n\t\t\t\t\t\tfunction runDelay(arg) {\n\t\t\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\t\t\treturn FunPromise.delay(delayMs, arg);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn FunPromise.resolve().delay(delayMs, arg);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdescribe(\"basically works\", () => {\n\t\t\t\t\t\t\tit(\"with no arg\", async () => {\n\t\t\t\t\t\t\t\tawait expect(runDelay()).resolves;\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tit(\"with one arg\", async () => {\n\t\t\t\t\t\t\t\tawait expect(runDelay(1000)).resolves.toBe(1000);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"simplify\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(\n\t\t\t\tnew FunPromise(Promise.resolve(Promise.resolve(true))).simplify()\n\t\t\t).resolves.toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"filter\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tconst defaultValues = [\n\t\t\t\t\t1,\n\t\t\t\t\ttrue,\n\t\t\t\t\t{},\n\t\t\t\t\tnull,\n\t\t\t\t\tPromise.resolve(null),\n\t\t\t\t\tPromise.resolve(),\n\t\t\t\t\t\"Hello, Dolly!\",\n\t\t\t\t];\n\t\t\t\tconst defaultExpect = [1, true, {}, \"Hello, Dolly!\"];\n\t\t\t\tconst defaultTest = (it) => !_.isNil(it);\n\t\t\t\tfunction doFilter(values = defaultValues, test = defaultTest) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.filter(values, test);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).filter(test);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tawait expect(doFilter()).resolves.not.toBeEmpty();\n\t\t\t\t\tawait expect(doFilter()).resolves.toBeArrayOfSize(4);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"flatMap\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tconst defaultValues = [\n\t\t\t\t\t1,\n\t\t\t\t\ttrue,\n\t\t\t\t\t{},\n\t\t\t\t\tnull,\n\t\t\t\t\tPromise.resolve(null),\n\t\t\t\t\tPromise.resolve(),\n\t\t\t\t\t\"Hello, Dolly!\",\n\t\t\t\t];\n\t\t\t\tconst defaultMapper = (it) => {\n\t\t\t\t\tif (_.isNil(it)) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn [it];\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst defaultExpect = [1, true, {}, \"Hello, Dolly!\"];\n\t\t\t\tfunction doFlatMap(values = defaultValues, mapper = defaultMapper) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.flatMap(values, mapper);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).flatMap(mapper);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tawait expect(doFlatMap()).resolves.toStrictEqual(defaultExpect);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"tap\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tlet sawTap = false;\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise.tap((val) => {\n\t\t\t\t\texpect(val).toBe(true);\n\t\t\t\t\tsawTap = true;\n\t\t\t\t\treturn false;\n\t\t\t\t})\n\t\t\t).resolves.toBe(true);\n\t\t\texpect(sawTap).toBe(true);\n\t\t});\n\n\t\tit(\"rejects if it throws an exception\", async () => {\n\t\t\tlet sawTap = false;\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise.tap((val) => {\n\t\t\t\t\tsawTap = true;\n\t\t\t\t\tthrow \"BOOM!\";\n\t\t\t\t})\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\texpect(sawTap).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"fold\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tconst defaultValues = [1, 2, 3, 4, 5];\n\n\t\t\t\tfunction doFold(\n\t\t\t\t\tvalues = defaultValues,\n\t\t\t\t\tinitialValue = 0,\n\t\t\t\t\taccumulator = (a, b) => a + b\n\t\t\t\t) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.fold(values, initialValue, accumulator);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).fold(initialValue, accumulator);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tconst values = [1, 2, 3, 4, 5];\n\t\t\t\t\tawait expect(doFold()).resolves.toBe(1 + 2 + 3 + 4 + 5);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"tapCatch\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tlet sawTapCatch = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(\"BOOM!\").tapCatch((e) => {\n\t\t\t\t\tsawTapCatch = true;\n\t\t\t\t\texpect(e).toBe(\"BOOM!\");\n\t\t\t\t\treturn \"BANG!\";\n\t\t\t\t})\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\texpect(sawTapCatch).toBe(true);\n\t\t});\n\n\t\tit(\"nests explosions\", async () => {\n\t\t\tlet sawCatch = false;\n\t\t\tconst err1 = new Error(\"BOOM!\");\n\t\t\tconst err2 = new Error(\"BANG!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(err1)\n\t\t\t\t\t.tapCatch((e) => {\n\t\t\t\t\t\tthrow err2;\n\t\t\t\t\t})\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\tsawCatch = true;\n\t\t\t\t\t\texpect(e).toBeInstanceOf(NestedError);\n\t\t\t\t\t\texpect(e).toHaveProperty(\"message\", \"Error thrown in 'tapCatch'\");\n\t\t\t\t\t\texpect(e).toHaveProperty(\"innerErrors\");\n\t\t\t\t\t\texpect(e.innerErrors).toHaveLength(2);\n\t\t\t\t\t\texpect(e.innerErrors).toEqual([err1, err2]);\n\t\t\t\t\t\treturn \"Hello!\";\n\t\t\t\t\t})\n\t\t\t).resolves.toBe(\"Hello!\");\n\t\t\texpect(sawCatch).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"tapEach\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst values = [\n\t\t\t\t123,\n\t\t\t\tPromise.resolve(true),\n\t\t\t\t\"Hello, Dolly!\",\n\t\t\t\tnull,\n\t\t\t\tundefined,\n\t\t\t];\n\t\t\tconst funPromise = FunPromise.resolve(values);\n\t\t\tlet count = 0;\n\t\t\tawait expect(\n\t\t\t\tfunPromise.tapEach(() => {\n\t\t\t\t\tcount++;\n\t\t\t\t})\n\t\t\t).resolves.toEqual(await Promise.all(values));\n\t\t\texpect(count).toBe(values.length);\n\t\t});\n\t});\n\n\tdescribe(\"wrapError\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst reason = \"BOOM!\";\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(reason).wrapError(\"BANG!\")\n\t\t\t).rejects.toHaveProperty(\"message\", \"BANG!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(reason).wrapError(\"BANG!\")\n\t\t\t).rejects.toHaveProperty(\"innerError\");\n\t\t});\n\t});\n\n\tdescribe(\"wrapErrors\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst err1 = new Error(\"BOOM!\");\n\t\t\tconst err2 = new Error(\"BANG!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([Promise.reject(err1), Promise.reject(err2)])\n\t\t\t\t\t.wrapErrors(\"ERRORS!\")\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\texpect(e).toBeInstanceOf(NestedError);\n\t\t\t\t\t\texpect(e).toHaveProperty(\"message\", \"ERRORS!\");\n\t\t\t\t\t\texpect(e.innerErrors).toHaveLength(2);\n\t\t\t\t\t\texpect(e.innerErrors).toEqual([err1, err2]);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t})\n\t\t\t).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"doesn't do anything if there is no error\", async () => {\n\t\t\tconst values = [1, 2, 3, true, false, null, undefined];\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve(values).wrapErrors(\"ERRORS!\")\n\t\t\t).resolves.toEqual(values);\n\t\t});\n\t});\n\n\tdescribe(\"cancellation\", () => {\n\t\tit(\"initially reports not cancelled\", () => {\n\t\t\texpect(FunPromise.resolve(true).isCancelled()).toBe(false);\n\t\t});\n\n\t\tit(\"reports cancelled after cancel is called\", () => {\n\t\t\texpect(FunPromise.resolve(true).cancel().isCancelled()).toBe(true);\n\t\t});\n\n\t\tit(\"prevents resolution after cancellation\", () => {\n\t\t\tlet resolver;\n\t\t\tlet sawResolve = false;\n\t\t\tconst promise = new Promise((resolve) => {\n\t\t\t\tresolver = resolve;\n\t\t\t}).then(() => {\n\t\t\t\tsawResolve = true;\n\t\t\t});\n\t\t\texpect(resolver).not.toBeNil();\n\t\t\tconst cancelled = new FunPromise(promise).cancel();\n\t\t\tresolver(true);\n\t\t\texpect(sawResolve).toBe(false);\n\t\t});\n\n\t\tit(\"prevents rejection after cancellation\", () => {\n\t\t\tlet rejector;\n\t\t\tlet sawReject = false;\n\t\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\t\trejector = reject;\n\t\t\t}).catch(() => {\n\t\t\t\tsawReject = true;\n\t\t\t});\n\t\t\texpect(rejector).not.toBeNil();\n\t\t\tconst cancelled = new FunPromise(promise).cancel();\n\t\t\trejector(\"BOOM!\");\n\t\t\texpect(sawReject).toBe(false);\n\t\t});\n\n\t\tit(\"prevents rejection when resolving throws after cancellation\", () => {\n\t\t\tlet resolver;\n\t\t\tlet sawThen = true;\n\t\t\tlet sawCatch = false;\n\t\t\tlet doCancel;\n\t\t\tconst promise = new Promise((resolve) => {\n\t\t\t\tresolver = resolve;\n\t\t\t}).then(() => {\n\t\t\t\tsawThen = true;\n\t\t\t\tdoCancel();\n\t\t\t\tthrow \"BOOM!\";\n\t\t\t});\n\t\t\texpect(resolver).not.toBeNil();\n\t\t\tconst toCancel = new FunPromise(promise);\n\t\t\tdoCancel = () => {\n\t\t\t\ttoCancel.cancel();\n\t\t\t};\n\t\t\ttoCancel.catch((e) => {\n\t\t\t\tsawCatch = true;\n\t\t\t});\n\t\t\tresolver(true);\n\t\t\texpect(sawThen).toBe(true);\n\t\t\texpect(sawCatch).toBe(false);\n\t\t});\n\t});\n\n\tdescribe(\"simplifyAll\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(FunPromise.resolve(\"Hello\").simplifyAll()).resolves.toEqual([\n\t\t\t\t\"H\",\n\t\t\t\t\"e\",\n\t\t\t\t\"l\",\n\t\t\t\t\"l\",\n\t\t\t\t\"o\",\n\t\t\t]);\n\t\t});\n\n\t\tit(\"doesn't explode on an empty list\", async () => {\n\t\t\tawait expect(FunPromise.resolve([]).simplifyAll()).resolves.toEqual([]);\n\t\t});\n\t});\n\n\tdescribe(\"settle\", () => {\n\t\tit(\"basically works for rejections\", async () => {\n\t\t\tawait expect(FunPromise.reject(\"BOOM!\").settle()).resolves.toHaveProperty(\n\t\t\t\t\"reason\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\n\t\tit(\"basically works for fulfillments\", async () => {\n\t\t\tawait expect(FunPromise.resolve(true).settle()).resolves.toHaveProperty(\n\t\t\t\t\"value\",\n\t\t\t\ttrue\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"settleAll\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tfunction doSettleAll(values) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.settleAll(values);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).settleAll();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tconst values = [\n\t\t\t\t\t\t{ in: Promise.resolve(true), out: new Fulfillment(true) },\n\t\t\t\t\t\t{ in: Promise.reject(\"BOOM!\"), out: new Rejection(\"BOOM!\") },\n\t\t\t\t\t\t{ in: Promise.reject(null), out: new Rejection(null) },\n\t\t\t\t\t\t{ in: null, out: new Fulfillment(null) },\n\t\t\t\t\t];\n\t\t\t\t\tawait expect(doSettleAll(_.map(values, \"in\"))).resolves.toEqual(\n\t\t\t\t\t\t_.map(values, \"out\")\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\tit(\"doesn't explode on empty lists\", async () => {\n\t\t\t\t\tawait expect(doSettleAll([])).resolves.toEqual([]);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n});\n"]} \ No newline at end of file diff --git a/dist/es6/esm/src/types.test.d.ts b/dist/es6/esm/src/types.test.d.ts deleted file mode 100644 index 961011c..0000000 --- a/dist/es6/esm/src/types.test.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=types.test.d.ts.map \ No newline at end of file diff --git a/dist/es6/esm/src/types.test.d.ts.map b/dist/es6/esm/src/types.test.d.ts.map deleted file mode 100644 index 87481cd..0000000 --- a/dist/es6/esm/src/types.test.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../../../src/types.test.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/es6/esm/src/types.test.js b/dist/es6/esm/src/types.test.js deleted file mode 100644 index edd56e7..0000000 --- a/dist/es6/esm/src/types.test.js +++ /dev/null @@ -1,30 +0,0 @@ -/** @format */ -import { Fulfillment, Rejection } from "./types"; -import _ from "lodash"; -describe("Fulfillment", () => { - _.forEach([true, { foo: true }], (arg) => { - describe(`when passed the ${typeof arg} argument '${JSON.stringify(arg)}'`, () => { - const fulfillment = new Fulfillment(arg); - it("exposes the argument on the 'value' property", () => { - expect(fulfillment).toHaveProperty("value", arg); - }); - it("has a 'status' property of 'fulfilled'", () => { - expect(fulfillment).toHaveProperty("status", "fulfilled"); - }); - }); - }); -}); -describe("Rejection", () => { - _.forEach(["BOOM!", new Error("BOOM!")], (arg) => { - describe(`when passed the ${typeof arg} argument: '${arg}'`, () => { - const rejection = new Rejection(arg); - it("returns the argument in the 'reason' property", () => { - expect(rejection).toHaveProperty("reason", arg); - }); - it("has a 'status' property whose value is 'rejected'", () => { - expect(rejection).toHaveProperty("status", "rejected"); - }); - }); - }); -}); -//# sourceMappingURL=types.test.js.map \ No newline at end of file diff --git a/dist/es6/esm/src/types.test.js.map b/dist/es6/esm/src/types.test.js.map deleted file mode 100644 index 69a3834..0000000 --- a/dist/es6/esm/src/types.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../../../src/types.test.js"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC5B,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;QACxC,QAAQ,CAAC,mBAAmB,OAAO,GAAG,cAAc,IAAI,CAAC,SAAS,CACjE,GAAG,CACH,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;YAEzC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;gBACvD,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;gBACjD,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;QAChD,QAAQ,CAAC,mBAAmB,OAAO,GAAG,eAAe,GAAG,GAAG,EAAE,GAAG,EAAE;YACjE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;YAErC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;gBACxD,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;gBAC5D,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["/** @format */\n\nimport { Fulfillment, Rejection } from \"./types\";\nimport _ from \"lodash\";\n\ndescribe(\"Fulfillment\", () => {\n\t_.forEach([true, { foo: true }], (arg) => {\n\t\tdescribe(`when passed the ${typeof arg} argument '${JSON.stringify(\n\t\t\targ\n\t\t)}'`, () => {\n\t\t\tconst fulfillment = new Fulfillment(arg);\n\n\t\t\tit(\"exposes the argument on the 'value' property\", () => {\n\t\t\t\texpect(fulfillment).toHaveProperty(\"value\", arg);\n\t\t\t});\n\n\t\t\tit(\"has a 'status' property of 'fulfilled'\", () => {\n\t\t\t\texpect(fulfillment).toHaveProperty(\"status\", \"fulfilled\");\n\t\t\t});\n\t\t});\n\t});\n});\n\ndescribe(\"Rejection\", () => {\n\t_.forEach([\"BOOM!\", new Error(\"BOOM!\")], (arg) => {\n\t\tdescribe(`when passed the ${typeof arg} argument: '${arg}'`, () => {\n\t\t\tconst rejection = new Rejection(arg);\n\n\t\t\tit(\"returns the argument in the 'reason' property\", () => {\n\t\t\t\texpect(rejection).toHaveProperty(\"reason\", arg);\n\t\t\t});\n\n\t\t\tit(\"has a 'status' property whose value is 'rejected'\", () => {\n\t\t\t\texpect(rejection).toHaveProperty(\"status\", \"rejected\");\n\t\t\t});\n\t\t});\n\t});\n});\n"]} \ No newline at end of file diff --git a/dist/es6/umd/src/deferral.test.d.ts b/dist/es6/umd/src/deferral.test.d.ts deleted file mode 100644 index 4c655ce..0000000 --- a/dist/es6/umd/src/deferral.test.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=deferral.test.d.ts.map \ No newline at end of file diff --git a/dist/es6/umd/src/deferral.test.d.ts.map b/dist/es6/umd/src/deferral.test.d.ts.map deleted file mode 100644 index 1e43120..0000000 --- a/dist/es6/umd/src/deferral.test.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"deferral.test.d.ts","sourceRoot":"","sources":["../../../../src/deferral.test.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/es6/umd/src/deferral.test.js b/dist/es6/umd/src/deferral.test.js deleted file mode 100644 index c1ff4c5..0000000 --- a/dist/es6/umd/src/deferral.test.js +++ /dev/null @@ -1,54 +0,0 @@ -/** @format */ -(function (factory) { - if (typeof module === "object" && typeof module.exports === "object") { - var v = factory(require, exports); - if (v !== undefined) module.exports = v; - } - else if (typeof define === "function" && define.amd) { - define(["require", "exports", "tslib", "./fun-promise", "./deferral", "./types", "lodash"], factory); - } -})(function (require, exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - const tslib_1 = require("tslib"); - const fun_promise_1 = require("./fun-promise"); - const deferral_1 = require("./deferral"); - require("./types"); - require("lodash"); - describe("Deferral", () => { - it("can be constructed", () => { - const deferral = new deferral_1.default(); - expect(deferral).not.toBeNil(); - }); - describe("promise", () => { - it("is a FunPromise", () => { - const deferral = new deferral_1.default(); - expect(deferral.promise).toBeInstanceOf(fun_promise_1.default); - }); - }); - describe("resolve", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const deferral = new deferral_1.default(); - deferral.resolve(true); - yield expect(deferral.resolve(true)).resolves.toBe(true); - })); - it("does not change resolved value if called multiple times", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const deferral = new deferral_1.default(); - yield expect(deferral.resolve(true)).resolves.toBe(true); - yield expect(deferral.resolve(false)).resolves.toBe(true); - })); - }); - describe("reject", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const deferral = new deferral_1.default(); - yield expect(deferral.reject(new Error("BOOM!"))).rejects.toHaveProperty("message", "BOOM!"); - })); - it("does not change reason if called multiple times", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const deferral = new deferral_1.default(); - yield expect(deferral.reject(new Error("BOOM!"))).rejects.toHaveProperty("message", "BOOM!"); - yield expect(deferral.reject(new Error("BANG!"))).rejects.toHaveProperty("message", "BOOM!"); - })); - }); - }); -}); -//# sourceMappingURL=deferral.test.js.map \ No newline at end of file diff --git a/dist/es6/umd/src/deferral.test.js.map b/dist/es6/umd/src/deferral.test.js.map deleted file mode 100644 index 4caf052..0000000 --- a/dist/es6/umd/src/deferral.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"deferral.test.js","sourceRoot":"","sources":["../../../../src/deferral.test.js"],"names":[],"mappings":"AAAA,cAAc;;;;;;;;;;;;;IAEd,+CAAuC;IACvC,yCAAkC;IAClC,mBAAuC;IACvC,kBAAuB;IAEvB,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC7B,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAC;YAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;YACxB,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;gBAC1B,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAC;gBAChC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,qBAAU,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;YACxB,EAAE,CAAC,iBAAiB,EAAE,GAAS,EAAE;gBAChC,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAC;gBAChC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvB,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC,CAAA,CAAC,CAAC;YAEH,EAAE,CAAC,yDAAyD,EAAE,GAAS,EAAE;gBACxE,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAC;gBAChC,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzD,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC,CAAA,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YACvB,EAAE,CAAC,iBAAiB,EAAE,GAAS,EAAE;gBAChC,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAC;gBAChC,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CACvE,SAAS,EACT,OAAO,CACP,CAAC;YACH,CAAC,CAAA,CAAC,CAAC;YAEH,EAAE,CAAC,iDAAiD,EAAE,GAAS,EAAE;gBAChE,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAC;gBAChC,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CACvE,SAAS,EACT,OAAO,CACP,CAAC;gBACF,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CACvE,SAAS,EACT,OAAO,CACP,CAAC;YACH,CAAC,CAAA,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC","sourcesContent":["/** @format */\n\nimport FunPromise from \"./fun-promise\";\nimport Deferral from \"./deferral\";\nimport { PromiseState } from \"./types\";\nimport _ from \"lodash\";\n\ndescribe(\"Deferral\", () => {\n\tit(\"can be constructed\", () => {\n\t\tconst deferral = new Deferral();\n\t\texpect(deferral).not.toBeNil();\n\t});\n\n\tdescribe(\"promise\", () => {\n\t\tit(\"is a FunPromise\", () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\texpect(deferral.promise).toBeInstanceOf(FunPromise);\n\t\t});\n\t});\n\n\tdescribe(\"resolve\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tdeferral.resolve(true);\n\t\t\tawait expect(deferral.resolve(true)).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"does not change resolved value if called multiple times\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tawait expect(deferral.resolve(true)).resolves.toBe(true);\n\t\t\tawait expect(deferral.resolve(false)).resolves.toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"reject\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tawait expect(deferral.reject(new Error(\"BOOM!\"))).rejects.toHaveProperty(\n\t\t\t\t\"message\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\n\t\tit(\"does not change reason if called multiple times\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tawait expect(deferral.reject(new Error(\"BOOM!\"))).rejects.toHaveProperty(\n\t\t\t\t\"message\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t\tawait expect(deferral.reject(new Error(\"BANG!\"))).rejects.toHaveProperty(\n\t\t\t\t\"message\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\t});\n});\n"]} \ No newline at end of file diff --git a/dist/es6/umd/src/fun-promise.test.d.ts b/dist/es6/umd/src/fun-promise.test.d.ts deleted file mode 100644 index 597914a..0000000 --- a/dist/es6/umd/src/fun-promise.test.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=fun-promise.test.d.ts.map \ No newline at end of file diff --git a/dist/es6/umd/src/fun-promise.test.d.ts.map b/dist/es6/umd/src/fun-promise.test.d.ts.map deleted file mode 100644 index e2ecf9b..0000000 --- a/dist/es6/umd/src/fun-promise.test.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"fun-promise.test.d.ts","sourceRoot":"","sources":["../../../../src/fun-promise.test.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/es6/umd/src/fun-promise.test.js b/dist/es6/umd/src/fun-promise.test.js deleted file mode 100644 index 9115660..0000000 --- a/dist/es6/umd/src/fun-promise.test.js +++ /dev/null @@ -1,611 +0,0 @@ -/** @format */ -(function (factory) { - if (typeof module === "object" && typeof module.exports === "object") { - var v = factory(require, exports); - if (v !== undefined) module.exports = v; - } - else if (typeof define === "function" && define.amd) { - define(["require", "exports", "tslib", "./fun-promise", "lodash", "ts-nested-error", "./types"], factory); - } -})(function (require, exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - const tslib_1 = require("tslib"); - const fun_promise_1 = require("./fun-promise"); - const lodash_1 = require("lodash"); - const ts_nested_error_1 = require("ts-nested-error"); - const types_1 = require("./types"); - const tokenPromise = new Promise((resolve) => resolve(true)); - const tokenFunPromise = new fun_promise_1.default(tokenPromise); - function withRejection(rejectionReason, callback) { - const rejection = Promise.reject(rejectionReason); - try { - return callback(rejection); - } - finally { - rejection.catch(lodash_1.default.noop); // Disable uncaught exception issues - } - } - describe("FunPromise", () => { - it("can be constructed and resolved", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(new fun_promise_1.default(tokenPromise)).resolves.toBe(true); - })); - describe("resolve/return", () => { - lodash_1.default.forEach({ static: fun_promise_1.default, instance: tokenFunPromise }, (impl, implName) => { - lodash_1.default.forEach(["resolve", "return"], (methodName) => { - describe(methodName, () => { - describe(implName, () => { - function doResolve(value) { - return impl[methodName](value); - } - it("rejects when provided a rejection", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(doResolve(Promise.reject("BOOM!"))).rejects.toBe("BOOM!"); - })); - it("does not resolve the elements of an array", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - expect.hasAssertions(); - yield withRejection("BOOM!", (rejection) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(doResolve([rejection])).resolves.toHaveLength(1); - })); - })); - describe("resolves correctly", () => { - it("with a value", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(doResolve(tokenPromise)).resolves.toBe(true); - })); - it("returns the FunPromise if passed a FunPromise", () => { - expect(doResolve(tokenFunPromise)).toEqual(tokenFunPromise); - }); - it("without a value", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(doResolve()).resolves.toBeNil(); - })); - }); - }); - }); - }); - }); - }); - describe("then", () => { - it("works without onrejected", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(tokenFunPromise.then(lodash_1.default.identity)).resolves.toBe(true); - })); - }); - describe("catch", () => { - it("handles rejections", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(tokenFunPromise - .then(() => Promise.reject("BOOM!")) - .catch((e) => { - expect(e).toBe("BOOM!"); - return "DONE!"; - })).resolves.toBe("DONE!"); - })); - it("returns the error when not passed an argument", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const error = new Error("BOOM!"); - yield expect(tokenFunPromise.then(() => Promise.reject(error)).catch()).resolves.toBe(error); - })); - }); - describe("arrayify", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const value = [1, 2, 3, 4]; - yield expect(fun_promise_1.default.resolve(value).arrayify()).resolves.toStrictEqual(value); - })); - it("returns a clone", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const value = [1, 2, 3, 4]; - yield expect(fun_promise_1.default.resolve(value) - .arrayify() - .then((it) => { - it.pop(); - return it; - })).resolves.not.toBe(value); - expect(value).toHaveLength(4); - })); - it("does not resolve values when called without an argument", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const rejection = Promise.reject("BOOM!"); - try { - yield expect(fun_promise_1.default.resolve([1, 2, rejection]).arrayify()).resolves.toBeArrayOfSize(3); - } - finally { - rejection.catch((e) => { }); // Disarm the rejection - } - })); - it("resolves values when called with the sole argument `true`", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.resolve([ - Promise.resolve(1), - fun_promise_1.default.resolve(2), - ]).arrayify(true)).resolves.toEqual([1, 2]); - })); - it("rejects values when called with the sole argument `true` and a rejection in the mix", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const rejection = Promise.reject("BOOM!"); - yield expect(fun_promise_1.default.resolve([1, 2, rejection]).arrayify(true)).rejects.toBe("BOOM!"); - })); - it("rejects values in order when called with the arguments `(true, true)`", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const rejection1 = Promise.reject("BOOM!"); - const rejection2 = Promise.reject("BANG!"); - try { - yield expect(fun_promise_1.default.resolve([1, 2, rejection1, rejection2]).arrayify(true, true)).rejects.toBe("BOOM!"); - } - finally { - rejection1.catch((e) => { }); // Disarm the rejection - rejection2.catch((e) => { }); // Disarm the rejection - } - })); - it("resolves values in order when called with the arguments `(true, true)`", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - let sawFirst = false; - let sawSecond = false; - let sawThird = false; - let sawFourth = false; - yield expect(fun_promise_1.default.resolve([ - fun_promise_1.default.try(() => { - expect(sawFirst).toBe(false); - expect(sawSecond).toBe(false); - expect(sawThird).toBe(false); - expect(sawFourth).toBe(false); - sawFirst = true; - return 1; - }), - fun_promise_1.default.try(() => { - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(false); - expect(sawThird).toBe(false); - expect(sawFourth).toBe(false); - sawSecond = true; - return 2; - }), - fun_promise_1.default.try(() => { - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(true); - expect(sawThird).toBe(false); - expect(sawFourth).toBe(false); - sawThird = true; - return 3; - }), - fun_promise_1.default.try(() => { - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(true); - expect(sawThird).toBe(true); - expect(sawFourth).toBe(false); - sawFourth = true; - return 4; - }), - ]).arrayify(true, true)).resolves.toStrictEqual([1, 2, 3, 4]); - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(true); - expect(sawThird).toBe(true); - expect(sawFourth).toBe(true); - })); - }); - describe("all", () => { - lodash_1.default.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - describe("basically works", () => { - lodash_1.default.times(10, (argCount) => { - const simpleArgs = lodash_1.default.times(argCount, (i) => Math.pow(2, i)); - function runAll(args) { - if (staticVersion) { - return fun_promise_1.default.all(args); - } - else { - return fun_promise_1.default.resolve(args).all(); - } - } - it(`for ${argCount} arguments`, () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runAll(simpleArgs)).resolves.toStrictEqual(simpleArgs); - })); - }); - }); - }); - }); - }); - describe("try", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.try(() => true)).resolves.toBe(true); - })); - it("works with one argument", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.try((i) => i, 42)).resolves.toBe(42); - })); - it("explodes properly", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.try(() => Promise.reject("BOOM!"))).rejects.toBe("BOOM!"); - })); - }); - describe("map", () => { - lodash_1.default.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - function runMap(args, mapper) { - if (staticVersion) { - return fun_promise_1.default.map(args, mapper); - } - else { - return fun_promise_1.default.resolve(args).map(mapper); - } - } - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runMap(["Hello", "Goodbye"], (it) => `${it}, World!`)).resolves.toStrictEqual(["Hello, World!", "Goodbye, World!"]); - })); - it("works with some test values", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const defaultValues = [1, 2, 4, 8, 16]; - const defaultMapper = (it) => { - if (Math.random() < 0.5) { - return Promise.resolve(it * 2); - } - else { - return it * 2; - } - }; - yield expect(runMap(defaultValues, defaultMapper)).resolves.toStrictEqual([2, 4, 8, 16, 32]); - })); - }); - }); - }); - describe("Symbol.toStringTag", () => { - it("is the same as the promise passed in", () => { - const promise = new Promise((resolve) => resolve()); - const promiseTag = promise[Symbol.toStringTag]; - expect(promiseTag).not.toBeNil(); - expect(new fun_promise_1.default(promise)[Symbol.toStringTag]).toBe(promiseTag); - }); - }); - describe("finally", () => { - it("returns the same promise when given no arguments", () => { - expect(tokenFunPromise.finally()).toBe(tokenFunPromise); - }); - it("executes on resolution", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - let finallyExecuted = false; - yield expect(fun_promise_1.default.resolve(false).finally(() => { - finallyExecuted = true; - })).resolves.toBe(false); - expect(finallyExecuted).toBe(true); - })); - it("executes on rejection", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - let finallyExecuted = false; - yield expect(fun_promise_1.default.reject("BOOM!").finally(() => { - finallyExecuted = true; - })).rejects.toBe("BOOM!"); - expect(finallyExecuted).toBe(true); - })); - }); - describe("reject", () => { - lodash_1.default.forEach({ static: fun_promise_1.default, instance: tokenFunPromise }, (impl, name) => { - describe(name, () => { - it("rejects correctly", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(impl.reject(true)).rejects.toBe(true); - })); - it("doesn't change the object that is rejected", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const reason = { foo: true, bar: 42 }; - yield expect(impl.reject(reason)).rejects.toBe(reason); - })); - }); - }); - }); - describe("coalesce", () => { - function runCoalesce(args, test) { - return fun_promise_1.default.coalesce(args, test); - } - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runCoalesce([() => null, Promise.resolve(() => true)])).resolves.toBe(true); - })); - it("returns the first resolving value", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runCoalesce([() => fun_promise_1.default.delay(1000).resolve(true), () => false])).resolves.toBe(false); - })); - it("returns the value that passes the test", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runCoalesce([() => 2, () => 4], (it) => it > 2)).resolves.toBe(4); - })); - it("throws the error if nothing passes the test", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runCoalesce([() => Promise.reject("BOOM!"), () => 4], (it) => it > 4)).rejects.toBe("BOOM!"); - })); - it("punts appropriately after the first resolution", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runCoalesce(lodash_1.default.times(3, (idx) => () => idx))).resolves.toBe(0); - })); - }); - describe("delay", () => { - lodash_1.default.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - lodash_1.default.forEach([-1000, -1, 0, 1, 1000], (delayMs) => { - describe(`When requesting a delay of ${delayMs} milliseconds`, () => { - function runDelay(arg) { - if (staticVersion) { - return fun_promise_1.default.delay(delayMs, arg); - } - else { - return fun_promise_1.default.resolve().delay(delayMs, arg); - } - } - describe("basically works", () => { - it("with no arg", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runDelay()).resolves; - })); - it("with one arg", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(runDelay(1000)).resolves.toBe(1000); - })); - }); - }); - }); - }); - }); - }); - describe("simplify", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(new fun_promise_1.default(Promise.resolve(Promise.resolve(true))).simplify()).resolves.toBe(true); - })); - }); - describe("filter", () => { - lodash_1.default.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - const defaultValues = [ - 1, - true, - {}, - null, - Promise.resolve(null), - Promise.resolve(), - "Hello, Dolly!", - ]; - const defaultExpect = [1, true, {}, "Hello, Dolly!"]; - const defaultTest = (it) => !lodash_1.default.isNil(it); - function doFilter(values = defaultValues, test = defaultTest) { - if (staticVersion) { - return fun_promise_1.default.filter(values, test); - } - else { - return fun_promise_1.default.resolve(values).filter(test); - } - } - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(doFilter()).resolves.not.toBeEmpty(); - yield expect(doFilter()).resolves.toBeArrayOfSize(4); - })); - }); - }); - }); - describe("flatMap", () => { - lodash_1.default.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - const defaultValues = [ - 1, - true, - {}, - null, - Promise.resolve(null), - Promise.resolve(), - "Hello, Dolly!", - ]; - const defaultMapper = (it) => { - if (lodash_1.default.isNil(it)) { - return []; - } - else { - return [it]; - } - }; - const defaultExpect = [1, true, {}, "Hello, Dolly!"]; - function doFlatMap(values = defaultValues, mapper = defaultMapper) { - if (staticVersion) { - return fun_promise_1.default.flatMap(values, mapper); - } - else { - return fun_promise_1.default.resolve(values).flatMap(mapper); - } - } - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(doFlatMap()).resolves.toStrictEqual(defaultExpect); - })); - }); - }); - }); - describe("tap", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - let sawTap = false; - yield expect(tokenFunPromise.tap((val) => { - expect(val).toBe(true); - sawTap = true; - return false; - })).resolves.toBe(true); - expect(sawTap).toBe(true); - })); - it("rejects if it throws an exception", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - let sawTap = false; - yield expect(tokenFunPromise.tap((val) => { - sawTap = true; - throw "BOOM!"; - })).rejects.toBe("BOOM!"); - expect(sawTap).toBe(true); - })); - }); - describe("fold", () => { - lodash_1.default.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - const defaultValues = [1, 2, 3, 4, 5]; - function doFold(values = defaultValues, initialValue = 0, accumulator = (a, b) => a + b) { - if (staticVersion) { - return fun_promise_1.default.fold(values, initialValue, accumulator); - } - else { - return fun_promise_1.default.resolve(values).fold(initialValue, accumulator); - } - } - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const values = [1, 2, 3, 4, 5]; - yield expect(doFold()).resolves.toBe(1 + 2 + 3 + 4 + 5); - })); - }); - }); - }); - describe("tapCatch", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - let sawTapCatch = false; - yield expect(fun_promise_1.default.reject("BOOM!").tapCatch((e) => { - sawTapCatch = true; - expect(e).toBe("BOOM!"); - return "BANG!"; - })).rejects.toBe("BOOM!"); - expect(sawTapCatch).toBe(true); - })); - it("nests explosions", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - let sawCatch = false; - const err1 = new Error("BOOM!"); - const err2 = new Error("BANG!"); - yield expect(fun_promise_1.default.reject(err1) - .tapCatch((e) => { - throw err2; - }) - .catch((e) => { - sawCatch = true; - expect(e).toBeInstanceOf(ts_nested_error_1.NestedError); - expect(e).toHaveProperty("message", "Error thrown in 'tapCatch'"); - expect(e).toHaveProperty("innerErrors"); - expect(e.innerErrors).toHaveLength(2); - expect(e.innerErrors).toEqual([err1, err2]); - return "Hello!"; - })).resolves.toBe("Hello!"); - expect(sawCatch).toBe(true); - })); - }); - describe("tapEach", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const values = [ - 123, - Promise.resolve(true), - "Hello, Dolly!", - null, - undefined, - ]; - const funPromise = fun_promise_1.default.resolve(values); - let count = 0; - yield expect(funPromise.tapEach(() => { - count++; - })).resolves.toEqual(yield Promise.all(values)); - expect(count).toBe(values.length); - })); - }); - describe("wrapError", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const reason = "BOOM!"; - yield expect(fun_promise_1.default.reject(reason).wrapError("BANG!")).rejects.toHaveProperty("message", "BANG!"); - yield expect(fun_promise_1.default.reject(reason).wrapError("BANG!")).rejects.toHaveProperty("innerError"); - })); - }); - describe("wrapErrors", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const err1 = new Error("BOOM!"); - const err2 = new Error("BANG!"); - yield expect(fun_promise_1.default.resolve([Promise.reject(err1), Promise.reject(err2)]) - .wrapErrors("ERRORS!") - .catch((e) => { - expect(e).toBeInstanceOf(ts_nested_error_1.NestedError); - expect(e).toHaveProperty("message", "ERRORS!"); - expect(e.innerErrors).toHaveLength(2); - expect(e.innerErrors).toEqual([err1, err2]); - return true; - })).resolves.toBe(true); - })); - it("doesn't do anything if there is no error", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const values = [1, 2, 3, true, false, null, undefined]; - yield expect(fun_promise_1.default.resolve(values).wrapErrors("ERRORS!")).resolves.toEqual(values); - })); - }); - describe("cancellation", () => { - it("initially reports not cancelled", () => { - expect(fun_promise_1.default.resolve(true).isCancelled()).toBe(false); - }); - it("reports cancelled after cancel is called", () => { - expect(fun_promise_1.default.resolve(true).cancel().isCancelled()).toBe(true); - }); - it("prevents resolution after cancellation", () => { - let resolver; - let sawResolve = false; - const promise = new Promise((resolve) => { - resolver = resolve; - }).then(() => { - sawResolve = true; - }); - expect(resolver).not.toBeNil(); - const cancelled = new fun_promise_1.default(promise).cancel(); - resolver(true); - expect(sawResolve).toBe(false); - }); - it("prevents rejection after cancellation", () => { - let rejector; - let sawReject = false; - const promise = new Promise((resolve, reject) => { - rejector = reject; - }).catch(() => { - sawReject = true; - }); - expect(rejector).not.toBeNil(); - const cancelled = new fun_promise_1.default(promise).cancel(); - rejector("BOOM!"); - expect(sawReject).toBe(false); - }); - it("prevents rejection when resolving throws after cancellation", () => { - let resolver; - let sawThen = true; - let sawCatch = false; - let doCancel; - const promise = new Promise((resolve) => { - resolver = resolve; - }).then(() => { - sawThen = true; - doCancel(); - throw "BOOM!"; - }); - expect(resolver).not.toBeNil(); - const toCancel = new fun_promise_1.default(promise); - doCancel = () => { - toCancel.cancel(); - }; - toCancel.catch((e) => { - sawCatch = true; - }); - resolver(true); - expect(sawThen).toBe(true); - expect(sawCatch).toBe(false); - }); - }); - describe("simplifyAll", () => { - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.resolve("Hello").simplifyAll()).resolves.toEqual([ - "H", - "e", - "l", - "l", - "o", - ]); - })); - it("doesn't explode on an empty list", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.resolve([]).simplifyAll()).resolves.toEqual([]); - })); - }); - describe("settle", () => { - it("basically works for rejections", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.reject("BOOM!").settle()).resolves.toHaveProperty("reason", "BOOM!"); - })); - it("basically works for fulfillments", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(fun_promise_1.default.resolve(true).settle()).resolves.toHaveProperty("value", true); - })); - }); - describe("settleAll", () => { - lodash_1.default.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - function doSettleAll(values) { - if (staticVersion) { - return fun_promise_1.default.settleAll(values); - } - else { - return fun_promise_1.default.resolve(values).settleAll(); - } - } - it("basically works", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - const values = [ - { in: Promise.resolve(true), out: new types_1.Fulfillment(true) }, - { in: Promise.reject("BOOM!"), out: new types_1.Rejection("BOOM!") }, - { in: Promise.reject(null), out: new types_1.Rejection(null) }, - { in: null, out: new types_1.Fulfillment(null) }, - ]; - yield expect(doSettleAll(lodash_1.default.map(values, "in"))).resolves.toEqual(lodash_1.default.map(values, "out")); - })); - it("doesn't explode on empty lists", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { - yield expect(doSettleAll([])).resolves.toEqual([]); - })); - }); - }); - }); - }); -}); -//# sourceMappingURL=fun-promise.test.js.map \ No newline at end of file diff --git a/dist/es6/umd/src/fun-promise.test.js.map b/dist/es6/umd/src/fun-promise.test.js.map deleted file mode 100644 index 2401647..0000000 --- a/dist/es6/umd/src/fun-promise.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"fun-promise.test.js","sourceRoot":"","sources":["../../../../src/fun-promise.test.js"],"names":[],"mappings":"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","sourcesContent":["/** @format */\n\nimport FunPromise from \"./fun-promise\";\nimport _ from \"lodash\";\nimport { NestedError } from \"ts-nested-error\";\nimport { Fulfillment, Rejection } from \"./types\";\n\nconst tokenPromise = new Promise((resolve) => resolve(true));\nconst tokenFunPromise = new FunPromise(tokenPromise);\n\nfunction withRejection(rejectionReason, callback) {\n\tconst rejection = Promise.reject(rejectionReason);\n\ttry {\n\t\treturn callback(rejection);\n\t} finally {\n\t\trejection.catch(_.noop); // Disable uncaught exception issues\n\t}\n}\n\ndescribe(\"FunPromise\", () => {\n\tit(\"can be constructed and resolved\", async () => {\n\t\tawait expect(new FunPromise(tokenPromise)).resolves.toBe(true);\n\t});\n\n\tdescribe(\"resolve/return\", () => {\n\t\t_.forEach(\n\t\t\t{ static: FunPromise, instance: tokenFunPromise },\n\t\t\t(impl, implName) => {\n\t\t\t\t_.forEach([\"resolve\", \"return\"], (methodName) => {\n\t\t\t\t\tdescribe(methodName, () => {\n\t\t\t\t\t\tdescribe(implName, () => {\n\t\t\t\t\t\t\tfunction doResolve(value) {\n\t\t\t\t\t\t\t\treturn impl[methodName](value);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tit(\"rejects when provided a rejection\", async () => {\n\t\t\t\t\t\t\t\tawait expect(doResolve(Promise.reject(\"BOOM!\"))).rejects.toBe(\n\t\t\t\t\t\t\t\t\t\"BOOM!\"\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tit(\"does not resolve the elements of an array\", async () => {\n\t\t\t\t\t\t\t\texpect.hasAssertions();\n\t\t\t\t\t\t\t\tawait withRejection(\"BOOM!\", async (rejection) => {\n\t\t\t\t\t\t\t\t\tawait expect(doResolve([rejection])).resolves.toHaveLength(1);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tdescribe(\"resolves correctly\", () => {\n\t\t\t\t\t\t\t\tit(\"with a value\", async () => {\n\t\t\t\t\t\t\t\t\tawait expect(doResolve(tokenPromise)).resolves.toBe(true);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tit(\"returns the FunPromise if passed a FunPromise\", () => {\n\t\t\t\t\t\t\t\t\texpect(doResolve(tokenFunPromise)).toEqual(tokenFunPromise);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tit(\"without a value\", async () => {\n\t\t\t\t\t\t\t\t\tawait expect(doResolve()).resolves.toBeNil();\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t});\n\n\tdescribe(\"then\", () => {\n\t\tit(\"works without onrejected\", async () => {\n\t\t\tawait expect(tokenFunPromise.then(_.identity)).resolves.toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"catch\", () => {\n\t\tit(\"handles rejections\", async () => {\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise\n\t\t\t\t\t.then(() => Promise.reject(\"BOOM!\"))\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\texpect(e).toBe(\"BOOM!\");\n\t\t\t\t\t\treturn \"DONE!\";\n\t\t\t\t\t})\n\t\t\t).resolves.toBe(\"DONE!\");\n\t\t});\n\n\t\tit(\"returns the error when not passed an argument\", async () => {\n\t\t\tconst error = new Error(\"BOOM!\");\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise.then(() => Promise.reject(error)).catch()\n\t\t\t).resolves.toBe(error);\n\t\t});\n\t});\n\n\tdescribe(\"arrayify\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst value = [1, 2, 3, 4];\n\t\t\tawait expect(FunPromise.resolve(value).arrayify()).resolves.toStrictEqual(\n\t\t\t\tvalue\n\t\t\t);\n\t\t});\n\n\t\tit(\"returns a clone\", async () => {\n\t\t\tconst value = [1, 2, 3, 4];\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve(value)\n\t\t\t\t\t.arrayify()\n\t\t\t\t\t.then((it) => {\n\t\t\t\t\t\tit.pop();\n\t\t\t\t\t\treturn it;\n\t\t\t\t\t})\n\t\t\t).resolves.not.toBe(value);\n\t\t\texpect(value).toHaveLength(4);\n\t\t});\n\n\t\tit(\"does not resolve values when called without an argument\", async () => {\n\t\t\tconst rejection = Promise.reject(\"BOOM!\");\n\t\t\ttry {\n\t\t\t\tawait expect(\n\t\t\t\t\tFunPromise.resolve([1, 2, rejection]).arrayify()\n\t\t\t\t).resolves.toBeArrayOfSize(3);\n\t\t\t} finally {\n\t\t\t\trejection.catch((e) => {}); // Disarm the rejection\n\t\t\t}\n\t\t});\n\n\t\tit(\"resolves values when called with the sole argument `true`\", async () => {\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([\n\t\t\t\t\tPromise.resolve(1),\n\t\t\t\t\tFunPromise.resolve(2),\n\t\t\t\t]).arrayify(true)\n\t\t\t).resolves.toEqual([1, 2]);\n\t\t});\n\n\t\tit(\"rejects values when called with the sole argument `true` and a rejection in the mix\", async () => {\n\t\t\tconst rejection = Promise.reject(\"BOOM!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([1, 2, rejection]).arrayify(true)\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t});\n\n\t\tit(\"rejects values in order when called with the arguments `(true, true)`\", async () => {\n\t\t\tconst rejection1 = Promise.reject(\"BOOM!\");\n\t\t\tconst rejection2 = Promise.reject(\"BANG!\");\n\t\t\ttry {\n\t\t\t\tawait expect(\n\t\t\t\t\tFunPromise.resolve([1, 2, rejection1, rejection2]).arrayify(\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t)\n\t\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\t} finally {\n\t\t\t\trejection1.catch((e) => {}); // Disarm the rejection\n\t\t\t\trejection2.catch((e) => {}); // Disarm the rejection\n\t\t\t}\n\t\t});\n\n\t\tit(\"resolves values in order when called with the arguments `(true, true)`\", async () => {\n\t\t\tlet sawFirst = false;\n\t\t\tlet sawSecond = false;\n\t\t\tlet sawThird = false;\n\t\t\tlet sawFourth = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(false);\n\t\t\t\t\t\texpect(sawSecond).toBe(false);\n\t\t\t\t\t\texpect(sawThird).toBe(false);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawFirst = true;\n\t\t\t\t\t\treturn 1;\n\t\t\t\t\t}),\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(true);\n\t\t\t\t\t\texpect(sawSecond).toBe(false);\n\t\t\t\t\t\texpect(sawThird).toBe(false);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawSecond = true;\n\t\t\t\t\t\treturn 2;\n\t\t\t\t\t}),\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(true);\n\t\t\t\t\t\texpect(sawSecond).toBe(true);\n\t\t\t\t\t\texpect(sawThird).toBe(false);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawThird = true;\n\t\t\t\t\t\treturn 3;\n\t\t\t\t\t}),\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(true);\n\t\t\t\t\t\texpect(sawSecond).toBe(true);\n\t\t\t\t\t\texpect(sawThird).toBe(true);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawFourth = true;\n\t\t\t\t\t\treturn 4;\n\t\t\t\t\t}),\n\t\t\t\t]).arrayify(true, true)\n\t\t\t).resolves.toStrictEqual([1, 2, 3, 4]);\n\t\t\texpect(sawFirst).toBe(true);\n\t\t\texpect(sawSecond).toBe(true);\n\t\t\texpect(sawThird).toBe(true);\n\t\t\texpect(sawFourth).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"all\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tdescribe(\"basically works\", () => {\n\t\t\t\t\t_.times(10, (argCount) => {\n\t\t\t\t\t\tconst simpleArgs = _.times(argCount, (i) => 2 ** i);\n\n\t\t\t\t\t\tfunction runAll(args) {\n\t\t\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\t\t\treturn FunPromise.all(args);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn FunPromise.resolve(args).all();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tit(`for ${argCount} arguments`, async () => {\n\t\t\t\t\t\t\tawait expect(runAll(simpleArgs)).resolves.toStrictEqual(\n\t\t\t\t\t\t\t\tsimpleArgs\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"try\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(FunPromise.try(() => true)).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"works with one argument\", async () => {\n\t\t\tawait expect(FunPromise.try((i) => i, 42)).resolves.toBe(42);\n\t\t});\n\n\t\tit(\"explodes properly\", async () => {\n\t\t\tawait expect(FunPromise.try(() => Promise.reject(\"BOOM!\"))).rejects.toBe(\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"map\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tfunction runMap(args, mapper) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.map(args, mapper);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(args).map(mapper);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tawait expect(\n\t\t\t\t\t\trunMap([\"Hello\", \"Goodbye\"], (it) => `${it}, World!`)\n\t\t\t\t\t).resolves.toStrictEqual([\"Hello, World!\", \"Goodbye, World!\"]);\n\t\t\t\t});\n\n\t\t\t\tit(\"works with some test values\", async () => {\n\t\t\t\t\tconst defaultValues = [1, 2, 4, 8, 16];\n\t\t\t\t\tconst defaultMapper = (it) => {\n\t\t\t\t\t\tif (Math.random() < 0.5) {\n\t\t\t\t\t\t\treturn Promise.resolve(it * 2);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn it * 2;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tawait expect(\n\t\t\t\t\t\trunMap(defaultValues, defaultMapper)\n\t\t\t\t\t).resolves.toStrictEqual([2, 4, 8, 16, 32]);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"Symbol.toStringTag\", () => {\n\t\tit(\"is the same as the promise passed in\", () => {\n\t\t\tconst promise = new Promise((resolve) => resolve());\n\t\t\tconst promiseTag = promise[Symbol.toStringTag];\n\t\t\texpect(promiseTag).not.toBeNil();\n\t\t\texpect(new FunPromise(promise)[Symbol.toStringTag]).toBe(promiseTag);\n\t\t});\n\t});\n\n\tdescribe(\"finally\", () => {\n\t\tit(\"returns the same promise when given no arguments\", () => {\n\t\t\texpect(tokenFunPromise.finally()).toBe(tokenFunPromise);\n\t\t});\n\n\t\tit(\"executes on resolution\", async () => {\n\t\t\tlet finallyExecuted = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve(false).finally(() => {\n\t\t\t\t\tfinallyExecuted = true;\n\t\t\t\t})\n\t\t\t).resolves.toBe(false);\n\t\t\texpect(finallyExecuted).toBe(true);\n\t\t});\n\n\t\tit(\"executes on rejection\", async () => {\n\t\t\tlet finallyExecuted = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(\"BOOM!\").finally(() => {\n\t\t\t\t\tfinallyExecuted = true;\n\t\t\t\t})\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\texpect(finallyExecuted).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"reject\", () => {\n\t\t_.forEach(\n\t\t\t{ static: FunPromise, instance: tokenFunPromise },\n\t\t\t(impl, name) => {\n\t\t\t\tdescribe(name, () => {\n\t\t\t\t\tit(\"rejects correctly\", async () => {\n\t\t\t\t\t\tawait expect(impl.reject(true)).rejects.toBe(true);\n\t\t\t\t\t});\n\n\t\t\t\t\tit(\"doesn't change the object that is rejected\", async () => {\n\t\t\t\t\t\tconst reason = { foo: true, bar: 42 };\n\t\t\t\t\t\tawait expect(impl.reject(reason)).rejects.toBe(reason);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t});\n\n\tdescribe(\"coalesce\", () => {\n\t\tfunction runCoalesce(args, test) {\n\t\t\treturn FunPromise.coalesce(args, test);\n\t\t}\n\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => null, Promise.resolve(() => true)])\n\t\t\t).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"returns the first resolving value\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => FunPromise.delay(1000).resolve(true), () => false])\n\t\t\t).resolves.toBe(false);\n\t\t});\n\n\t\tit(\"returns the value that passes the test\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => 2, () => 4], (it) => it > 2)\n\t\t\t).resolves.toBe(4);\n\t\t});\n\n\t\tit(\"throws the error if nothing passes the test\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => Promise.reject(\"BOOM!\"), () => 4], (it) => it > 4)\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t});\n\n\t\tit(\"punts appropriately after the first resolution\", async () => {\n\t\t\tawait expect(runCoalesce(_.times(3, (idx) => () => idx))).resolves.toBe(\n\t\t\t\t0\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"delay\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\t_.forEach([-1000, -1, 0, 1, 1000], (delayMs) => {\n\t\t\t\t\tdescribe(`When requesting a delay of ${delayMs} milliseconds`, () => {\n\t\t\t\t\t\tfunction runDelay(arg) {\n\t\t\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\t\t\treturn FunPromise.delay(delayMs, arg);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn FunPromise.resolve().delay(delayMs, arg);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdescribe(\"basically works\", () => {\n\t\t\t\t\t\t\tit(\"with no arg\", async () => {\n\t\t\t\t\t\t\t\tawait expect(runDelay()).resolves;\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tit(\"with one arg\", async () => {\n\t\t\t\t\t\t\t\tawait expect(runDelay(1000)).resolves.toBe(1000);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"simplify\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(\n\t\t\t\tnew FunPromise(Promise.resolve(Promise.resolve(true))).simplify()\n\t\t\t).resolves.toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"filter\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tconst defaultValues = [\n\t\t\t\t\t1,\n\t\t\t\t\ttrue,\n\t\t\t\t\t{},\n\t\t\t\t\tnull,\n\t\t\t\t\tPromise.resolve(null),\n\t\t\t\t\tPromise.resolve(),\n\t\t\t\t\t\"Hello, Dolly!\",\n\t\t\t\t];\n\t\t\t\tconst defaultExpect = [1, true, {}, \"Hello, Dolly!\"];\n\t\t\t\tconst defaultTest = (it) => !_.isNil(it);\n\t\t\t\tfunction doFilter(values = defaultValues, test = defaultTest) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.filter(values, test);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).filter(test);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tawait expect(doFilter()).resolves.not.toBeEmpty();\n\t\t\t\t\tawait expect(doFilter()).resolves.toBeArrayOfSize(4);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"flatMap\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tconst defaultValues = [\n\t\t\t\t\t1,\n\t\t\t\t\ttrue,\n\t\t\t\t\t{},\n\t\t\t\t\tnull,\n\t\t\t\t\tPromise.resolve(null),\n\t\t\t\t\tPromise.resolve(),\n\t\t\t\t\t\"Hello, Dolly!\",\n\t\t\t\t];\n\t\t\t\tconst defaultMapper = (it) => {\n\t\t\t\t\tif (_.isNil(it)) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn [it];\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst defaultExpect = [1, true, {}, \"Hello, Dolly!\"];\n\t\t\t\tfunction doFlatMap(values = defaultValues, mapper = defaultMapper) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.flatMap(values, mapper);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).flatMap(mapper);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tawait expect(doFlatMap()).resolves.toStrictEqual(defaultExpect);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"tap\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tlet sawTap = false;\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise.tap((val) => {\n\t\t\t\t\texpect(val).toBe(true);\n\t\t\t\t\tsawTap = true;\n\t\t\t\t\treturn false;\n\t\t\t\t})\n\t\t\t).resolves.toBe(true);\n\t\t\texpect(sawTap).toBe(true);\n\t\t});\n\n\t\tit(\"rejects if it throws an exception\", async () => {\n\t\t\tlet sawTap = false;\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise.tap((val) => {\n\t\t\t\t\tsawTap = true;\n\t\t\t\t\tthrow \"BOOM!\";\n\t\t\t\t})\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\texpect(sawTap).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"fold\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tconst defaultValues = [1, 2, 3, 4, 5];\n\n\t\t\t\tfunction doFold(\n\t\t\t\t\tvalues = defaultValues,\n\t\t\t\t\tinitialValue = 0,\n\t\t\t\t\taccumulator = (a, b) => a + b\n\t\t\t\t) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.fold(values, initialValue, accumulator);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).fold(initialValue, accumulator);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tconst values = [1, 2, 3, 4, 5];\n\t\t\t\t\tawait expect(doFold()).resolves.toBe(1 + 2 + 3 + 4 + 5);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"tapCatch\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tlet sawTapCatch = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(\"BOOM!\").tapCatch((e) => {\n\t\t\t\t\tsawTapCatch = true;\n\t\t\t\t\texpect(e).toBe(\"BOOM!\");\n\t\t\t\t\treturn \"BANG!\";\n\t\t\t\t})\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\texpect(sawTapCatch).toBe(true);\n\t\t});\n\n\t\tit(\"nests explosions\", async () => {\n\t\t\tlet sawCatch = false;\n\t\t\tconst err1 = new Error(\"BOOM!\");\n\t\t\tconst err2 = new Error(\"BANG!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(err1)\n\t\t\t\t\t.tapCatch((e) => {\n\t\t\t\t\t\tthrow err2;\n\t\t\t\t\t})\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\tsawCatch = true;\n\t\t\t\t\t\texpect(e).toBeInstanceOf(NestedError);\n\t\t\t\t\t\texpect(e).toHaveProperty(\"message\", \"Error thrown in 'tapCatch'\");\n\t\t\t\t\t\texpect(e).toHaveProperty(\"innerErrors\");\n\t\t\t\t\t\texpect(e.innerErrors).toHaveLength(2);\n\t\t\t\t\t\texpect(e.innerErrors).toEqual([err1, err2]);\n\t\t\t\t\t\treturn \"Hello!\";\n\t\t\t\t\t})\n\t\t\t).resolves.toBe(\"Hello!\");\n\t\t\texpect(sawCatch).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"tapEach\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst values = [\n\t\t\t\t123,\n\t\t\t\tPromise.resolve(true),\n\t\t\t\t\"Hello, Dolly!\",\n\t\t\t\tnull,\n\t\t\t\tundefined,\n\t\t\t];\n\t\t\tconst funPromise = FunPromise.resolve(values);\n\t\t\tlet count = 0;\n\t\t\tawait expect(\n\t\t\t\tfunPromise.tapEach(() => {\n\t\t\t\t\tcount++;\n\t\t\t\t})\n\t\t\t).resolves.toEqual(await Promise.all(values));\n\t\t\texpect(count).toBe(values.length);\n\t\t});\n\t});\n\n\tdescribe(\"wrapError\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst reason = \"BOOM!\";\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(reason).wrapError(\"BANG!\")\n\t\t\t).rejects.toHaveProperty(\"message\", \"BANG!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(reason).wrapError(\"BANG!\")\n\t\t\t).rejects.toHaveProperty(\"innerError\");\n\t\t});\n\t});\n\n\tdescribe(\"wrapErrors\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst err1 = new Error(\"BOOM!\");\n\t\t\tconst err2 = new Error(\"BANG!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([Promise.reject(err1), Promise.reject(err2)])\n\t\t\t\t\t.wrapErrors(\"ERRORS!\")\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\texpect(e).toBeInstanceOf(NestedError);\n\t\t\t\t\t\texpect(e).toHaveProperty(\"message\", \"ERRORS!\");\n\t\t\t\t\t\texpect(e.innerErrors).toHaveLength(2);\n\t\t\t\t\t\texpect(e.innerErrors).toEqual([err1, err2]);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t})\n\t\t\t).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"doesn't do anything if there is no error\", async () => {\n\t\t\tconst values = [1, 2, 3, true, false, null, undefined];\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve(values).wrapErrors(\"ERRORS!\")\n\t\t\t).resolves.toEqual(values);\n\t\t});\n\t});\n\n\tdescribe(\"cancellation\", () => {\n\t\tit(\"initially reports not cancelled\", () => {\n\t\t\texpect(FunPromise.resolve(true).isCancelled()).toBe(false);\n\t\t});\n\n\t\tit(\"reports cancelled after cancel is called\", () => {\n\t\t\texpect(FunPromise.resolve(true).cancel().isCancelled()).toBe(true);\n\t\t});\n\n\t\tit(\"prevents resolution after cancellation\", () => {\n\t\t\tlet resolver;\n\t\t\tlet sawResolve = false;\n\t\t\tconst promise = new Promise((resolve) => {\n\t\t\t\tresolver = resolve;\n\t\t\t}).then(() => {\n\t\t\t\tsawResolve = true;\n\t\t\t});\n\t\t\texpect(resolver).not.toBeNil();\n\t\t\tconst cancelled = new FunPromise(promise).cancel();\n\t\t\tresolver(true);\n\t\t\texpect(sawResolve).toBe(false);\n\t\t});\n\n\t\tit(\"prevents rejection after cancellation\", () => {\n\t\t\tlet rejector;\n\t\t\tlet sawReject = false;\n\t\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\t\trejector = reject;\n\t\t\t}).catch(() => {\n\t\t\t\tsawReject = true;\n\t\t\t});\n\t\t\texpect(rejector).not.toBeNil();\n\t\t\tconst cancelled = new FunPromise(promise).cancel();\n\t\t\trejector(\"BOOM!\");\n\t\t\texpect(sawReject).toBe(false);\n\t\t});\n\n\t\tit(\"prevents rejection when resolving throws after cancellation\", () => {\n\t\t\tlet resolver;\n\t\t\tlet sawThen = true;\n\t\t\tlet sawCatch = false;\n\t\t\tlet doCancel;\n\t\t\tconst promise = new Promise((resolve) => {\n\t\t\t\tresolver = resolve;\n\t\t\t}).then(() => {\n\t\t\t\tsawThen = true;\n\t\t\t\tdoCancel();\n\t\t\t\tthrow \"BOOM!\";\n\t\t\t});\n\t\t\texpect(resolver).not.toBeNil();\n\t\t\tconst toCancel = new FunPromise(promise);\n\t\t\tdoCancel = () => {\n\t\t\t\ttoCancel.cancel();\n\t\t\t};\n\t\t\ttoCancel.catch((e) => {\n\t\t\t\tsawCatch = true;\n\t\t\t});\n\t\t\tresolver(true);\n\t\t\texpect(sawThen).toBe(true);\n\t\t\texpect(sawCatch).toBe(false);\n\t\t});\n\t});\n\n\tdescribe(\"simplifyAll\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(FunPromise.resolve(\"Hello\").simplifyAll()).resolves.toEqual([\n\t\t\t\t\"H\",\n\t\t\t\t\"e\",\n\t\t\t\t\"l\",\n\t\t\t\t\"l\",\n\t\t\t\t\"o\",\n\t\t\t]);\n\t\t});\n\n\t\tit(\"doesn't explode on an empty list\", async () => {\n\t\t\tawait expect(FunPromise.resolve([]).simplifyAll()).resolves.toEqual([]);\n\t\t});\n\t});\n\n\tdescribe(\"settle\", () => {\n\t\tit(\"basically works for rejections\", async () => {\n\t\t\tawait expect(FunPromise.reject(\"BOOM!\").settle()).resolves.toHaveProperty(\n\t\t\t\t\"reason\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\n\t\tit(\"basically works for fulfillments\", async () => {\n\t\t\tawait expect(FunPromise.resolve(true).settle()).resolves.toHaveProperty(\n\t\t\t\t\"value\",\n\t\t\t\ttrue\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"settleAll\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tfunction doSettleAll(values) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.settleAll(values);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).settleAll();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tconst values = [\n\t\t\t\t\t\t{ in: Promise.resolve(true), out: new Fulfillment(true) },\n\t\t\t\t\t\t{ in: Promise.reject(\"BOOM!\"), out: new Rejection(\"BOOM!\") },\n\t\t\t\t\t\t{ in: Promise.reject(null), out: new Rejection(null) },\n\t\t\t\t\t\t{ in: null, out: new Fulfillment(null) },\n\t\t\t\t\t];\n\t\t\t\t\tawait expect(doSettleAll(_.map(values, \"in\"))).resolves.toEqual(\n\t\t\t\t\t\t_.map(values, \"out\")\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\tit(\"doesn't explode on empty lists\", async () => {\n\t\t\t\t\tawait expect(doSettleAll([])).resolves.toEqual([]);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n});\n"]} \ No newline at end of file diff --git a/dist/es6/umd/src/types.test.d.ts b/dist/es6/umd/src/types.test.d.ts deleted file mode 100644 index 961011c..0000000 --- a/dist/es6/umd/src/types.test.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=types.test.d.ts.map \ No newline at end of file diff --git a/dist/es6/umd/src/types.test.d.ts.map b/dist/es6/umd/src/types.test.d.ts.map deleted file mode 100644 index 87481cd..0000000 --- a/dist/es6/umd/src/types.test.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../../../src/types.test.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/es6/umd/src/types.test.js b/dist/es6/umd/src/types.test.js deleted file mode 100644 index baadde2..0000000 --- a/dist/es6/umd/src/types.test.js +++ /dev/null @@ -1,42 +0,0 @@ -/** @format */ -(function (factory) { - if (typeof module === "object" && typeof module.exports === "object") { - var v = factory(require, exports); - if (v !== undefined) module.exports = v; - } - else if (typeof define === "function" && define.amd) { - define(["require", "exports", "./types", "lodash"], factory); - } -})(function (require, exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - const types_1 = require("./types"); - const lodash_1 = require("lodash"); - describe("Fulfillment", () => { - lodash_1.default.forEach([true, { foo: true }], (arg) => { - describe(`when passed the ${typeof arg} argument '${JSON.stringify(arg)}'`, () => { - const fulfillment = new types_1.Fulfillment(arg); - it("exposes the argument on the 'value' property", () => { - expect(fulfillment).toHaveProperty("value", arg); - }); - it("has a 'status' property of 'fulfilled'", () => { - expect(fulfillment).toHaveProperty("status", "fulfilled"); - }); - }); - }); - }); - describe("Rejection", () => { - lodash_1.default.forEach(["BOOM!", new Error("BOOM!")], (arg) => { - describe(`when passed the ${typeof arg} argument: '${arg}'`, () => { - const rejection = new types_1.Rejection(arg); - it("returns the argument in the 'reason' property", () => { - expect(rejection).toHaveProperty("reason", arg); - }); - it("has a 'status' property whose value is 'rejected'", () => { - expect(rejection).toHaveProperty("status", "rejected"); - }); - }); - }); - }); -}); -//# sourceMappingURL=types.test.js.map \ No newline at end of file diff --git a/dist/es6/umd/src/types.test.js.map b/dist/es6/umd/src/types.test.js.map deleted file mode 100644 index 6cdc7aa..0000000 --- a/dist/es6/umd/src/types.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../../../src/types.test.js"],"names":[],"mappings":"AAAA,cAAc;;;;;;;;;;;;IAEd,mCAAiD;IACjD,mCAAuB;IAEvB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC5B,gBAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACxC,QAAQ,CAAC,mBAAmB,OAAO,GAAG,cAAc,IAAI,CAAC,SAAS,CACjE,GAAG,CACH,GAAG,EAAE,GAAG,EAAE;gBACV,MAAM,WAAW,GAAG,IAAI,mBAAW,CAAC,GAAG,CAAC,CAAC;gBAEzC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;oBACvD,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAClD,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;oBACjD,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;gBAC3D,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QAC1B,gBAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAChD,QAAQ,CAAC,mBAAmB,OAAO,GAAG,eAAe,GAAG,GAAG,EAAE,GAAG,EAAE;gBACjE,MAAM,SAAS,GAAG,IAAI,iBAAS,CAAC,GAAG,CAAC,CAAC;gBAErC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;oBACxD,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACjD,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;oBAC5D,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACxD,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC","sourcesContent":["/** @format */\n\nimport { Fulfillment, Rejection } from \"./types\";\nimport _ from \"lodash\";\n\ndescribe(\"Fulfillment\", () => {\n\t_.forEach([true, { foo: true }], (arg) => {\n\t\tdescribe(`when passed the ${typeof arg} argument '${JSON.stringify(\n\t\t\targ\n\t\t)}'`, () => {\n\t\t\tconst fulfillment = new Fulfillment(arg);\n\n\t\t\tit(\"exposes the argument on the 'value' property\", () => {\n\t\t\t\texpect(fulfillment).toHaveProperty(\"value\", arg);\n\t\t\t});\n\n\t\t\tit(\"has a 'status' property of 'fulfilled'\", () => {\n\t\t\t\texpect(fulfillment).toHaveProperty(\"status\", \"fulfilled\");\n\t\t\t});\n\t\t});\n\t});\n});\n\ndescribe(\"Rejection\", () => {\n\t_.forEach([\"BOOM!\", new Error(\"BOOM!\")], (arg) => {\n\t\tdescribe(`when passed the ${typeof arg} argument: '${arg}'`, () => {\n\t\t\tconst rejection = new Rejection(arg);\n\n\t\t\tit(\"returns the argument in the 'reason' property\", () => {\n\t\t\t\texpect(rejection).toHaveProperty(\"reason\", arg);\n\t\t\t});\n\n\t\t\tit(\"has a 'status' property whose value is 'rejected'\", () => {\n\t\t\t\texpect(rejection).toHaveProperty(\"status\", \"rejected\");\n\t\t\t});\n\t\t});\n\t});\n});\n"]} \ No newline at end of file diff --git a/dist/esm.index.js.xz b/dist/esm.index.js.xz new file mode 100644 index 0000000000000000000000000000000000000000..ae78eeabc304b2ce0ac0b940433952168ed60751 GIT binary patch literal 480 zcmV<60U!STH+ooF000E$*0e?f03iVu0001VFXf})C;tJUT>uvg$)}l&u;dj1tPQQF z9an5w(!<9WQxQsjics{E9>L%P7#_gO!wRRx3Xa&~{@GaIIRoas?dnP=;Hp?lLaY5a z#gY*9Pz#h+Y7MZ+VQBF69}#aRR_O`z&0t4->-WU)CrT>R+3e%d!T6MteOO*#sD=5{ z4H~-5-SC-NhyL39U{O4Irr1L@zjDNE*sm&0Fm1^1zFO&Ss(s^$z{ujR;0jL3dXZ$2 z>NfD9Jg&$WB&NzkWQcD#r^Wn8jH=sH(GmDFGK4(X^ung2!pj@SZw%Q_wJu2%CN*{Y ztP-z+THg6Cpz44Kfb7XJr)K(Aa~eG!8zv$&mZx~M1+16MHa=aJPR154rg#r`V#Loa zc?cY;Vn#1oggs@P+`eel9{+-bg?yCy47J3KSP!aqB^}8*4AP;;rh9Z_Wx%Xekk*AG zt3)+NJGwBuoc3<*$;i zl^;{1Otxd?QUxXV)9#vWdY?sQ)hjID+S@UI_Xtt)a={s-Q~&@v5246SY};S}0lWi% WPyhgkuvg$)}l&u;dj1tPQQF z9an5w(!<9WQxQsjics{E9>L%P7#_gO!wRRaf>uX}=!H{!S(}$j1b|bOW>5PyXl{1@hJnB@CpT=sMW1^f9j<}VB2vQ1Ro{yCZ{>0k;Jo3BW)iT zb;{V^&FWdHcAQU|i^c?BU>1QX$^HY?t2OxW7{lnUJeILSz%1fG4QR9%H7ix#jgA?u znPqNGk@%7jNi^#Z!fW6ind{yJ+ { - it("can be constructed", () => { - const deferral = new Deferral(); - expect(deferral).not.toBeNil(); - }); - describe("promise", () => { - it("is a FunPromise", () => { - const deferral = new Deferral(); - expect(deferral.promise).toBeInstanceOf(FunPromise); - }); - }); - describe("resolve", () => { - it("basically works", async () => { - const deferral = new Deferral(); - deferral.resolve(true); - await expect(deferral.resolve(true)).resolves.toBe(true); - }); - it("does not change resolved value if called multiple times", async () => { - const deferral = new Deferral(); - await expect(deferral.resolve(true)).resolves.toBe(true); - await expect(deferral.resolve(false)).resolves.toBe(true); - }); - }); - describe("reject", () => { - it("basically works", async () => { - const deferral = new Deferral(); - await expect(deferral.reject(new Error("BOOM!"))).rejects.toHaveProperty("message", "BOOM!"); - }); - it("does not change reason if called multiple times", async () => { - const deferral = new Deferral(); - await expect(deferral.reject(new Error("BOOM!"))).rejects.toHaveProperty("message", "BOOM!"); - await expect(deferral.reject(new Error("BANG!"))).rejects.toHaveProperty("message", "BOOM!"); - }); - }); -}); -//# sourceMappingURL=deferral.test.js.map \ No newline at end of file diff --git a/dist/esnext/src/deferral.test.js.map b/dist/esnext/src/deferral.test.js.map deleted file mode 100644 index 21c51b0..0000000 --- a/dist/esnext/src/deferral.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"deferral.test.js","sourceRoot":"","sources":["../../../src/deferral.test.js"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAA6B,SAAS,CAAC;AACvC,OAAc,QAAQ,CAAC;AAEvB,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC7B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;YAC1B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;YAChC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;YAChC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CACvE,SAAS,EACT,OAAO,CACP,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CACvE,SAAS,EACT,OAAO,CACP,CAAC;YACF,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CACvE,SAAS,EACT,OAAO,CACP,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["/** @format */\n\nimport FunPromise from \"./fun-promise\";\nimport Deferral from \"./deferral\";\nimport { PromiseState } from \"./types\";\nimport _ from \"lodash\";\n\ndescribe(\"Deferral\", () => {\n\tit(\"can be constructed\", () => {\n\t\tconst deferral = new Deferral();\n\t\texpect(deferral).not.toBeNil();\n\t});\n\n\tdescribe(\"promise\", () => {\n\t\tit(\"is a FunPromise\", () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\texpect(deferral.promise).toBeInstanceOf(FunPromise);\n\t\t});\n\t});\n\n\tdescribe(\"resolve\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tdeferral.resolve(true);\n\t\t\tawait expect(deferral.resolve(true)).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"does not change resolved value if called multiple times\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tawait expect(deferral.resolve(true)).resolves.toBe(true);\n\t\t\tawait expect(deferral.resolve(false)).resolves.toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"reject\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tawait expect(deferral.reject(new Error(\"BOOM!\"))).rejects.toHaveProperty(\n\t\t\t\t\"message\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\n\t\tit(\"does not change reason if called multiple times\", async () => {\n\t\t\tconst deferral = new Deferral();\n\t\t\tawait expect(deferral.reject(new Error(\"BOOM!\"))).rejects.toHaveProperty(\n\t\t\t\t\"message\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t\tawait expect(deferral.reject(new Error(\"BANG!\"))).rejects.toHaveProperty(\n\t\t\t\t\"message\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\t});\n});\n"]} \ No newline at end of file diff --git a/dist/esnext/src/fun-promise.test.d.ts b/dist/esnext/src/fun-promise.test.d.ts deleted file mode 100644 index 597914a..0000000 --- a/dist/esnext/src/fun-promise.test.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=fun-promise.test.d.ts.map \ No newline at end of file diff --git a/dist/esnext/src/fun-promise.test.d.ts.map b/dist/esnext/src/fun-promise.test.d.ts.map deleted file mode 100644 index fe6edac..0000000 --- a/dist/esnext/src/fun-promise.test.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"fun-promise.test.d.ts","sourceRoot":"","sources":["../../../src/fun-promise.test.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/esnext/src/fun-promise.test.js b/dist/esnext/src/fun-promise.test.js deleted file mode 100644 index df3f25e..0000000 --- a/dist/esnext/src/fun-promise.test.js +++ /dev/null @@ -1,598 +0,0 @@ -/** @format */ -import FunPromise from "./fun-promise"; -import _ from "lodash"; -import { NestedError } from "ts-nested-error"; -import { Fulfillment, Rejection } from "./types"; -const tokenPromise = new Promise((resolve) => resolve(true)); -const tokenFunPromise = new FunPromise(tokenPromise); -function withRejection(rejectionReason, callback) { - const rejection = Promise.reject(rejectionReason); - try { - return callback(rejection); - } - finally { - rejection.catch(_.noop); // Disable uncaught exception issues - } -} -describe("FunPromise", () => { - it("can be constructed and resolved", async () => { - await expect(new FunPromise(tokenPromise)).resolves.toBe(true); - }); - describe("resolve/return", () => { - _.forEach({ static: FunPromise, instance: tokenFunPromise }, (impl, implName) => { - _.forEach(["resolve", "return"], (methodName) => { - describe(methodName, () => { - describe(implName, () => { - function doResolve(value) { - return impl[methodName](value); - } - it("rejects when provided a rejection", async () => { - await expect(doResolve(Promise.reject("BOOM!"))).rejects.toBe("BOOM!"); - }); - it("does not resolve the elements of an array", async () => { - expect.hasAssertions(); - await withRejection("BOOM!", async (rejection) => { - await expect(doResolve([rejection])).resolves.toHaveLength(1); - }); - }); - describe("resolves correctly", () => { - it("with a value", async () => { - await expect(doResolve(tokenPromise)).resolves.toBe(true); - }); - it("returns the FunPromise if passed a FunPromise", () => { - expect(doResolve(tokenFunPromise)).toEqual(tokenFunPromise); - }); - it("without a value", async () => { - await expect(doResolve()).resolves.toBeNil(); - }); - }); - }); - }); - }); - }); - }); - describe("then", () => { - it("works without onrejected", async () => { - await expect(tokenFunPromise.then(_.identity)).resolves.toBe(true); - }); - }); - describe("catch", () => { - it("handles rejections", async () => { - await expect(tokenFunPromise - .then(() => Promise.reject("BOOM!")) - .catch((e) => { - expect(e).toBe("BOOM!"); - return "DONE!"; - })).resolves.toBe("DONE!"); - }); - it("returns the error when not passed an argument", async () => { - const error = new Error("BOOM!"); - await expect(tokenFunPromise.then(() => Promise.reject(error)).catch()).resolves.toBe(error); - }); - }); - describe("arrayify", () => { - it("basically works", async () => { - const value = [1, 2, 3, 4]; - await expect(FunPromise.resolve(value).arrayify()).resolves.toStrictEqual(value); - }); - it("returns a clone", async () => { - const value = [1, 2, 3, 4]; - await expect(FunPromise.resolve(value) - .arrayify() - .then((it) => { - it.pop(); - return it; - })).resolves.not.toBe(value); - expect(value).toHaveLength(4); - }); - it("does not resolve values when called without an argument", async () => { - const rejection = Promise.reject("BOOM!"); - try { - await expect(FunPromise.resolve([1, 2, rejection]).arrayify()).resolves.toBeArrayOfSize(3); - } - finally { - rejection.catch((e) => { }); // Disarm the rejection - } - }); - it("resolves values when called with the sole argument `true`", async () => { - await expect(FunPromise.resolve([ - Promise.resolve(1), - FunPromise.resolve(2), - ]).arrayify(true)).resolves.toEqual([1, 2]); - }); - it("rejects values when called with the sole argument `true` and a rejection in the mix", async () => { - const rejection = Promise.reject("BOOM!"); - await expect(FunPromise.resolve([1, 2, rejection]).arrayify(true)).rejects.toBe("BOOM!"); - }); - it("rejects values in order when called with the arguments `(true, true)`", async () => { - const rejection1 = Promise.reject("BOOM!"); - const rejection2 = Promise.reject("BANG!"); - try { - await expect(FunPromise.resolve([1, 2, rejection1, rejection2]).arrayify(true, true)).rejects.toBe("BOOM!"); - } - finally { - rejection1.catch((e) => { }); // Disarm the rejection - rejection2.catch((e) => { }); // Disarm the rejection - } - }); - it("resolves values in order when called with the arguments `(true, true)`", async () => { - let sawFirst = false; - let sawSecond = false; - let sawThird = false; - let sawFourth = false; - await expect(FunPromise.resolve([ - FunPromise.try(() => { - expect(sawFirst).toBe(false); - expect(sawSecond).toBe(false); - expect(sawThird).toBe(false); - expect(sawFourth).toBe(false); - sawFirst = true; - return 1; - }), - FunPromise.try(() => { - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(false); - expect(sawThird).toBe(false); - expect(sawFourth).toBe(false); - sawSecond = true; - return 2; - }), - FunPromise.try(() => { - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(true); - expect(sawThird).toBe(false); - expect(sawFourth).toBe(false); - sawThird = true; - return 3; - }), - FunPromise.try(() => { - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(true); - expect(sawThird).toBe(true); - expect(sawFourth).toBe(false); - sawFourth = true; - return 4; - }), - ]).arrayify(true, true)).resolves.toStrictEqual([1, 2, 3, 4]); - expect(sawFirst).toBe(true); - expect(sawSecond).toBe(true); - expect(sawThird).toBe(true); - expect(sawFourth).toBe(true); - }); - }); - describe("all", () => { - _.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - describe("basically works", () => { - _.times(10, (argCount) => { - const simpleArgs = _.times(argCount, (i) => 2 ** i); - function runAll(args) { - if (staticVersion) { - return FunPromise.all(args); - } - else { - return FunPromise.resolve(args).all(); - } - } - it(`for ${argCount} arguments`, async () => { - await expect(runAll(simpleArgs)).resolves.toStrictEqual(simpleArgs); - }); - }); - }); - }); - }); - }); - describe("try", () => { - it("basically works", async () => { - await expect(FunPromise.try(() => true)).resolves.toBe(true); - }); - it("works with one argument", async () => { - await expect(FunPromise.try((i) => i, 42)).resolves.toBe(42); - }); - it("explodes properly", async () => { - await expect(FunPromise.try(() => Promise.reject("BOOM!"))).rejects.toBe("BOOM!"); - }); - }); - describe("map", () => { - _.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - function runMap(args, mapper) { - if (staticVersion) { - return FunPromise.map(args, mapper); - } - else { - return FunPromise.resolve(args).map(mapper); - } - } - it("basically works", async () => { - await expect(runMap(["Hello", "Goodbye"], (it) => `${it}, World!`)).resolves.toStrictEqual(["Hello, World!", "Goodbye, World!"]); - }); - it("works with some test values", async () => { - const defaultValues = [1, 2, 4, 8, 16]; - const defaultMapper = (it) => { - if (Math.random() < 0.5) { - return Promise.resolve(it * 2); - } - else { - return it * 2; - } - }; - await expect(runMap(defaultValues, defaultMapper)).resolves.toStrictEqual([2, 4, 8, 16, 32]); - }); - }); - }); - }); - describe("Symbol.toStringTag", () => { - it("is the same as the promise passed in", () => { - const promise = new Promise((resolve) => resolve()); - const promiseTag = promise[Symbol.toStringTag]; - expect(promiseTag).not.toBeNil(); - expect(new FunPromise(promise)[Symbol.toStringTag]).toBe(promiseTag); - }); - }); - describe("finally", () => { - it("returns the same promise when given no arguments", () => { - expect(tokenFunPromise.finally()).toBe(tokenFunPromise); - }); - it("executes on resolution", async () => { - let finallyExecuted = false; - await expect(FunPromise.resolve(false).finally(() => { - finallyExecuted = true; - })).resolves.toBe(false); - expect(finallyExecuted).toBe(true); - }); - it("executes on rejection", async () => { - let finallyExecuted = false; - await expect(FunPromise.reject("BOOM!").finally(() => { - finallyExecuted = true; - })).rejects.toBe("BOOM!"); - expect(finallyExecuted).toBe(true); - }); - }); - describe("reject", () => { - _.forEach({ static: FunPromise, instance: tokenFunPromise }, (impl, name) => { - describe(name, () => { - it("rejects correctly", async () => { - await expect(impl.reject(true)).rejects.toBe(true); - }); - it("doesn't change the object that is rejected", async () => { - const reason = { foo: true, bar: 42 }; - await expect(impl.reject(reason)).rejects.toBe(reason); - }); - }); - }); - }); - describe("coalesce", () => { - function runCoalesce(args, test) { - return FunPromise.coalesce(args, test); - } - it("basically works", async () => { - await expect(runCoalesce([() => null, Promise.resolve(() => true)])).resolves.toBe(true); - }); - it("returns the first resolving value", async () => { - await expect(runCoalesce([() => FunPromise.delay(1000).resolve(true), () => false])).resolves.toBe(false); - }); - it("returns the value that passes the test", async () => { - await expect(runCoalesce([() => 2, () => 4], (it) => it > 2)).resolves.toBe(4); - }); - it("throws the error if nothing passes the test", async () => { - await expect(runCoalesce([() => Promise.reject("BOOM!"), () => 4], (it) => it > 4)).rejects.toBe("BOOM!"); - }); - it("punts appropriately after the first resolution", async () => { - await expect(runCoalesce(_.times(3, (idx) => () => idx))).resolves.toBe(0); - }); - }); - describe("delay", () => { - _.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - _.forEach([-1000, -1, 0, 1, 1000], (delayMs) => { - describe(`When requesting a delay of ${delayMs} milliseconds`, () => { - function runDelay(arg) { - if (staticVersion) { - return FunPromise.delay(delayMs, arg); - } - else { - return FunPromise.resolve().delay(delayMs, arg); - } - } - describe("basically works", () => { - it("with no arg", async () => { - await expect(runDelay()).resolves; - }); - it("with one arg", async () => { - await expect(runDelay(1000)).resolves.toBe(1000); - }); - }); - }); - }); - }); - }); - }); - describe("simplify", () => { - it("basically works", async () => { - await expect(new FunPromise(Promise.resolve(Promise.resolve(true))).simplify()).resolves.toBe(true); - }); - }); - describe("filter", () => { - _.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - const defaultValues = [ - 1, - true, - {}, - null, - Promise.resolve(null), - Promise.resolve(), - "Hello, Dolly!", - ]; - const defaultExpect = [1, true, {}, "Hello, Dolly!"]; - const defaultTest = (it) => !_.isNil(it); - function doFilter(values = defaultValues, test = defaultTest) { - if (staticVersion) { - return FunPromise.filter(values, test); - } - else { - return FunPromise.resolve(values).filter(test); - } - } - it("basically works", async () => { - await expect(doFilter()).resolves.not.toBeEmpty(); - await expect(doFilter()).resolves.toBeArrayOfSize(4); - }); - }); - }); - }); - describe("flatMap", () => { - _.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - const defaultValues = [ - 1, - true, - {}, - null, - Promise.resolve(null), - Promise.resolve(), - "Hello, Dolly!", - ]; - const defaultMapper = (it) => { - if (_.isNil(it)) { - return []; - } - else { - return [it]; - } - }; - const defaultExpect = [1, true, {}, "Hello, Dolly!"]; - function doFlatMap(values = defaultValues, mapper = defaultMapper) { - if (staticVersion) { - return FunPromise.flatMap(values, mapper); - } - else { - return FunPromise.resolve(values).flatMap(mapper); - } - } - it("basically works", async () => { - await expect(doFlatMap()).resolves.toStrictEqual(defaultExpect); - }); - }); - }); - }); - describe("tap", () => { - it("basically works", async () => { - let sawTap = false; - await expect(tokenFunPromise.tap((val) => { - expect(val).toBe(true); - sawTap = true; - return false; - })).resolves.toBe(true); - expect(sawTap).toBe(true); - }); - it("rejects if it throws an exception", async () => { - let sawTap = false; - await expect(tokenFunPromise.tap((val) => { - sawTap = true; - throw "BOOM!"; - })).rejects.toBe("BOOM!"); - expect(sawTap).toBe(true); - }); - }); - describe("fold", () => { - _.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - const defaultValues = [1, 2, 3, 4, 5]; - function doFold(values = defaultValues, initialValue = 0, accumulator = (a, b) => a + b) { - if (staticVersion) { - return FunPromise.fold(values, initialValue, accumulator); - } - else { - return FunPromise.resolve(values).fold(initialValue, accumulator); - } - } - it("basically works", async () => { - const values = [1, 2, 3, 4, 5]; - await expect(doFold()).resolves.toBe(1 + 2 + 3 + 4 + 5); - }); - }); - }); - }); - describe("tapCatch", () => { - it("basically works", async () => { - let sawTapCatch = false; - await expect(FunPromise.reject("BOOM!").tapCatch((e) => { - sawTapCatch = true; - expect(e).toBe("BOOM!"); - return "BANG!"; - })).rejects.toBe("BOOM!"); - expect(sawTapCatch).toBe(true); - }); - it("nests explosions", async () => { - let sawCatch = false; - const err1 = new Error("BOOM!"); - const err2 = new Error("BANG!"); - await expect(FunPromise.reject(err1) - .tapCatch((e) => { - throw err2; - }) - .catch((e) => { - sawCatch = true; - expect(e).toBeInstanceOf(NestedError); - expect(e).toHaveProperty("message", "Error thrown in 'tapCatch'"); - expect(e).toHaveProperty("innerErrors"); - expect(e.innerErrors).toHaveLength(2); - expect(e.innerErrors).toEqual([err1, err2]); - return "Hello!"; - })).resolves.toBe("Hello!"); - expect(sawCatch).toBe(true); - }); - }); - describe("tapEach", () => { - it("basically works", async () => { - const values = [ - 123, - Promise.resolve(true), - "Hello, Dolly!", - null, - undefined, - ]; - const funPromise = FunPromise.resolve(values); - let count = 0; - await expect(funPromise.tapEach(() => { - count++; - })).resolves.toEqual(await Promise.all(values)); - expect(count).toBe(values.length); - }); - }); - describe("wrapError", () => { - it("basically works", async () => { - const reason = "BOOM!"; - await expect(FunPromise.reject(reason).wrapError("BANG!")).rejects.toHaveProperty("message", "BANG!"); - await expect(FunPromise.reject(reason).wrapError("BANG!")).rejects.toHaveProperty("innerError"); - }); - }); - describe("wrapErrors", () => { - it("basically works", async () => { - const err1 = new Error("BOOM!"); - const err2 = new Error("BANG!"); - await expect(FunPromise.resolve([Promise.reject(err1), Promise.reject(err2)]) - .wrapErrors("ERRORS!") - .catch((e) => { - expect(e).toBeInstanceOf(NestedError); - expect(e).toHaveProperty("message", "ERRORS!"); - expect(e.innerErrors).toHaveLength(2); - expect(e.innerErrors).toEqual([err1, err2]); - return true; - })).resolves.toBe(true); - }); - it("doesn't do anything if there is no error", async () => { - const values = [1, 2, 3, true, false, null, undefined]; - await expect(FunPromise.resolve(values).wrapErrors("ERRORS!")).resolves.toEqual(values); - }); - }); - describe("cancellation", () => { - it("initially reports not cancelled", () => { - expect(FunPromise.resolve(true).isCancelled()).toBe(false); - }); - it("reports cancelled after cancel is called", () => { - expect(FunPromise.resolve(true).cancel().isCancelled()).toBe(true); - }); - it("prevents resolution after cancellation", () => { - let resolver; - let sawResolve = false; - const promise = new Promise((resolve) => { - resolver = resolve; - }).then(() => { - sawResolve = true; - }); - expect(resolver).not.toBeNil(); - const cancelled = new FunPromise(promise).cancel(); - resolver(true); - expect(sawResolve).toBe(false); - }); - it("prevents rejection after cancellation", () => { - let rejector; - let sawReject = false; - const promise = new Promise((resolve, reject) => { - rejector = reject; - }).catch(() => { - sawReject = true; - }); - expect(rejector).not.toBeNil(); - const cancelled = new FunPromise(promise).cancel(); - rejector("BOOM!"); - expect(sawReject).toBe(false); - }); - it("prevents rejection when resolving throws after cancellation", () => { - let resolver; - let sawThen = true; - let sawCatch = false; - let doCancel; - const promise = new Promise((resolve) => { - resolver = resolve; - }).then(() => { - sawThen = true; - doCancel(); - throw "BOOM!"; - }); - expect(resolver).not.toBeNil(); - const toCancel = new FunPromise(promise); - doCancel = () => { - toCancel.cancel(); - }; - toCancel.catch((e) => { - sawCatch = true; - }); - resolver(true); - expect(sawThen).toBe(true); - expect(sawCatch).toBe(false); - }); - }); - describe("simplifyAll", () => { - it("basically works", async () => { - await expect(FunPromise.resolve("Hello").simplifyAll()).resolves.toEqual([ - "H", - "e", - "l", - "l", - "o", - ]); - }); - it("doesn't explode on an empty list", async () => { - await expect(FunPromise.resolve([]).simplifyAll()).resolves.toEqual([]); - }); - }); - describe("settle", () => { - it("basically works for rejections", async () => { - await expect(FunPromise.reject("BOOM!").settle()).resolves.toHaveProperty("reason", "BOOM!"); - }); - it("basically works for fulfillments", async () => { - await expect(FunPromise.resolve(true).settle()).resolves.toHaveProperty("value", true); - }); - }); - describe("settleAll", () => { - _.forEach([true, false], (staticVersion) => { - describe(staticVersion ? "static" : "instance", () => { - function doSettleAll(values) { - if (staticVersion) { - return FunPromise.settleAll(values); - } - else { - return FunPromise.resolve(values).settleAll(); - } - } - it("basically works", async () => { - const values = [ - { in: Promise.resolve(true), out: new Fulfillment(true) }, - { in: Promise.reject("BOOM!"), out: new Rejection("BOOM!") }, - { in: Promise.reject(null), out: new Rejection(null) }, - { in: null, out: new Fulfillment(null) }, - ]; - await expect(doSettleAll(_.map(values, "in"))).resolves.toEqual(_.map(values, "out")); - }); - it("doesn't explode on empty lists", async () => { - await expect(doSettleAll([])).resolves.toEqual([]); - }); - }); - }); - }); -}); -//# sourceMappingURL=fun-promise.test.js.map \ No newline at end of file diff --git a/dist/esnext/src/fun-promise.test.js.map b/dist/esnext/src/fun-promise.test.js.map deleted file mode 100644 index f39f252..0000000 --- a/dist/esnext/src/fun-promise.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"fun-promise.test.js","sourceRoot":"","sources":["../../../src/fun-promise.test.js"],"names":[],"mappings":"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","sourcesContent":["/** @format */\n\nimport FunPromise from \"./fun-promise\";\nimport _ from \"lodash\";\nimport { NestedError } from \"ts-nested-error\";\nimport { Fulfillment, Rejection } from \"./types\";\n\nconst tokenPromise = new Promise((resolve) => resolve(true));\nconst tokenFunPromise = new FunPromise(tokenPromise);\n\nfunction withRejection(rejectionReason, callback) {\n\tconst rejection = Promise.reject(rejectionReason);\n\ttry {\n\t\treturn callback(rejection);\n\t} finally {\n\t\trejection.catch(_.noop); // Disable uncaught exception issues\n\t}\n}\n\ndescribe(\"FunPromise\", () => {\n\tit(\"can be constructed and resolved\", async () => {\n\t\tawait expect(new FunPromise(tokenPromise)).resolves.toBe(true);\n\t});\n\n\tdescribe(\"resolve/return\", () => {\n\t\t_.forEach(\n\t\t\t{ static: FunPromise, instance: tokenFunPromise },\n\t\t\t(impl, implName) => {\n\t\t\t\t_.forEach([\"resolve\", \"return\"], (methodName) => {\n\t\t\t\t\tdescribe(methodName, () => {\n\t\t\t\t\t\tdescribe(implName, () => {\n\t\t\t\t\t\t\tfunction doResolve(value) {\n\t\t\t\t\t\t\t\treturn impl[methodName](value);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tit(\"rejects when provided a rejection\", async () => {\n\t\t\t\t\t\t\t\tawait expect(doResolve(Promise.reject(\"BOOM!\"))).rejects.toBe(\n\t\t\t\t\t\t\t\t\t\"BOOM!\"\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tit(\"does not resolve the elements of an array\", async () => {\n\t\t\t\t\t\t\t\texpect.hasAssertions();\n\t\t\t\t\t\t\t\tawait withRejection(\"BOOM!\", async (rejection) => {\n\t\t\t\t\t\t\t\t\tawait expect(doResolve([rejection])).resolves.toHaveLength(1);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tdescribe(\"resolves correctly\", () => {\n\t\t\t\t\t\t\t\tit(\"with a value\", async () => {\n\t\t\t\t\t\t\t\t\tawait expect(doResolve(tokenPromise)).resolves.toBe(true);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tit(\"returns the FunPromise if passed a FunPromise\", () => {\n\t\t\t\t\t\t\t\t\texpect(doResolve(tokenFunPromise)).toEqual(tokenFunPromise);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tit(\"without a value\", async () => {\n\t\t\t\t\t\t\t\t\tawait expect(doResolve()).resolves.toBeNil();\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t});\n\n\tdescribe(\"then\", () => {\n\t\tit(\"works without onrejected\", async () => {\n\t\t\tawait expect(tokenFunPromise.then(_.identity)).resolves.toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"catch\", () => {\n\t\tit(\"handles rejections\", async () => {\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise\n\t\t\t\t\t.then(() => Promise.reject(\"BOOM!\"))\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\texpect(e).toBe(\"BOOM!\");\n\t\t\t\t\t\treturn \"DONE!\";\n\t\t\t\t\t})\n\t\t\t).resolves.toBe(\"DONE!\");\n\t\t});\n\n\t\tit(\"returns the error when not passed an argument\", async () => {\n\t\t\tconst error = new Error(\"BOOM!\");\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise.then(() => Promise.reject(error)).catch()\n\t\t\t).resolves.toBe(error);\n\t\t});\n\t});\n\n\tdescribe(\"arrayify\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst value = [1, 2, 3, 4];\n\t\t\tawait expect(FunPromise.resolve(value).arrayify()).resolves.toStrictEqual(\n\t\t\t\tvalue\n\t\t\t);\n\t\t});\n\n\t\tit(\"returns a clone\", async () => {\n\t\t\tconst value = [1, 2, 3, 4];\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve(value)\n\t\t\t\t\t.arrayify()\n\t\t\t\t\t.then((it) => {\n\t\t\t\t\t\tit.pop();\n\t\t\t\t\t\treturn it;\n\t\t\t\t\t})\n\t\t\t).resolves.not.toBe(value);\n\t\t\texpect(value).toHaveLength(4);\n\t\t});\n\n\t\tit(\"does not resolve values when called without an argument\", async () => {\n\t\t\tconst rejection = Promise.reject(\"BOOM!\");\n\t\t\ttry {\n\t\t\t\tawait expect(\n\t\t\t\t\tFunPromise.resolve([1, 2, rejection]).arrayify()\n\t\t\t\t).resolves.toBeArrayOfSize(3);\n\t\t\t} finally {\n\t\t\t\trejection.catch((e) => {}); // Disarm the rejection\n\t\t\t}\n\t\t});\n\n\t\tit(\"resolves values when called with the sole argument `true`\", async () => {\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([\n\t\t\t\t\tPromise.resolve(1),\n\t\t\t\t\tFunPromise.resolve(2),\n\t\t\t\t]).arrayify(true)\n\t\t\t).resolves.toEqual([1, 2]);\n\t\t});\n\n\t\tit(\"rejects values when called with the sole argument `true` and a rejection in the mix\", async () => {\n\t\t\tconst rejection = Promise.reject(\"BOOM!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([1, 2, rejection]).arrayify(true)\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t});\n\n\t\tit(\"rejects values in order when called with the arguments `(true, true)`\", async () => {\n\t\t\tconst rejection1 = Promise.reject(\"BOOM!\");\n\t\t\tconst rejection2 = Promise.reject(\"BANG!\");\n\t\t\ttry {\n\t\t\t\tawait expect(\n\t\t\t\t\tFunPromise.resolve([1, 2, rejection1, rejection2]).arrayify(\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t)\n\t\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\t} finally {\n\t\t\t\trejection1.catch((e) => {}); // Disarm the rejection\n\t\t\t\trejection2.catch((e) => {}); // Disarm the rejection\n\t\t\t}\n\t\t});\n\n\t\tit(\"resolves values in order when called with the arguments `(true, true)`\", async () => {\n\t\t\tlet sawFirst = false;\n\t\t\tlet sawSecond = false;\n\t\t\tlet sawThird = false;\n\t\t\tlet sawFourth = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(false);\n\t\t\t\t\t\texpect(sawSecond).toBe(false);\n\t\t\t\t\t\texpect(sawThird).toBe(false);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawFirst = true;\n\t\t\t\t\t\treturn 1;\n\t\t\t\t\t}),\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(true);\n\t\t\t\t\t\texpect(sawSecond).toBe(false);\n\t\t\t\t\t\texpect(sawThird).toBe(false);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawSecond = true;\n\t\t\t\t\t\treturn 2;\n\t\t\t\t\t}),\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(true);\n\t\t\t\t\t\texpect(sawSecond).toBe(true);\n\t\t\t\t\t\texpect(sawThird).toBe(false);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawThird = true;\n\t\t\t\t\t\treturn 3;\n\t\t\t\t\t}),\n\t\t\t\t\tFunPromise.try(() => {\n\t\t\t\t\t\texpect(sawFirst).toBe(true);\n\t\t\t\t\t\texpect(sawSecond).toBe(true);\n\t\t\t\t\t\texpect(sawThird).toBe(true);\n\t\t\t\t\t\texpect(sawFourth).toBe(false);\n\t\t\t\t\t\tsawFourth = true;\n\t\t\t\t\t\treturn 4;\n\t\t\t\t\t}),\n\t\t\t\t]).arrayify(true, true)\n\t\t\t).resolves.toStrictEqual([1, 2, 3, 4]);\n\t\t\texpect(sawFirst).toBe(true);\n\t\t\texpect(sawSecond).toBe(true);\n\t\t\texpect(sawThird).toBe(true);\n\t\t\texpect(sawFourth).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"all\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tdescribe(\"basically works\", () => {\n\t\t\t\t\t_.times(10, (argCount) => {\n\t\t\t\t\t\tconst simpleArgs = _.times(argCount, (i) => 2 ** i);\n\n\t\t\t\t\t\tfunction runAll(args) {\n\t\t\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\t\t\treturn FunPromise.all(args);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn FunPromise.resolve(args).all();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tit(`for ${argCount} arguments`, async () => {\n\t\t\t\t\t\t\tawait expect(runAll(simpleArgs)).resolves.toStrictEqual(\n\t\t\t\t\t\t\t\tsimpleArgs\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"try\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(FunPromise.try(() => true)).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"works with one argument\", async () => {\n\t\t\tawait expect(FunPromise.try((i) => i, 42)).resolves.toBe(42);\n\t\t});\n\n\t\tit(\"explodes properly\", async () => {\n\t\t\tawait expect(FunPromise.try(() => Promise.reject(\"BOOM!\"))).rejects.toBe(\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"map\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tfunction runMap(args, mapper) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.map(args, mapper);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(args).map(mapper);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tawait expect(\n\t\t\t\t\t\trunMap([\"Hello\", \"Goodbye\"], (it) => `${it}, World!`)\n\t\t\t\t\t).resolves.toStrictEqual([\"Hello, World!\", \"Goodbye, World!\"]);\n\t\t\t\t});\n\n\t\t\t\tit(\"works with some test values\", async () => {\n\t\t\t\t\tconst defaultValues = [1, 2, 4, 8, 16];\n\t\t\t\t\tconst defaultMapper = (it) => {\n\t\t\t\t\t\tif (Math.random() < 0.5) {\n\t\t\t\t\t\t\treturn Promise.resolve(it * 2);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn it * 2;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tawait expect(\n\t\t\t\t\t\trunMap(defaultValues, defaultMapper)\n\t\t\t\t\t).resolves.toStrictEqual([2, 4, 8, 16, 32]);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"Symbol.toStringTag\", () => {\n\t\tit(\"is the same as the promise passed in\", () => {\n\t\t\tconst promise = new Promise((resolve) => resolve());\n\t\t\tconst promiseTag = promise[Symbol.toStringTag];\n\t\t\texpect(promiseTag).not.toBeNil();\n\t\t\texpect(new FunPromise(promise)[Symbol.toStringTag]).toBe(promiseTag);\n\t\t});\n\t});\n\n\tdescribe(\"finally\", () => {\n\t\tit(\"returns the same promise when given no arguments\", () => {\n\t\t\texpect(tokenFunPromise.finally()).toBe(tokenFunPromise);\n\t\t});\n\n\t\tit(\"executes on resolution\", async () => {\n\t\t\tlet finallyExecuted = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve(false).finally(() => {\n\t\t\t\t\tfinallyExecuted = true;\n\t\t\t\t})\n\t\t\t).resolves.toBe(false);\n\t\t\texpect(finallyExecuted).toBe(true);\n\t\t});\n\n\t\tit(\"executes on rejection\", async () => {\n\t\t\tlet finallyExecuted = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(\"BOOM!\").finally(() => {\n\t\t\t\t\tfinallyExecuted = true;\n\t\t\t\t})\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\texpect(finallyExecuted).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"reject\", () => {\n\t\t_.forEach(\n\t\t\t{ static: FunPromise, instance: tokenFunPromise },\n\t\t\t(impl, name) => {\n\t\t\t\tdescribe(name, () => {\n\t\t\t\t\tit(\"rejects correctly\", async () => {\n\t\t\t\t\t\tawait expect(impl.reject(true)).rejects.toBe(true);\n\t\t\t\t\t});\n\n\t\t\t\t\tit(\"doesn't change the object that is rejected\", async () => {\n\t\t\t\t\t\tconst reason = { foo: true, bar: 42 };\n\t\t\t\t\t\tawait expect(impl.reject(reason)).rejects.toBe(reason);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t});\n\n\tdescribe(\"coalesce\", () => {\n\t\tfunction runCoalesce(args, test) {\n\t\t\treturn FunPromise.coalesce(args, test);\n\t\t}\n\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => null, Promise.resolve(() => true)])\n\t\t\t).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"returns the first resolving value\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => FunPromise.delay(1000).resolve(true), () => false])\n\t\t\t).resolves.toBe(false);\n\t\t});\n\n\t\tit(\"returns the value that passes the test\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => 2, () => 4], (it) => it > 2)\n\t\t\t).resolves.toBe(4);\n\t\t});\n\n\t\tit(\"throws the error if nothing passes the test\", async () => {\n\t\t\tawait expect(\n\t\t\t\trunCoalesce([() => Promise.reject(\"BOOM!\"), () => 4], (it) => it > 4)\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t});\n\n\t\tit(\"punts appropriately after the first resolution\", async () => {\n\t\t\tawait expect(runCoalesce(_.times(3, (idx) => () => idx))).resolves.toBe(\n\t\t\t\t0\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"delay\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\t_.forEach([-1000, -1, 0, 1, 1000], (delayMs) => {\n\t\t\t\t\tdescribe(`When requesting a delay of ${delayMs} milliseconds`, () => {\n\t\t\t\t\t\tfunction runDelay(arg) {\n\t\t\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\t\t\treturn FunPromise.delay(delayMs, arg);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn FunPromise.resolve().delay(delayMs, arg);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdescribe(\"basically works\", () => {\n\t\t\t\t\t\t\tit(\"with no arg\", async () => {\n\t\t\t\t\t\t\t\tawait expect(runDelay()).resolves;\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tit(\"with one arg\", async () => {\n\t\t\t\t\t\t\t\tawait expect(runDelay(1000)).resolves.toBe(1000);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"simplify\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(\n\t\t\t\tnew FunPromise(Promise.resolve(Promise.resolve(true))).simplify()\n\t\t\t).resolves.toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"filter\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tconst defaultValues = [\n\t\t\t\t\t1,\n\t\t\t\t\ttrue,\n\t\t\t\t\t{},\n\t\t\t\t\tnull,\n\t\t\t\t\tPromise.resolve(null),\n\t\t\t\t\tPromise.resolve(),\n\t\t\t\t\t\"Hello, Dolly!\",\n\t\t\t\t];\n\t\t\t\tconst defaultExpect = [1, true, {}, \"Hello, Dolly!\"];\n\t\t\t\tconst defaultTest = (it) => !_.isNil(it);\n\t\t\t\tfunction doFilter(values = defaultValues, test = defaultTest) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.filter(values, test);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).filter(test);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tawait expect(doFilter()).resolves.not.toBeEmpty();\n\t\t\t\t\tawait expect(doFilter()).resolves.toBeArrayOfSize(4);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"flatMap\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tconst defaultValues = [\n\t\t\t\t\t1,\n\t\t\t\t\ttrue,\n\t\t\t\t\t{},\n\t\t\t\t\tnull,\n\t\t\t\t\tPromise.resolve(null),\n\t\t\t\t\tPromise.resolve(),\n\t\t\t\t\t\"Hello, Dolly!\",\n\t\t\t\t];\n\t\t\t\tconst defaultMapper = (it) => {\n\t\t\t\t\tif (_.isNil(it)) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn [it];\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst defaultExpect = [1, true, {}, \"Hello, Dolly!\"];\n\t\t\t\tfunction doFlatMap(values = defaultValues, mapper = defaultMapper) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.flatMap(values, mapper);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).flatMap(mapper);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tawait expect(doFlatMap()).resolves.toStrictEqual(defaultExpect);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"tap\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tlet sawTap = false;\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise.tap((val) => {\n\t\t\t\t\texpect(val).toBe(true);\n\t\t\t\t\tsawTap = true;\n\t\t\t\t\treturn false;\n\t\t\t\t})\n\t\t\t).resolves.toBe(true);\n\t\t\texpect(sawTap).toBe(true);\n\t\t});\n\n\t\tit(\"rejects if it throws an exception\", async () => {\n\t\t\tlet sawTap = false;\n\t\t\tawait expect(\n\t\t\t\ttokenFunPromise.tap((val) => {\n\t\t\t\t\tsawTap = true;\n\t\t\t\t\tthrow \"BOOM!\";\n\t\t\t\t})\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\texpect(sawTap).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"fold\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tconst defaultValues = [1, 2, 3, 4, 5];\n\n\t\t\t\tfunction doFold(\n\t\t\t\t\tvalues = defaultValues,\n\t\t\t\t\tinitialValue = 0,\n\t\t\t\t\taccumulator = (a, b) => a + b\n\t\t\t\t) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.fold(values, initialValue, accumulator);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).fold(initialValue, accumulator);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tconst values = [1, 2, 3, 4, 5];\n\t\t\t\t\tawait expect(doFold()).resolves.toBe(1 + 2 + 3 + 4 + 5);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"tapCatch\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tlet sawTapCatch = false;\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(\"BOOM!\").tapCatch((e) => {\n\t\t\t\t\tsawTapCatch = true;\n\t\t\t\t\texpect(e).toBe(\"BOOM!\");\n\t\t\t\t\treturn \"BANG!\";\n\t\t\t\t})\n\t\t\t).rejects.toBe(\"BOOM!\");\n\t\t\texpect(sawTapCatch).toBe(true);\n\t\t});\n\n\t\tit(\"nests explosions\", async () => {\n\t\t\tlet sawCatch = false;\n\t\t\tconst err1 = new Error(\"BOOM!\");\n\t\t\tconst err2 = new Error(\"BANG!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(err1)\n\t\t\t\t\t.tapCatch((e) => {\n\t\t\t\t\t\tthrow err2;\n\t\t\t\t\t})\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\tsawCatch = true;\n\t\t\t\t\t\texpect(e).toBeInstanceOf(NestedError);\n\t\t\t\t\t\texpect(e).toHaveProperty(\"message\", \"Error thrown in 'tapCatch'\");\n\t\t\t\t\t\texpect(e).toHaveProperty(\"innerErrors\");\n\t\t\t\t\t\texpect(e.innerErrors).toHaveLength(2);\n\t\t\t\t\t\texpect(e.innerErrors).toEqual([err1, err2]);\n\t\t\t\t\t\treturn \"Hello!\";\n\t\t\t\t\t})\n\t\t\t).resolves.toBe(\"Hello!\");\n\t\t\texpect(sawCatch).toBe(true);\n\t\t});\n\t});\n\n\tdescribe(\"tapEach\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst values = [\n\t\t\t\t123,\n\t\t\t\tPromise.resolve(true),\n\t\t\t\t\"Hello, Dolly!\",\n\t\t\t\tnull,\n\t\t\t\tundefined,\n\t\t\t];\n\t\t\tconst funPromise = FunPromise.resolve(values);\n\t\t\tlet count = 0;\n\t\t\tawait expect(\n\t\t\t\tfunPromise.tapEach(() => {\n\t\t\t\t\tcount++;\n\t\t\t\t})\n\t\t\t).resolves.toEqual(await Promise.all(values));\n\t\t\texpect(count).toBe(values.length);\n\t\t});\n\t});\n\n\tdescribe(\"wrapError\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst reason = \"BOOM!\";\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(reason).wrapError(\"BANG!\")\n\t\t\t).rejects.toHaveProperty(\"message\", \"BANG!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.reject(reason).wrapError(\"BANG!\")\n\t\t\t).rejects.toHaveProperty(\"innerError\");\n\t\t});\n\t});\n\n\tdescribe(\"wrapErrors\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tconst err1 = new Error(\"BOOM!\");\n\t\t\tconst err2 = new Error(\"BANG!\");\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve([Promise.reject(err1), Promise.reject(err2)])\n\t\t\t\t\t.wrapErrors(\"ERRORS!\")\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\texpect(e).toBeInstanceOf(NestedError);\n\t\t\t\t\t\texpect(e).toHaveProperty(\"message\", \"ERRORS!\");\n\t\t\t\t\t\texpect(e.innerErrors).toHaveLength(2);\n\t\t\t\t\t\texpect(e.innerErrors).toEqual([err1, err2]);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t})\n\t\t\t).resolves.toBe(true);\n\t\t});\n\n\t\tit(\"doesn't do anything if there is no error\", async () => {\n\t\t\tconst values = [1, 2, 3, true, false, null, undefined];\n\t\t\tawait expect(\n\t\t\t\tFunPromise.resolve(values).wrapErrors(\"ERRORS!\")\n\t\t\t).resolves.toEqual(values);\n\t\t});\n\t});\n\n\tdescribe(\"cancellation\", () => {\n\t\tit(\"initially reports not cancelled\", () => {\n\t\t\texpect(FunPromise.resolve(true).isCancelled()).toBe(false);\n\t\t});\n\n\t\tit(\"reports cancelled after cancel is called\", () => {\n\t\t\texpect(FunPromise.resolve(true).cancel().isCancelled()).toBe(true);\n\t\t});\n\n\t\tit(\"prevents resolution after cancellation\", () => {\n\t\t\tlet resolver;\n\t\t\tlet sawResolve = false;\n\t\t\tconst promise = new Promise((resolve) => {\n\t\t\t\tresolver = resolve;\n\t\t\t}).then(() => {\n\t\t\t\tsawResolve = true;\n\t\t\t});\n\t\t\texpect(resolver).not.toBeNil();\n\t\t\tconst cancelled = new FunPromise(promise).cancel();\n\t\t\tresolver(true);\n\t\t\texpect(sawResolve).toBe(false);\n\t\t});\n\n\t\tit(\"prevents rejection after cancellation\", () => {\n\t\t\tlet rejector;\n\t\t\tlet sawReject = false;\n\t\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\t\trejector = reject;\n\t\t\t}).catch(() => {\n\t\t\t\tsawReject = true;\n\t\t\t});\n\t\t\texpect(rejector).not.toBeNil();\n\t\t\tconst cancelled = new FunPromise(promise).cancel();\n\t\t\trejector(\"BOOM!\");\n\t\t\texpect(sawReject).toBe(false);\n\t\t});\n\n\t\tit(\"prevents rejection when resolving throws after cancellation\", () => {\n\t\t\tlet resolver;\n\t\t\tlet sawThen = true;\n\t\t\tlet sawCatch = false;\n\t\t\tlet doCancel;\n\t\t\tconst promise = new Promise((resolve) => {\n\t\t\t\tresolver = resolve;\n\t\t\t}).then(() => {\n\t\t\t\tsawThen = true;\n\t\t\t\tdoCancel();\n\t\t\t\tthrow \"BOOM!\";\n\t\t\t});\n\t\t\texpect(resolver).not.toBeNil();\n\t\t\tconst toCancel = new FunPromise(promise);\n\t\t\tdoCancel = () => {\n\t\t\t\ttoCancel.cancel();\n\t\t\t};\n\t\t\ttoCancel.catch((e) => {\n\t\t\t\tsawCatch = true;\n\t\t\t});\n\t\t\tresolver(true);\n\t\t\texpect(sawThen).toBe(true);\n\t\t\texpect(sawCatch).toBe(false);\n\t\t});\n\t});\n\n\tdescribe(\"simplifyAll\", () => {\n\t\tit(\"basically works\", async () => {\n\t\t\tawait expect(FunPromise.resolve(\"Hello\").simplifyAll()).resolves.toEqual([\n\t\t\t\t\"H\",\n\t\t\t\t\"e\",\n\t\t\t\t\"l\",\n\t\t\t\t\"l\",\n\t\t\t\t\"o\",\n\t\t\t]);\n\t\t});\n\n\t\tit(\"doesn't explode on an empty list\", async () => {\n\t\t\tawait expect(FunPromise.resolve([]).simplifyAll()).resolves.toEqual([]);\n\t\t});\n\t});\n\n\tdescribe(\"settle\", () => {\n\t\tit(\"basically works for rejections\", async () => {\n\t\t\tawait expect(FunPromise.reject(\"BOOM!\").settle()).resolves.toHaveProperty(\n\t\t\t\t\"reason\",\n\t\t\t\t\"BOOM!\"\n\t\t\t);\n\t\t});\n\n\t\tit(\"basically works for fulfillments\", async () => {\n\t\t\tawait expect(FunPromise.resolve(true).settle()).resolves.toHaveProperty(\n\t\t\t\t\"value\",\n\t\t\t\ttrue\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"settleAll\", () => {\n\t\t_.forEach([true, false], (staticVersion) => {\n\t\t\tdescribe(staticVersion ? \"static\" : \"instance\", () => {\n\t\t\t\tfunction doSettleAll(values) {\n\t\t\t\t\tif (staticVersion) {\n\t\t\t\t\t\treturn FunPromise.settleAll(values);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn FunPromise.resolve(values).settleAll();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tit(\"basically works\", async () => {\n\t\t\t\t\tconst values = [\n\t\t\t\t\t\t{ in: Promise.resolve(true), out: new Fulfillment(true) },\n\t\t\t\t\t\t{ in: Promise.reject(\"BOOM!\"), out: new Rejection(\"BOOM!\") },\n\t\t\t\t\t\t{ in: Promise.reject(null), out: new Rejection(null) },\n\t\t\t\t\t\t{ in: null, out: new Fulfillment(null) },\n\t\t\t\t\t];\n\t\t\t\t\tawait expect(doSettleAll(_.map(values, \"in\"))).resolves.toEqual(\n\t\t\t\t\t\t_.map(values, \"out\")\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\tit(\"doesn't explode on empty lists\", async () => {\n\t\t\t\t\tawait expect(doSettleAll([])).resolves.toEqual([]);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n});\n"]} \ No newline at end of file diff --git a/dist/esnext/src/types.test.d.ts b/dist/esnext/src/types.test.d.ts deleted file mode 100644 index 961011c..0000000 --- a/dist/esnext/src/types.test.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=types.test.d.ts.map \ No newline at end of file diff --git a/dist/esnext/src/types.test.d.ts.map b/dist/esnext/src/types.test.d.ts.map deleted file mode 100644 index c68a00d..0000000 --- a/dist/esnext/src/types.test.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../../src/types.test.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/esnext/src/types.test.js b/dist/esnext/src/types.test.js deleted file mode 100644 index edd56e7..0000000 --- a/dist/esnext/src/types.test.js +++ /dev/null @@ -1,30 +0,0 @@ -/** @format */ -import { Fulfillment, Rejection } from "./types"; -import _ from "lodash"; -describe("Fulfillment", () => { - _.forEach([true, { foo: true }], (arg) => { - describe(`when passed the ${typeof arg} argument '${JSON.stringify(arg)}'`, () => { - const fulfillment = new Fulfillment(arg); - it("exposes the argument on the 'value' property", () => { - expect(fulfillment).toHaveProperty("value", arg); - }); - it("has a 'status' property of 'fulfilled'", () => { - expect(fulfillment).toHaveProperty("status", "fulfilled"); - }); - }); - }); -}); -describe("Rejection", () => { - _.forEach(["BOOM!", new Error("BOOM!")], (arg) => { - describe(`when passed the ${typeof arg} argument: '${arg}'`, () => { - const rejection = new Rejection(arg); - it("returns the argument in the 'reason' property", () => { - expect(rejection).toHaveProperty("reason", arg); - }); - it("has a 'status' property whose value is 'rejected'", () => { - expect(rejection).toHaveProperty("status", "rejected"); - }); - }); - }); -}); -//# sourceMappingURL=types.test.js.map \ No newline at end of file diff --git a/dist/esnext/src/types.test.js.map b/dist/esnext/src/types.test.js.map deleted file mode 100644 index 43b1b56..0000000 --- a/dist/esnext/src/types.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../../src/types.test.js"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC5B,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;QACxC,QAAQ,CAAC,mBAAmB,OAAO,GAAG,cAAc,IAAI,CAAC,SAAS,CACjE,GAAG,CACH,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;YAEzC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;gBACvD,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;gBACjD,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;QAChD,QAAQ,CAAC,mBAAmB,OAAO,GAAG,eAAe,GAAG,GAAG,EAAE,GAAG,EAAE;YACjE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;YAErC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;gBACxD,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;gBAC5D,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["/** @format */\n\nimport { Fulfillment, Rejection } from \"./types\";\nimport _ from \"lodash\";\n\ndescribe(\"Fulfillment\", () => {\n\t_.forEach([true, { foo: true }], (arg) => {\n\t\tdescribe(`when passed the ${typeof arg} argument '${JSON.stringify(\n\t\t\targ\n\t\t)}'`, () => {\n\t\t\tconst fulfillment = new Fulfillment(arg);\n\n\t\t\tit(\"exposes the argument on the 'value' property\", () => {\n\t\t\t\texpect(fulfillment).toHaveProperty(\"value\", arg);\n\t\t\t});\n\n\t\t\tit(\"has a 'status' property of 'fulfilled'\", () => {\n\t\t\t\texpect(fulfillment).toHaveProperty(\"status\", \"fulfilled\");\n\t\t\t});\n\t\t});\n\t});\n});\n\ndescribe(\"Rejection\", () => {\n\t_.forEach([\"BOOM!\", new Error(\"BOOM!\")], (arg) => {\n\t\tdescribe(`when passed the ${typeof arg} argument: '${arg}'`, () => {\n\t\t\tconst rejection = new Rejection(arg);\n\n\t\t\tit(\"returns the argument in the 'reason' property\", () => {\n\t\t\t\texpect(rejection).toHaveProperty(\"reason\", arg);\n\t\t\t});\n\n\t\t\tit(\"has a 'status' property whose value is 'rejected'\", () => {\n\t\t\t\texpect(rejection).toHaveProperty(\"status\", \"rejected\");\n\t\t\t});\n\t\t});\n\t});\n});\n"]} \ No newline at end of file diff --git a/dist/react-native.index.js.xz b/dist/react-native.index.js.xz new file mode 100644 index 0000000000000000000000000000000000000000..67eb0b4e7273afdad560b2f1f4fada9636319d82 GIT binary patch literal 824 zcmV-81IPURH+ooF000E$*0e?f03iVu0001VFXf})C;tNWT>uvg$)}l&u;dj1tPQQF z9an5w(!<9WQxQsjicq~frA+lz?8hx&Qc0gPxsj@vM0znZ#3{NG99vnFyb8=o+uY}%^|R;`0=Q(XevW< z4wq?sYr1xynDpbVKs7=-C;L8%nz;Y9>~C$D&{4P7h^?aPeFJ-E{{;>+yi1=i2>t_G zs}qG{fhTNeNrBPyf6}93L+sC)HY9HRG0h3{<&~L!At&ZN!KKkZB@OId+rmvoj;U)* z!b=0qL-Ds=0)xsTO5I7;Wk<#E6Uci|s3(y$n4?oS9PJ{{s$RRZ4XAyl+vFUuyz(RY zL+JjZSZ_ixG9rhuN(bD|jhas?QcG%4E*mxqg&6X&BuODEvcKZccbT&t9knz))WB5O zufBt~N-#Vx>p{71asfD`nao8BnM>NHya9+8ES4p3MIYN4x{2h5i2tw4l2MKV-4Q3@ zkxF4@evg9aINsycL zZ+TesLA-N*%fyafnEoZ*Z=ZuOPgFmKDf=G!sqxP1lkV!YVJjsch+NI2_Z7bK8w`+d z?1x~yO+%?;S$%p{n1cCoGVr5PgRz0CzMdZI7A`*Had*cjWHpET$jLnI9!9e6{$M5> zG=Eh~&&c#@Fs-eYc)MCsn!X(gKGFnPiCP7Eo_(Yp@+BJ|dwWt5sDb@7kORCs_ab!4 znbaVO(Ci{>JPQOb@nvuDIg9AK7CH!A{$+&1I6n>kH~9z0uW9&#!3QoTs&-d=mJhV1 zeo98(RV?Up=~b1d&5T%2KpEP-n)Spq!2SgCGDto8yZRqqnIJb7m|cNp$8r98 zDENldPmTFh#hcvN%n3>W0001dnEmx}K#rmS0g?uQPyhhF4qlzH#Ao{g000001X)^G CBaXcQ literal 0 HcmV?d00001 diff --git a/dist/umd.index.js.xz b/dist/umd.index.js.xz new file mode 100644 index 0000000000000000000000000000000000000000..5ac13b987ab9f72b44f3f5347bb9485323f303fa GIT binary patch literal 744 zcmVuvg$)}l&u;dj1tPQQF z9an5w(!<9WQxQsjicq~fn}v83vvnrbbhxD%Y0~a$&zSupU3iq2L%ponPdq!n3wzkg z;V%v55x&uh#e;o$uYhmksNx3>u`n{(J>+JL9Jgr0zoC(FAM$CiANwN2G?8#L}0K_fFKHlAZ z6K;#qfM6Sttl_fF0X{!7m0TkC{;=e8hDRxm2iD-0$^{}f3GCS8-n1eBq{CNcPKm5> zA)MM}vcnsEu5_3JK;EqDEMi#8A0!l?Z=^(y{lKj3FZR@jhSRd({j=cw(bnqWu7Ad0 zVU`+QyZe1&!&&i>Ea$P^N^a4d9Tb<;=ym}4{bV+1K?5dmJLgUWC}U>)RRRb>z+lhI z1AN5}_%~+ROLRas-LQp=L7%2IK&ZY9QC=TO z?fFu$Gr*SF7?)aFmo?=&XlSx_r(@qLXe~vq+Jq8#EK{l@NXlAexXMAH1lVm!*MV`< z;|m;3VCyfFKT=Oam8JW=c{G{uYUGy?S>FoThvM-S^ay&BAuvg$)}l&u;dj1tPQQF z9an5w(!<9WQxQsjicq~frA+lz?MaHqHE%?lVEPCTU3my0B_fv&z-q z`}+`&a;)M@wA@dB;YIfjl9kbQ05+b#@Izy#H)~bV8G`(cr7z^Z%L5cn?E5TnHz^&3 zYn?`}V@H$H-aWo^RXC#4HU#M)-8*yvZBw8oPKH}Rb>YzAUj|nP0CvzrJqP!5etk1g zaN6N7I3COtJ^x!sJE!Ia7u)J$kZ70{!q@yb+55IRfgTOKO{F_JVd+k+M=j+Y%P|nh z#m2isU!p4`XI|~5noEV2D8LrZq@0h#<`(D)o?A6)C%R&Jv;ChFSWAT9@k5m__d74Z z?V2q#eeTFUYq|ucZ43|rt{!rf=cdrD`paI2;0k~6Q}BXCr|y&M{uCCFcO5rt9aIm* zX*sy5kR$r6SWBqi?zt7-XMX-N4(s@)o0y)TZxcLE%hnZ;?BHot6uKEQKcXqO0RHom z1l{s1$Sn*K3MrJcXEH4RIgZH*@jLVt(Oob-u+Y(B^yqE?0)qvFm#ReH%W_?@n04!w zo4}NE?f)5%y875aztO7LK3UuV3E|y0&*%>g=OXiec)b}Ri3RU?*l0d7Snt9RQ>=QB z`=GjhqEPE7vhxo ztAM+bzj$2s+2M!2Kws>iN^1k}{a&b?tkml@Xz1zqs4EB3micweR4IfaB%`wd)Mo5Z zDu{^)YuJMp7lz#DQn)DGqO0O}GRIoSudAM*<5y4rWHEqpAL*6wD`Ew%As(H}BPF~! z7Zqh|W4G$lc-O+B=G~;@2!{V{c`c397S0P1Luvg$)}l&u;dj1tPQQF z9an5w(!<9WQxQsjicq~frA+lz?FXgzIwsmP!|{c`5o)*>8Urj%1P9xd$gcsm%@$;^vBoJ@buk zG%TFC`(_@VmtQCyNA{p*K{c294ipd><1$XJ;6NQQGtMPoZzcSfl&d-BtK(MOG*8xz zUAHb+<$h7#!!&yl%r2b$8wCYb!8PQl0^zqOoUB#RJ2sC`A)p}bNU^mDhxTXxYS_KJ zk;?|}EJD0$-aUts9AF|~G)wD>ECvW1K*w^6=zth7ar6W^vnFN|=x&GA{chm-Vy6Q8 zl}2HVh~PVArNKej5`Ar-p9HOy(jBw$6K3m#n5X{o(wJ<#Iu6UEbpfYeg)1C9=^JnC znzyV%r5yw2f}PsNC6d9I-K=Qg)5Qs|&o;-PlVtV}Ia5nZvru%j0Vi7Okbv_>Pw*Rz zeJKpb()uCsOk$uaQN;KE&M=a!sg}bimY~(?G=0cvq;oUJr=~X$zA`&QTS(BteYnv89MSvBF7!6X%GynX!-T&4Mui54^g%Lv_b% zvS&QRoIXlIyZ5yy-`*Pl00021J+EOZsbGcx0g?uQPyhhF4qlzH#Ao{g000001X)^L CR)(Jd literal 0 HcmV?d00001 diff --git a/dist/v14.index.js.xz b/dist/v14.index.js.xz new file mode 100644 index 0000000000000000000000000000000000000000..4254e24440aad1370d060337aa934453c633d86b GIT binary patch literal 824 zcmV-81IPURH+ooF000E$*0e?f03iVu0001VFXf})C;tNXT>uvg$)}l&u;dj1tPQQF z9an5w(!<9WQxQsjicq~frA+lz?BbU-mFNW=kthA(>f zajp;lu6unz9KD+gumV3_^`N?=X$LnKqPpeE>|ENJ9(fve8f+rl#(2gBsycGLUMkEs z*Fp>>=Ie_YHDCE{QZadE1b1?1TU*u^er|TC}&-DO^s_@dU-cfz^) z9mZT4f-30+l!O2BWMlR3b1e3#QEM~y!%0{`#vw+O`50rFvcIw|h7G1?LKe6U*%W9{ zN{7eF^{<6+dOk?vfJ1zecNDvIc$sFoTq+XN`eQ61G%fS)vNxyE3H-rdIE8`Y)@ScW z-V3rHTsn@TD=gcHwWiD)!V`D}UuLT0QFnlG$r@d4qOH924=cq|ItkLBsx+Y~N@y#* zSC8+M9Lnkrk8)ya3Z{bzAy31zg>ziUljD5`rL`)VbAoa!py|U|%eKW31lHi0Y-6oay03CPb0q%*pjsNrMZM^VILF z0`6L(@}JKz4CQ@bb&Ggt`F(q$+=pLw^bdu(x~4uldnW_kf6@#2?D0#+nP%?DTOfGO z=H`9aD4x!e-3xQ3%~1<+v&UjKE#-$otgL=`tYBilW|s9%0c-l7)ymfEIg)N8^vZ!S zkt4k1@!z{~^GlYhUR<=Xx6Q`RB#?7QPaV|&qCvfebb>s=G`^79iE>;)W2Dmlh2t)j z`{K+O#URUSaT~rMdfiAvl_KYwD2l7pJz-U*yQ}2JUgO|%L|B?El_f_1_%|;D`{>k? z#$W5y`|hclv6Gf*VG0>16jr<@+NW)6AtZJQRbRILE$(zC9qdLYB&sccEtT1R&jE@{rjoEcAObr{%oHv-@*QSn#AW zJZD#7$3~T6A2&W)gO7Wc0001q=*%&jBrZ7s0h0!RPyhfM-2zsz#Ao{g000001X)^y C&W{BE literal 0 HcmV?d00001 diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index f9b5de2..4f14275 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,48 +1,53 @@ + + fun-promises Changelog ## [1.2.0](https://github.com/RobertFischer/fun-promises/compare/v1.1.0...v1.2.0) (2020-12-03) - ### Features -* **fold:** implements fold in case map and filter don't cut it ([86c010f](https://github.com/RobertFischer/fun-promises/commit/86c010ff5f934602a2a964cb71ebb73697ed7c2a)), closes [#12](https://github.com/RobertFischer/fun-promises/issues/12) -* **tap:** implement 'tap' for peeking at values ([0f4816a](https://github.com/RobertFischer/fun-promises/commit/0f4816ab42fd9f18bf91e179d2c03fed25822f11)) - +- **fold:** implements fold in case map and filter don't cut it + ([86c010f](https://github.com/RobertFischer/fun-promises/commit/86c010ff5f934602a2a964cb71ebb73697ed7c2a)), + closes [#12](https://github.com/RobertFischer/fun-promises/issues/12) +- **tap:** implement 'tap' for peeking at values + ([0f4816a](https://github.com/RobertFischer/fun-promises/commit/0f4816ab42fd9f18bf91e179d2c03fed25822f11)) ### Reverts -* **release:** the cleanup caused a problem with the autocommitting ([6c03637](https://github.com/RobertFischer/fun-promises/commit/6c03637137923e0581a4a736bcb6bd4aa25c77d4)) +- **release:** the cleanup caused a problem with the autocommitting + ([6c03637](https://github.com/RobertFischer/fun-promises/commit/6c03637137923e0581a4a736bcb6bd4aa25c77d4)) ## [1.2.0-rc.2](https://github.com/RobertFischer/fun-promises/compare/v1.2.0-rc.1...v1.2.0-rc.2) (2020-12-02) - ### Features -* **fold:** implements fold in case map and filter don't cut it ([86c010f](https://github.com/RobertFischer/fun-promises/commit/86c010ff5f934602a2a964cb71ebb73697ed7c2a)), closes [#12](https://github.com/RobertFischer/fun-promises/issues/12) +- **fold:** implements fold in case map and filter don't cut it + ([86c010f](https://github.com/RobertFischer/fun-promises/commit/86c010ff5f934602a2a964cb71ebb73697ed7c2a)), + closes [#12](https://github.com/RobertFischer/fun-promises/issues/12) ## [1.2.0-rc.1](https://github.com/RobertFischer/fun-promises/compare/v1.1.0...v1.2.0-rc.1) (2020-12-02) - ### Features -* **tap:** implement 'tap' for peeking at values ([0f4816a](https://github.com/RobertFischer/fun-promises/commit/0f4816ab42fd9f18bf91e179d2c03fed25822f11)) - +- **tap:** implement 'tap' for peeking at values + ([0f4816a](https://github.com/RobertFischer/fun-promises/commit/0f4816ab42fd9f18bf91e179d2c03fed25822f11)) ### Reverts -* **release:** the cleanup caused a problem with the autocommitting ([6c03637](https://github.com/RobertFischer/fun-promises/commit/6c03637137923e0581a4a736bcb6bd4aa25c77d4)) +- **release:** the cleanup caused a problem with the autocommitting + ([6c03637](https://github.com/RobertFischer/fun-promises/commit/6c03637137923e0581a4a736bcb6bd4aa25c77d4)) ## [1.1.0-rc.2](https://github.com/RobertFischer/fun-promises/compare/v1.1.0-rc.1...v1.1.0-rc.2) (2020-12-02) - ### Features -* **tap:** implement 'tap' for peeking at values ([ce059bd](https://github.com/RobertFischer/fun-promises/commit/ce059bdb12c4706f8bf8189d5b09dadae740fa47)) - +- **tap:** implement 'tap' for peeking at values + ([ce059bd](https://github.com/RobertFischer/fun-promises/commit/ce059bdb12c4706f8bf8189d5b09dadae740fa47)) ### Reverts -* **release:** the cleanup caused a problem with the autocommitting ([c9ad636](https://github.com/RobertFischer/fun-promises/commit/c9ad636762e510ce0218f4c13b506cac05f4ab0f)) +- **release:** the cleanup caused a problem with the autocommitting + ([c9ad636](https://github.com/RobertFischer/fun-promises/commit/c9ad636762e510ce0218f4c13b506cac05f4ab0f)) diff --git a/docs/classes/_src_deferral_.deferral.html b/docs/classes/_src_deferral_.deferral.html index a2e05ba..8b7f7bd 100644 --- a/docs/classes/_src_deferral_.deferral.html +++ b/docs/classes/_src_deferral_.deferral.html @@ -131,7 +131,7 @@

constructor

  • @@ -153,7 +153,7 @@

    Readonly promise

    promise: FunPromise<T>
    @@ -175,7 +175,7 @@

    reject

  • @@ -203,7 +203,7 @@

    resolve

  • diff --git a/docs/classes/_src_fun_promise_.funpromise.html b/docs/classes/_src_fun_promise_.funpromise.html index fc3be3e..89c87b5 100644 --- a/docs/classes/_src_fun_promise_.funpromise.html +++ b/docs/classes/_src_fun_promise_.funpromise.html @@ -172,7 +172,7 @@

    constructor

  • @@ -199,7 +199,7 @@

    Protected wrapped: Promise<T>

    @@ -221,7 +221,7 @@

    [Symbol.toStringTag]

  • @@ -247,7 +247,7 @@

    all

  • Returns FunPromise<Item<T>[]>

    @@ -264,7 +264,7 @@

    arrayify

  • @@ -298,7 +298,7 @@

    cancel

  • @@ -320,7 +320,7 @@

    catch

  • @@ -377,7 +377,7 @@

    delay

  • @@ -415,7 +415,7 @@

    filter

  • @@ -469,7 +469,7 @@

    finally

  • @@ -482,7 +482,7 @@

    Returns

    Parameters

    @@ -517,7 +517,7 @@

    flatMap

  • @@ -573,7 +573,7 @@

    fold

  • @@ -634,7 +634,7 @@

    isCancelled

  • @@ -656,7 +656,7 @@

    map

  • @@ -714,7 +714,7 @@

    reject

  • @@ -744,7 +744,7 @@

    resolve

  • @@ -779,7 +779,7 @@

    return

  • @@ -818,7 +818,7 @@

    settle

  • @@ -840,7 +840,7 @@

    settleAll

  • @@ -863,7 +863,7 @@

    simplify

  • @@ -890,7 +890,7 @@

    simplifyAll

  • @@ -912,7 +912,7 @@

    tap

  • @@ -959,7 +959,7 @@

    tapCatch

  • @@ -1006,7 +1006,7 @@

    tapEach

  • @@ -1054,7 +1054,7 @@

    then

  • @@ -1101,7 +1101,7 @@

    Returns

    Type parameters

    @@ -1172,7 +1172,7 @@

    wrapError

  • @@ -1200,7 +1200,7 @@

    wrapErrors

  • @@ -1239,7 +1239,7 @@

    Static all

  • @@ -1269,7 +1269,7 @@

    Returns

    Type parameters

    @@ -1316,7 +1316,7 @@

    Returns

    Type parameters

    @@ -1360,7 +1360,7 @@

    Returns

    Type parameters

    @@ -1401,7 +1401,7 @@

    Returns

    Type parameters

    @@ -1439,7 +1439,7 @@

    Returns

    Type parameters

    @@ -1474,7 +1474,7 @@

    Returns

    Type parameters

    @@ -1506,7 +1506,7 @@

    Returns

    Type parameters

    @@ -1535,7 +1535,7 @@

    Returns

    Type parameters

    @@ -1561,7 +1561,7 @@

    Returns

    Type parameters

    @@ -1584,7 +1584,7 @@

    Returns

    Type parameters

    @@ -1613,7 +1613,7 @@

    Static coalesce

  • @@ -1674,7 +1674,7 @@

    Static delay

  • @@ -1694,7 +1694,7 @@

    Returns

    Type parameters

    @@ -1726,7 +1726,7 @@

    Static filter

  • @@ -1781,7 +1781,7 @@

    Static flatMap

  • @@ -1839,7 +1839,7 @@

    Static fold

  • @@ -1903,7 +1903,7 @@

    Static map

  • @@ -1961,7 +1961,7 @@

    Static reject

  • @@ -1991,7 +1991,7 @@

    Static resolve

  • @@ -2026,7 +2026,7 @@

    Static return

  • @@ -2065,7 +2065,7 @@

    Static settleAll

  • @@ -2107,7 +2107,7 @@

    Static try

  • @@ -2191,7 +2191,7 @@

    Returns

    Type parameters

    @@ -2253,7 +2253,7 @@

    Returns

    Type parameters

    @@ -2309,7 +2309,7 @@

    Returns

    Type parameters

    @@ -2359,7 +2359,7 @@

    Returns

    Type parameters

    @@ -2403,7 +2403,7 @@

    Returns

    Type parameters

    @@ -2441,7 +2441,7 @@

    Returns

    Type parameters

    @@ -2473,7 +2473,7 @@

    Returns

    Type parameters

    @@ -2499,7 +2499,7 @@

    Returns

    Type parameters

    diff --git a/docs/classes/_src_types_.fulfillment.html b/docs/classes/_src_types_.fulfillment.html index 032d8b9..1a0d3c3 100644 --- a/docs/classes/_src_types_.fulfillment.html +++ b/docs/classes/_src_types_.fulfillment.html @@ -131,7 +131,7 @@

    constructor

  • Parameters

    @@ -153,7 +153,7 @@

    Readonly value

    value: T
    @@ -170,7 +170,7 @@

    status

  • Returns "fulfilled"

    diff --git a/docs/classes/_src_types_.rejection.html b/docs/classes/_src_types_.rejection.html index c6e1ac1..6015d1e 100644 --- a/docs/classes/_src_types_.rejection.html +++ b/docs/classes/_src_types_.rejection.html @@ -123,7 +123,7 @@

    constructor

  • Parameters

    @@ -145,7 +145,7 @@

    Readonly reason

    reason: unknown
    @@ -162,7 +162,7 @@

    status

  • Returns "rejected"

    diff --git a/docs/modules/_src_types_.html b/docs/modules/_src_types_.html index c9e3ff1..453f314 100644 --- a/docs/modules/_src_types_.html +++ b/docs/modules/_src_types_.html @@ -108,7 +108,7 @@

    Item

    Item<T>: Unpromise<T> extends Array<infer U> ? U : Unpromise<T> extends Iterable<infer U> ? U : never
    @@ -130,7 +130,7 @@

    IterableOfPromisables

    IterableOfPromisables<T>: Iterable<Promisable<T>>
    @@ -152,7 +152,7 @@

    Promisable

    Promisable<T>: T | PromiseLike<T>
    @@ -173,7 +173,7 @@

    PromisableIterable

    PromisableIterable<T>: Promisable<IterableOfPromisables<T>>
    @@ -195,7 +195,7 @@

    Settlement

    Settlement<T>: PromiseSettledResult<T> & Fulfillment<T> | Rejection
    @@ -216,7 +216,7 @@

    SimplifiedPromisable

    SimplifiedPromisable<T>: Promisable<Unpromise<T>>
    @@ -237,7 +237,7 @@

    SimplifiedPromise

    SimplifiedPromise<T>: Promise<Unpromise<T>>
    @@ -258,7 +258,7 @@

    SimplifiedPromiseLike

    SimplifiedPromiseLike<T>: PromiseLike<Unpromise<T>>
    @@ -279,7 +279,7 @@

    Unpromise

    Unpromise<T>: T extends PromiseLike<infer U> ? Unpromise<U> : T extends Promisable<infer U> ? U extends T ? T : Unpromise<U> : T
    diff --git a/docs/test-results.txt b/docs/test-results.txt index c185d85..2df6d93 100644 --- a/docs/test-results.txt +++ b/docs/test-results.txt @@ -5,36 +5,36 @@ PASS src/fun-promise.test.js resolve/return resolve static - ✓ rejects when provided a rejection (19 ms) + ✓ rejects when provided a rejection (21 ms) ✓ does not resolve the elements of an array (1 ms) resolves correctly ✓ with a value (1 ms) - ✓ returns the FunPromise if passed a FunPromise (1 ms) + ✓ returns the FunPromise if passed a FunPromise (2 ms) ✓ without a value (1 ms) instance - ✓ rejects when provided a rejection (9 ms) + ✓ rejects when provided a rejection (1 ms) ✓ does not resolve the elements of an array (2 ms) resolves correctly ✓ with a value (1 ms) ✓ returns the FunPromise if passed a FunPromise (1 ms) - ✓ without a value + ✓ without a value (1 ms) return static ✓ rejects when provided a rejection (1 ms) - ✓ does not resolve the elements of an array + ✓ does not resolve the elements of an array (1 ms) resolves correctly - ✓ with a value + ✓ with a value (1 ms) ✓ returns the FunPromise if passed a FunPromise (1 ms) ✓ without a value (1 ms) instance ✓ rejects when provided a rejection (1 ms) - ✓ does not resolve the elements of an array + ✓ does not resolve the elements of an array (1 ms) resolves correctly ✓ with a value (1 ms) ✓ returns the FunPromise if passed a FunPromise (1 ms) ✓ without a value then - ✓ works without onrejected + ✓ works without onrejected (1 ms) catch ✓ handles rejections (2 ms) ✓ returns the error when not passed an argument (1 ms) @@ -44,7 +44,7 @@ PASS src/fun-promise.test.js ✓ does not resolve values when called without an argument (1 ms) ✓ resolves values when called with the sole argument `true` (1 ms) ✓ rejects values when called with the sole argument `true` and a rejection in the mix (2 ms) - ✓ rejects values in order when called with the arguments `(true, true)` (1 ms) + ✓ rejects values in order when called with the arguments `(true, true)` (2 ms) ✓ resolves values in order when called with the arguments `(true, true)` (3 ms) all static @@ -54,63 +54,63 @@ PASS src/fun-promise.test.js ✓ for 2 arguments (1 ms) ✓ for 3 arguments (1 ms) ✓ for 4 arguments (1 ms) - ✓ for 5 arguments (1 ms) + ✓ for 5 arguments ✓ for 6 arguments - ✓ for 7 arguments - ✓ for 8 arguments (7 ms) + ✓ for 7 arguments (1 ms) + ✓ for 8 arguments (6 ms) ✓ for 9 arguments (1 ms) instance basically works - ✓ for 0 arguments + ✓ for 0 arguments (1 ms) ✓ for 1 arguments (1 ms) ✓ for 2 arguments (1 ms) - ✓ for 3 arguments (1 ms) + ✓ for 3 arguments ✓ for 4 arguments ✓ for 5 arguments (1 ms) ✓ for 6 arguments (1 ms) ✓ for 7 arguments (1 ms) ✓ for 8 arguments (1 ms) - ✓ for 9 arguments + ✓ for 9 arguments (1 ms) try ✓ basically works (1 ms) ✓ works with one argument (1 ms) ✓ explodes properly (1 ms) map static - ✓ basically works (2 ms) - ✓ works with some test values (1 ms) + ✓ basically works (1 ms) + ✓ works with some test values (2 ms) instance ✓ basically works (1 ms) ✓ works with some test values (1 ms) Symbol.toStringTag - ✓ is the same as the promise passed in + ✓ is the same as the promise passed in (1 ms) finally - ✓ returns the same promise when given no arguments + ✓ returns the same promise when given no arguments (1 ms) ✓ executes on resolution (1 ms) - ✓ executes on rejection (2 ms) + ✓ executes on rejection (1 ms) reject static ✓ rejects correctly (1 ms) ✓ doesn't change the object that is rejected (1 ms) instance - ✓ rejects correctly - ✓ doesn't change the object that is rejected + ✓ rejects correctly (1 ms) + ✓ doesn't change the object that is rejected (1 ms) coalesce ✓ basically works (2 ms) ✓ returns the first resolving value (1003 ms) - ✓ returns the value that passes the test (2 ms) - ✓ throws the error if nothing passes the test (2 ms) + ✓ returns the value that passes the test (3 ms) + ✓ throws the error if nothing passes the test (3 ms) ✓ punts appropriately after the first resolution (1 ms) delay static When requesting a delay of -1000 milliseconds basically works - ✓ with no arg (1 ms) - ✓ with one arg (11 ms) + ✓ with no arg (2 ms) + ✓ with one arg (2 ms) When requesting a delay of -1 milliseconds basically works ✓ with no arg (1 ms) - ✓ with one arg (2 ms) + ✓ with one arg (15 ms) When requesting a delay of 0 milliseconds basically works ✓ with no arg (1 ms) @@ -121,8 +121,8 @@ PASS src/fun-promise.test.js ✓ with one arg (2 ms) When requesting a delay of 1000 milliseconds basically works - ✓ with no arg - ✓ with one arg (1001 ms) + ✓ with no arg (1 ms) + ✓ with one arg (1000 ms) instance When requesting a delay of -1000 milliseconds basically works @@ -130,30 +130,30 @@ PASS src/fun-promise.test.js ✓ with one arg (2 ms) When requesting a delay of -1 milliseconds basically works - ✓ with no arg (1 ms) - ✓ with one arg (2 ms) + ✓ with no arg + ✓ with one arg When requesting a delay of 0 milliseconds basically works - ✓ with no arg (1 ms) - ✓ with one arg (2 ms) + ✓ with no arg + ✓ with one arg (3 ms) When requesting a delay of 1 milliseconds basically works ✓ with no arg (1 ms) - ✓ with one arg (1 ms) + ✓ with one arg When requesting a delay of 1000 milliseconds basically works ✓ with no arg - ✓ with one arg (1000 ms) + ✓ with one arg (1001 ms) simplify - ✓ basically works (1 ms) + ✓ basically works (3 ms) filter static - ✓ basically works (3 ms) + ✓ basically works (4 ms) instance ✓ basically works (2 ms) flatMap static - ✓ basically works (1 ms) + ✓ basically works (2 ms) instance ✓ basically works (1 ms) tap @@ -166,19 +166,19 @@ PASS src/fun-promise.test.js ✓ basically works (1 ms) tapCatch ✓ basically works (1 ms) - ✓ nests explosions (3 ms) + ✓ nests explosions (4 ms) tapEach ✓ basically works (1 ms) wrapError - ✓ basically works (6 ms) + ✓ basically works (8 ms) wrapErrors - ✓ basically works (3 ms) - ✓ doesn't do anything if there is no error + ✓ basically works (2 ms) + ✓ doesn't do anything if there is no error (1 ms) cancellation - ✓ initially reports not cancelled - ✓ reports cancelled after cancel is called (1 ms) - ✓ prevents resolution after cancellation - ✓ prevents rejection after cancellation + ✓ initially reports not cancelled (1 ms) + ✓ reports cancelled after cancel is called + ✓ prevents resolution after cancellation (1 ms) + ✓ prevents rejection after cancellation (1 ms) ✓ prevents rejection when resolving throws after cancellation (1 ms) simplifyAll ✓ basically works (1 ms) @@ -188,7 +188,7 @@ PASS src/fun-promise.test.js ✓ basically works for fulfillments (1 ms) settleAll static - ✓ basically works (1 ms) + ✓ basically works (2 ms) ✓ doesn't explode on empty lists (1 ms) instance ✓ basically works (1 ms) @@ -196,15 +196,15 @@ PASS src/fun-promise.test.js PASS src/deferral.test.js Deferral - ✓ can be constructed (1 ms) + ✓ can be constructed (2 ms) promise ✓ is a FunPromise (1 ms) resolve ✓ basically works (2 ms) ✓ does not change resolved value if called multiple times (1 ms) reject - ✓ basically works (8 ms) - ✓ does not change reason if called multiple times (2 ms) + ✓ basically works (11 ms) + ✓ does not change reason if called multiple times (1 ms) PASS ./assumptions.test.js lodash @@ -216,11 +216,11 @@ PASS ./assumptions.test.js PASS src/types.test.js Fulfillment when passed the boolean argument 'true' - ✓ exposes the argument on the 'value' property (1 ms) - ✓ has a 'status' property of 'fulfilled' (1 ms) - when passed the object argument '{"foo":true}' - ✓ exposes the argument on the 'value' property (1 ms) + ✓ exposes the argument on the 'value' property (2 ms) ✓ has a 'status' property of 'fulfilled' + when passed the object argument '{"foo":true}' + ✓ exposes the argument on the 'value' property + ✓ has a 'status' property of 'fulfilled' (1 ms) Rejection when passed the string argument: 'BOOM!' ✓ returns the argument in the 'reason' property (1 ms) @@ -247,5 +247,5 @@ Lines : 100% ( 155/155 ) Test Suites: 4 passed, 4 total Tests: 135 passed, 135 total Snapshots: 0 total -Time: 4.458 s, estimated 9 s +Time: 4.593 s, estimated 9 s Ran all test suites matching /.\/assumptions.test.js|.\/src\/deferral.test.js|.\/src\/fun-promise.test.js|.\/src\/types.test.js/i. From e99a11c3de0a5d7b0605ecd2a01e25733ce79860 Mon Sep 17 00:00:00 2001 From: Robert Fischer Date: Sun, 13 Dec 2020 12:41:27 -0500 Subject: [PATCH 07/22] docs(readme): correct the global object name from 'FunPromise' to 'FunPromises' --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e639065..ecc72a0 100644 --- a/README.md +++ b/README.md @@ -20,8 +20,8 @@ npm install --save fun-promises ### CDN for Browsers -The following URL contains a script which will set the `FunPromise` global to be -an object containing the various exports of +The following URL contains a script which will set the `FunPromises` global to +be an object containing the various exports of [`index.ts`](https://robertfischer.github.io/fun-promises/modules/_index_.html). ``` From e30a32ee278aaf52b1fb311fb50fbe1f19d360e5 Mon Sep 17 00:00:00 2001 From: Robert Fischer Date: Sun, 13 Dec 2020 12:42:05 -0500 Subject: [PATCH 08/22] feat(constructor): allow any promisable to be passed in (not just a Promise) --- src/fun-promise.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fun-promise.ts b/src/fun-promise.ts index b5a3053..119058a 100644 --- a/src/fun-promise.ts +++ b/src/fun-promise.ts @@ -57,7 +57,7 @@ export default class FunPromise implements Promise { /** * Constructor, which takes the promise to wrap. */ - constructor(wrapped: Promise) { + constructor(wrapped: Promisable) { this.wrapped = new Promise(async (resolve, reject) => { let resolved = null; try { From 70cb0e057848bdc051802676955ea5b6cbaf3707 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 13 Dec 2020 17:47:23 +0000 Subject: [PATCH 09/22] chore(release): 2.1.0-rc.1 [skip ci] ## [2.1.0-rc.1](https://github.com/RobertFischer/fun-promises/compare/v2.0.2...v2.1.0-rc.1) (2020-12-13) ### Features * **constructor:** allow any promisable to be passed in (not just a Promise) ([e30a32e](https://github.com/RobertFischer/fun-promises/commit/e30a32ee278aaf52b1fb311fb50fbe1f19d360e5)) --- dist/amd.index.js.xz | Bin 8936 -> 8932 bytes dist/amd.tar.xz | Bin 0 -> 23088 bytes dist/browser.index.js.xz | Bin 14132 -> 14136 bytes dist/browser.tar.xz | Bin 0 -> 47804 bytes dist/cjs.tar.xz | Bin 0 -> 14176 bytes dist/docs.tar.xz | Bin 74704 -> 0 bytes dist/esm.tar.xz | Bin 0 -> 13844 bytes dist/react-native.tar.xz | Bin 0 -> 7776 bytes dist/umd.tar.xz | Bin 0 -> 14792 bytes dist/v10.tar.xz | Bin 0 -> 7768 bytes dist/v12.tar.xz | Bin 0 -> 7768 bytes dist/v14.tar.xz | Bin 0 -> 7776 bytes 12 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 dist/amd.tar.xz create mode 100644 dist/browser.tar.xz create mode 100644 dist/cjs.tar.xz delete mode 100644 dist/docs.tar.xz create mode 100644 dist/esm.tar.xz create mode 100644 dist/react-native.tar.xz create mode 100644 dist/umd.tar.xz create mode 100644 dist/v10.tar.xz create mode 100644 dist/v12.tar.xz create mode 100644 dist/v14.tar.xz diff --git a/dist/amd.index.js.xz b/dist/amd.index.js.xz index 35f782fea1058a0c54ff3afc44ae8eaa487627fb..8efce83b77a43b58cf4d97368f6abebafdc9ff93 100644 GIT binary patch literal 8932 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%0Aj9BpZ zuJVDRm;i0jXF!{S^t&1Uy#)lQ!q~*1E&0sz9JK42`qgQrzE8JIw!-WZQ>O9bDTOF1`T}57%KVBW2Yfo%^h7r zmx1}4tCf>y!x@1o%TRT4@yzSsecgQ2nv{w$WAAYBeFP1OHW_QJt2eHvJ=W?Ex#%x* zUE_JV3cXntRJcM$IoTk%A9O6%*0sF^c3~}6=PWC;`z=1|ko2;Nnn#w}!p%n5@BV5K z74J)-N$Z#(^MC}5H^IFj@EPq!Pa?m3r=7~W z#9E)nl*PUP%2Tc`LtWzLEwWMFe3DIu%hLvZd^HK%OC-dyq<3HIs+YnT8dDU+^Rw|0 z;?kMqB|=qRQZBT=>xqzDQhMzKj%3jba}m1F_>{^z6Xib0CDi<73^fejRrF6jhhDeCpc zmY0SKrW&J?v=987Ul?Etv4j+RySNQS3OCL#Q(Y9pBJ971?W4+Dys=#JiaZTMR68$F-&t7-_6?)RpP7 zK{vr~8{CvD&=(Zs$>p0oT32}UpdyAl-b4~Fh;5kJR}b{59%l;fggDR_0=5#{MRR|p z*VT=lZZ4pHlw&gjb{nMXy~lx0ZaU^B@U(5K(gH{ZU0SFww<96 z-)*ukUeEQLEI62CU6%-NR^AWqF$a1u?c>>*7z-BN68V~|fIm`Bdj7t;{nQv%rrOPa z)jp1EH_~f-&?^fC8L@!f>lOJM$j+@N!kq{jEYTRlbuHR?tu_EBz@u@&t!(E%oed24 zU7=q)g+AqKap<$|$juBItm`L~@y6VZE;kc-Wq}4&LQ8}nDQ$_TY*Mq)fXvbOhUO~0 zt{}VwyFi8Q4ktSb4u|M=PQ!QteCxlb(bJs?<*~OR{kIQ$W@|L+)w*<#QarAkNM4JL zzd>Lc`5H+wWm`Inzkt+oHc`ieux*Yal=4Na_woS_@exez;3Bs7HG<%ZgHb;_8{=hQ zB^;hW!DwPOIKDi==zy`(F)Dogt}50w=3zfYogYUxUcpEbD}JV!r#J@7W?D0Bvi0D- zbwn{>H_0W;&XLaZU1t2|%jmTFeuWnP4N{GL-Tt;E;*b6?Ms)p=zc-GEoXOY0r!1}_ zU`p}%tFl#EzEhzg9!~+8P>MkBPrv6KC;lbVwWyIJ4i}i2c`LX;w@iIq&@#{8k!D-+ zD|hc=i8&L0HsT{+^5LzMy$BIx z&UoKllA5-w#BbLk`(MR?oI(-RjuNe6@MqU3`)^s1n+b@F0{m2bq?z~lXWH!yCOmQg z1G@>@S*g=TpEuaOfivawgw0VX2aTS{=Vpt)e zQubr=2m-xC?l7%8MDy;4%V0F=MiN9HR5&Y>b~{q@t$*ckHi_W=C^GFYoz*+KDcU@9 zj99DiN}nqgKdM^`vG5V`@?25p>k6s_BZ-`Dlf+W9QnltWWvbvdEHRzmojz3_K!m8g zi?ao@b8C1QsBV49&y@?|c#qBR-5X4>ijd>dB~N*z^0}L&S?AAMwBCP&B>vJ~ZVYim z2E3L59D|W%!Og*q)p?Wv0000_1i!~w=lmG}0l`Ip-~#}y`();^#Ao{g000001X)_2 C3uR~k diff --git a/dist/amd.tar.xz b/dist/amd.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..63e3a05a1d59a383167d9b6cc85c3345c1035713 GIT binary patch literal 23088 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 PvBYQl0ssI200dcD2>a-L literal 0 HcmV?d00001 diff --git a/dist/browser.index.js.xz b/dist/browser.index.js.xz index 28172540cd7f1436a96644e8666974a952c81445..e762b5751afb37baaddf23f8c3d6d555eed0ed77 100644 GIT binary patch literal 14136 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

    ;O{%l1@VTPMZ=QrsF=9u4L7MyH-Pz z9tz4^VqJ7;b;(W(vZeGuKigld=)uJnL2;>4>(D{H^yWO8Og_P4gIFu|TNF?}U|#gq z3}8YF-kW`cnmKQdo)gB>lQ<%7z$9(_;rr~9hJAInjlUX9s*76RlC*4^^*_vJ=#h-*8CDhqGs`0AJwSPSS3#dnK zF~>!jY^6IQp}GLkSw2ZBrBl;k$bT@Z^({A_rl-tN;+f@uUK(%{#ENSOm~~K*n)c|e zPDNZ^5fK6TPLAV8UF~KxXpCgn6cVLI%nOz#IrX~uSZWLdn2hC3C&ir#`dwt&&g;=o zeiO~L?t*xg(=I~~HtqD++7k}Dgam&DP~mk1Fv@i}6(MnOg6j4}X(^ZgGEneRLKXK9 zGXx4D^P#u6QzaR=A(b@?aXP$eY>HnBS3-%)3PhmIp{xSm7iwg+Qs@fn7THT~uLM?V zeVz{`Vg2Cavlxo>T%u#{b~>uZTK)ZI&s+q>q*+4?U@o^T+M!g~2%L|JK6pZ6 z@w&yORX7rt$AO4)xK0VuixJp%eBp+KgH_Y&TWc+89ue-kj-X5e>>x96PV^Jx-}{`A zH~7<}TF!c2l<~%4{Ec$}tl%^sNtY^~u_}IkbHZBmlP@!a6B-|?nMToJYS>H~MaAVf zCuwT=adx)7K^tGshuK_sH=+VO5YNl;zk>Ak}~K}iULu(!W@zVy**1;RtZCw1Hi<% zqS!org`ncF>5GGf?<{j;EhQp*1;;h(U>TjbzS;me4VtW4so$T;6cQfs5Y{>GDze;j zcnPViQlw8q%8)tD`5???oy3LTO%pD356I_dMuDojK7TU*8aWXm3t!?(lE^ zMRED*(+`~7w^!8kq_b)A7|`?NoCkMCTjeGG*zu}jecWq~Lwq(+@Rog*v+oLLt4}uq z5Hc4Gdw{nO7$=2d&g|d#=i6IP(kl2(w}C$?E`UcdrqHRk3yM*Wm&ZkR?28tj8!d1> zj+xFYW$y#XBK`3O{3cWDwv2T(u`I)i1s~|#f*vuesa_h-C-NZ_=x%0TQ1iO$1EeF9 z4=${cOOW6x8pAw-K~klC-v9u*C%t*i^jPWu0h4Zk-~#|eOfwO&#Ao{g000001X)^Q CeM4IS literal 14132 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 diff --git a/dist/browser.tar.xz b/dist/browser.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..2e6f92dfff146692c11dfb7c69f2c4d346248f16 GIT binary patch literal 47804 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 literal 0 HcmV?d00001 diff --git a/dist/cjs.tar.xz b/dist/cjs.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..3e9abe0acb3d98b2b81d483e53714109257d1eea GIT binary patch literal 14176 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

    J1=jES$gEkVkaD6Evc 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

    FS~T*&ut-j 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 K000001X)^#nx7^B diff --git a/dist/esm.tar.xz b/dist/esm.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..2f29465ffbcc1f7f29be199195c8d63c2cc2a635 GIT binary patch literal 13844 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 Wzy|;%J(3Ht#Ao{g000001X)_Iu-DT7 literal 0 HcmV?d00001 diff --git a/dist/react-native.tar.xz b/dist/react-native.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..4ef13f19fc19fa2c464a43ba0f110156e20c68db GIT binary patch literal 7776 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 literal 0 HcmV?d00001 diff --git a/dist/umd.tar.xz b/dist/umd.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..0295889b0cb89fbdbdf907727082f9ba9f794bfa GIT binary patch literal 14792 zcmV;(IXA}rH+ooF000E$*0e?f03iVu0001VFXf}*-~Ty=T>uvgyc~T2mB1ZJMw}eQ z0xcbGjvFZQBi?tc?e)ssr*VP!ygcE�?>0m2;K9E^@@F;42x^vwc~{U{8KZXDI*$ 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 literal 0 HcmV?d00001 diff --git a/dist/v12.tar.xz b/dist/v12.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..1f63b96e7fe19524627d3ca7bacca663f6e54845 GIT binary patch literal 7768 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 literal 0 HcmV?d00001 diff --git a/dist/v14.tar.xz b/dist/v14.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..82b79e2a3d082029bfc5bca42c0fe3dff9fe1aa2 GIT binary patch literal 7776 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 Date: Sun, 13 Dec 2020 17:52:18 +0000 Subject: [PATCH 10/22] chore(docs and dist): commit what was produced during the release --- dist/amd.index.js.xz | Bin 8932 -> 8932 bytes dist/amd.tar.xz | Bin 23088 -> 23080 bytes dist/browser.index.js.xz | Bin 14136 -> 14136 bytes dist/browser.tar.xz | Bin 47804 -> 47796 bytes dist/cjs.index.js.xz | Bin 584 -> 584 bytes dist/cjs.tar.xz | Bin 14176 -> 14180 bytes dist/es6/cjs/src/fun-promise.d.ts | 2 +- dist/es6/cjs/src/fun-promise.d.ts.map | 2 +- dist/es6/cjs/src/fun-promise.js.map | 2 +- dist/es6/esm/src/fun-promise.d.ts | 2 +- dist/es6/esm/src/fun-promise.d.ts.map | 2 +- dist/es6/esm/src/fun-promise.js.map | 2 +- dist/es6/umd/src/fun-promise.d.ts | 2 +- dist/es6/umd/src/fun-promise.d.ts.map | 2 +- dist/es6/umd/src/fun-promise.js.map | 2 +- dist/esm.index.js.xz | Bin 480 -> 480 bytes dist/esm.tar.xz | Bin 13844 -> 13836 bytes dist/esnext.index.js.xz | Bin 484 -> 480 bytes dist/esnext/src/fun-promise.d.ts | 2 +- dist/esnext/src/fun-promise.d.ts.map | 2 +- dist/esnext/src/fun-promise.js.map | 2 +- dist/node/v10/src/fun-promise.js.map | 2 +- dist/node/v12/src/fun-promise.js.map | 2 +- dist/node/v14/src/fun-promise.js.map | 2 +- dist/react-native.index.js.xz | Bin 824 -> 824 bytes dist/react-native.tar.xz | Bin 7776 -> 7772 bytes dist/react-native/src/fun-promise.js.map | 2 +- dist/umd.index.js.xz | Bin 744 -> 744 bytes dist/umd.tar.xz | Bin 14792 -> 14792 bytes dist/v10.index.js.xz | Bin 824 -> 824 bytes dist/v10.tar.xz | Bin 7768 -> 7776 bytes dist/v12.index.js.xz | Bin 824 -> 824 bytes dist/v12.tar.xz | Bin 7768 -> 7772 bytes dist/v14.index.js.xz | Bin 824 -> 824 bytes dist/v14.tar.xz | Bin 7776 -> 7772 bytes docs/classes/_src_deferral_.deferral.html | 8 +- .../classes/_src_fun_promise_.funpromise.html | 124 +++++++++--------- docs/classes/_src_types_.fulfillment.html | 6 +- docs/classes/_src_types_.rejection.html | 6 +- docs/index.html | 4 +- docs/modules/_src_types_.html | 18 +-- docs/test-results.txt | 116 ++++++++-------- package.json | 4 +- yarn.lock | 34 ++--- 44 files changed, 176 insertions(+), 176 deletions(-) diff --git a/dist/amd.index.js.xz b/dist/amd.index.js.xz index 8efce83b77a43b58cf4d97368f6abebafdc9ff93..0d137fe1e16069dc1089fd7478335fd5c93faf41 100644 GIT binary patch literal 8932 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 literal 8932 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 PvBYQl0ssI200dcD2>a-L diff --git a/dist/browser.index.js.xz b/dist/browser.index.js.xz index e762b5751afb37baaddf23f8c3d6d555eed0ed77..c80d8418f3def21ce13bc0edf7692a16d487e6ba 100644 GIT binary patch literal 14136 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 literal 14136 zcmV-8H^<2RH+ooF000E$*0e?f03iVu0001VFXf})@BcRUT>uvg$)}l&u;dj1tPQQF z9an5w(!<9WQxQsjictIGf^;3$vC{rc=6wK{UBopJR}>NSrw$UyAoM&~Fbj3)C~QTGysy}!R?i%>`d_cA&kqE}rhSs7jY(9B~6q#il|yos$xrO8)&b&5;=~q$O#$i)i#sgq zo+1aF3N$?_HIyoBcX}z9=QwY5<)()ic{J}>)vF`FV7x&XDoqL{9J>#}7ET=v7NwGw zaW(arvycKofzv6L=)f%IV7mQx!zRBRDrUS+HKx0iWI#0{&OK8x6>1?OG$!4u5SlTP7ctmBq^yP=s@t8wx;Sh5f>NzD@*IRw!zDs5Qi%(s=KZADZOspX7! z&yu<>+rXgmLc1wlKii!D0=+MMoM)+##_AY9NJgPj6d@1z;ItblTJG6Ii1XbjQ*60g zH7DYb?RJ1r3VakO@5jc2R|!0fz$73#Zeb|^hH#Rqp|RMV+(VVncGK;Cm!Av>uJNYg zZo!7FTfH56z{OnbV)$4EV{LY(y-S)NNcH_2))01$V%hIw5Jb#GZ;s0 zB=DrbJgCZIrS1SIyBfmOi0vxw&ny-#e8ZHB5lm#+5X=MDcDN7FeP6^jbCKRn97Uay zGtD&1vodLvNLf11>XgBRfGoW+s9rnqms~uR%oP};G_GQp zo^DFi5HI&%vt)V-87sEAcy#;F&CBJ~JVG7k++)Xn4|neY43 z0Ix56rPP2_AF6=;7J?DKVOIM^Q$(p2Safg+MH61Q#EKhmfWK11F@f3$p#f&EmvRM( z@@TXg8z-DL`~V7VB=pvMrF&)q4VdQs%w;LIt`%z@UyR7gB0)KFKG?#jf{$mn_~h%m zFl)SS+H>Y})$*Lu9>0L+eD>G$N2-t$h@rO+UjyH#RFe7@tz_6Lu;biaN{rJGnl1|o z2Wr}__o-)v%SDnDuKfVc;0kSE6rll}s!=yCJWmXq7a$WGT zW-6k^gMG|(Bxp=g!N;1{Xt8McI&a{EJ8{S#ei|3xNbt#^a~?tK@@(PRressFT}pU% z=1(sFW8D#*Y6Wfe5Do|2dfN{MS$v)rWaf8CsPkTQBb4P&tR`Q?hrp&8v+V%J>4qsd zX6osrt%1xlXs~*5q|Z)l<|4Q81Zo+0Hy?alCbkikmtO>ZiB^OBZqBM+j|?v=;G*j!#sC~rc;6u zz)fn&sGdwkh)G69DQNGNSGDop309RGY{lMsNMAWO#(b^qL@d#ZdSp&vaj@dfe+S2p z^g-i(FsO!L#&RU?=f|XT#Swf$Ac}*q{Cc~ch(}4qg5Iai=rWq8#Ds4R^(EI`%+)R$#_}QsQ51nQzSHk*5hC*Fuq-X2g!zY@r7t^ivuc@5`@T z0et^JJ}Y3(k9(hgD7TvtOB(Vbv#9AI?t0<;a-Nl6?8tGgFd;&`y?<$op#9FJAr(FQ zhmXAnwNHzGZmzE!v^#{xjTI+o@7wXVHD^uDUe;Um-ghfZO^F!R|DO2Ke_kCPs2h5N^D3UaXhrwm|(BAJzfW5YS z!Te&*xEcYafkRCmZz}EPBlRnBFz*ckx#rDbF*Zzg#p6AsiCp>Ls$riOqf!aKO6{6* zuaE2#8rT&me%9t<2`&D&$GBsn)jdKR9y)~NukQedG__&H2TX~xtU26>bFI7T@RE+z z%l9EH{_g?PZ_B;T)x8(mV(TOG0>ThLPFoZJxJb!wMSVgFo-^)NoHb&~NmpyHnGtjN zCYN3a&>qtIiIF|2mQbFBVmkXIm99pAvU@^kF7B7q)C*Th_tmPP`;9Hcm|^GScp1FG zr`BU96J>$Np;#-zb~LNAl2!#I1St`S$rm0Bv`wK-G`|qhy(qUY?&74A6hX=HnR|bQ zJ|jtRF|D9KwuB7{PIkPAZ95WZ4(4da20jWua~mQ1O8Vto7SIz$e<$Uf_IT{So!3Kq zJm>%up=`{ji4>xO4+sr|F=g9@l?r3=tyLJM0;7&1jiUnJ4*s2qF3hup6OFaA^Y%w^&X&&gb2H2?&<{Z?|S9gbN_68#(wYTC>}%+q>qsu2WFNhwqr zzCF(zsMkJ_RI$Yv(&TQ>U}edTSLDJ)+(seH3UdfcUKmpjn$k0^rsg_;vHHLe+*$KX zDpuqI0Gkk(80SgyTurlNVmQ*K>)?J2$nV}43KZr$)8R9gT(~*aNzNl|9T0eJSoupST#96L=H=)V86aKdmlMTLN z1nh<0`85>@w{$xh1IU#uM8P@KVw&ViYS6tuvY2!WOQbOfxxL`la2H!KLJ8rQ3n0RY zL^JUn^+=z*ZJljPW5adCfcTEoBqD8u!5$xE!vT59t)il&1N?^d5P0ji^WsuJa+8k) z6*H`USPAd~K3Z*5%*+04TNh*t-%{9XFvATC`|>%{&<8F63x6B24usOp7JIbE=mQ7bzDstb-iqiQ6f?bxpxFc?lfQVHAMvb`2b*yUd;mWGQiEJtVz5@2Xx zQr5uyQn0SCJR1&yTOK>(mNrw>iPAqY0Uk>i;f||+7fx1p605EWZm$J`EG7A{NkdM& zbu*M5j3$4#tZAiBIL=&*^(my9XC!JkziZ&(@AV(;xFW937!b~SD@mhSV@dRTcCh1d zQdkpjVxzAlp642#_aAc(ka)5#>9+ngJU0_y1rE}2%M+u|UI8?@cg6!>BQ-S!p@>_b zPW0?8@z2C?nI{xRki(F-5bY}3>}#8YwF|8C*PB5iLe zJC4%r9L$Tk)P8~YHx&QYeXpfgE)t_Kstip_2I*$YVk>LutTrc1Q}O-eo052x1R{5Y zgt+Tb2$!9GiowPn}2E%>x-%&T~s#r-wY zJDK6v9{;eQyj)*%ETc}7ze}Udp~vO1{TyG~fI}rM&Ia*(l)|}Sd`~oXf2C5{N$f;e zzj-^c9G7l)DgKPEG4FfqOk`8vR^SlKSI%$(2Y}R}APcLi?zS?bOvy zF*|dqLHA(qYx^^5!ZduJ z7Of)uJ4vm;j?z32y9ThO8$B{+ zsvgi~g;qLL!2^g@k4o#i(smXb zTi1}ff{4zMA~88M6vfhq*tS$XMbS9Vg{)9>e=Lhm_Vr(^d`uIQPAUSthfHl!69TX` zK@?z;6@hKI$qxEV4jJ#zHfE}|a)KwW6CLb^y}Bj^DLFlDp9l*g)~lx+*tU5g21kj4Bu4~_4y~4YHhT4=~GyP!oe7rvsme3GZ&^XPl zN19;G%Nq9p8qhULA(-SZK|N|Jt5v+&A&_ttt77L>hPy(>=f6l(8F$s2NMO8#z*MIm z=G5hEfuI2s6PmY0Jdq7H?*T>QDDDX7g)idp;_w_QM(IUI1r9YB<_s%;JQ3&Kf_4SL&dn^ zJ;PM~r89qDuDwwWkVjZOAt_K~n(_`iRTib;C2$Izlr5wg5lk*xWj+vk8jK zV}dAEf&mIs=191XNnCAy6Dr=qxpv6U+$E*72;WM`^9SG1!UOM6I<5O3AbC#^(H?%5 zK5WF79#edU0J;!V2=|{wk!FJK$(=tq^q>+{!etr$_RoRYhlY))git!WVioFH6yesaP80U41JM3p(5B3UCB8vRj9SdGMnf1+%abwMG)v=tVunZgHs+Fz z!*(({x8gl|*ee9~L1l{!OSGFa3<$&tsZ<`_1+`294pQvbXV;Os$;R|=I#N#LYT8c$ zQPb^^a-8%{#?Ea9hpW8r5XsGBBNdBp2_0pW2)jfdWXHho+m!S}#=1n04q?{B6`1I6 z8dWoL7|ioTh(;H5)q6pSeKnc97vr^_>3AJpm?-2H#OFhwj~)QHD^ zcCM=;Q` z|Ao#59cP2zl@QagD%PK%m8&T;<0cF5{wDFxDggY^P1b-cSn3^}kBQAocrtQg|1cjBzO62K9)k8#)%XO%GoFNL!LmJ2 z3=qxg`IGeX|3r>PXeV%c%E03WiKY{CH<5sLRs+>qB)8Zm)r~eoJyK|u+O(UlUd_Cl ziyI2xoCm5bJ?+tv1!*_jp^g&SjV#DO6wb)FrW@L2j&5FJYDB+*KQiCUa5bIlzuJ@Vug34K9E#EQoF@QFMGo z6FEr*9*~9No(&$>9Y8-{Z@&Aw5q5p~h>sf6+LLv(jp$ori51l$&vt1MihK!gRP=Md z@sL7D=~mJ0a~Zj!r^=iHYzO6Q$ky601L44N2uoYQ76D4QU)@!|&N!~pUSDJfas8S& zWuOUQAq>KSu%6>jPllbU?809+I2o9pe40pk-ESZ@%)(+FmEPO3u4$rh(!B^iDesHJ z&EWB+;@L)`JKt^6Lu#K>+*c=G zGf|`~xMpX7G$Q!dLA&>v&k#I8K?KXvz1r^Fo2PBb`Dd{q(V~i2xgaRbIG8T%;YzsZ zI+F9DCFfW-zTH&G=N^Ng55)p4>M7&TQx=##a8E8svcs_lKmjcn!IxW9#$W8Seju^m zzBD@j9V9s;@&hSOX}4qsq+OXl#CcmB6%*jnMGEED8r-ra)y`LOFB*N$Q_{eb1$&ah zUka$qIYQptW6yA;wqJJ8YO(#vn}9vEvL7j?18s!>eKAX?*laH}u-k})W>|17t3mXJ z7DM01av7oH*E?9qe*a_GSCvi+5XRvXdo+X^m)uZ{$h*05G#Z1y+VTvp0~hQP&;`R{ zM$wBbHfF|v{*`R0Ro%dd%Ur7LDnYDV1zBfs)HFhw;OeP7x`PxSDZ4blAaTIpp?OUq z*Bj3)C9Dn06KiRw`aa<+^iDxaRU>S8;Qp+V_iLAogz=KzzO*_8f}h^T4Bz9tty$y}B#v7e{cZIMc>-Hs_ zhL#l7t%=N2Q4HpL2CfR@l-HAGl8I93?8HJtR1PFrx?*%Q6M3vAXD(v#F;wYoDaqme zzz8zKl6Y5rD4=qObrOjhq5>?_zPT2Ykh7+j{F=&Xj;{QAx)0L z7?X)ncncURD8Ze6js_u%JhBAA+PQB}UfFN6`yAPV0=%Lh{H z$n1s?UcwT}_d{$n6*>I~gvRc@t`2as?|l)IESF3<9ClmLK;)VD?LJ7bFe+h{(-3h(SOo(#yCZTh<$(H#WXq9 z4gru3yUd#od;z)Rpn zbzuIz#hqahmyKx+|91|HCiMZ~`^9^xd}r(?QwBLGX~(TrV?A|{K^sD~njpw~ngyvv z6Hlqp6)vYj+^^@0wBI9;9>W0S&kO$;paOQrr=a7km{x1??cWEgUH3VhTpo$y6SJw6 zmv2bqr{e|!0emS)O8`%AnDxt;RY+s6)1f8-)gYeCr=A!$v(f@pH|R~x_iKu(jdGk$ zT%Gu_mwsg!^j!|lqpB`JP@+*Q)TU!8nYd?s1||)EiJ$Gp1&Bg2G8hdVNe?KNqg2BY#~}zu%|N&%-cHYy=|4apH-Za?$}|(0Uk+T;Oea&EW>C} zIc~}6sa~Ib*7fySF+C$3q_|Oc6Shvy4!d&GC589Sd;(p45s)aHtH1PNlYXBVxO@nSk2TkWFzhIxcaI5$5A-AF?>KOc(FaK=Cs1a5gkN za|B>2bsh5Q)fZ{&pd_Hb$afQ4a(=>>=Q)4NLd&>1lQqc?*I7wM-TfHGqjf~j!s>v! zR@I53VI7D1xt_8Z`!2f-(!<`yw3;Pd1{aprEki;kdbAW(7#=vz$(*1HcVF0fG~DaV zaIQ;YNx#_nECsc{2|NQmv*W0llS&?FZ8nlge>iXU06SDm2!;`|HgJ=%Z#A*uPAprz zJUEV#L;E)p97NC7(?dPHFLRBbpTqdg@V+WPf8`#+E7 zJ;?cx(lR)MHb?{ts**!NCQBM$G~^g)8*V1>oIp6ut$Qj(j(-^qz}VxPIF6GJ0e&Ov zh?l8RIK+NO!^tgmIWK+3;D8$oe{*suYmKr5IH66$0kNuYuQmAYa*||6`8D~;kDP>C zUUW0z^bov@I<(fLQ0_m$T5M>leeeI+TMAsG;p^%HUP*=w^e&0q>FJX_Ij(psu%X=$ zcx^aAIq)xSxzNuL$MFa^6_8J{i$T(RaJUUbkNyUC5COy8efHT%VqpENINgY4{*DJM zNZS_@YSDq8g1e(so$pQWmcuN7I>Uh5f}rJ2o&8P^>9Jb2y-0~nERH_6(Uz~ zh-A*T*5n6T%0Lr4-)g)a!KG57@K$4mikniAObC6^p<>s66TzbEXQG)P=74Y_ofkm5 zC|YIVk)xLPf6la2`ce2ut1q{S-26<5Zp7dzo4!_eA@6rqozc8)=j;QRst?HRO;=2Ygf0m0p4Cp~l3$F`5C7G9L;Bv3t8QnGO-?u_p zFVdxl>Zyw`?o(=$-|KmGSs^dhR$>R!N(vG4hEzhT;&Ng_EYUJAW1AYNe?qy=xY;`Z zMT-~;OD~iCrOHZ@{Y||3KstEn_Sho(u?2cZ_EjFXt%ZTz_xoxDOey$3B^G|IgDwfa zk%i?#An@kYIX!LP0Br8t>#ER?Mc}VcPr#(FOpxJFvuly8KQ3%YHQ))wK8`cu!;Ef; zX&G>df$wYXr)?B1WiKkuo`BR&O~3!bX?J|(?Z`>Z=7Z5imbhj<+3W~IoQ?{(+U`03 zPRk!?E!&{c3y6%&&XvFkpEKnojWj}(uPES(F@!R~mXEFC)Bd>zd>=$EAV;me>B-23 z)xugwxV$sC)X|#i1@?_d$pM94UHwOb7AiG(K~YzN#k~veUnE*6brd3IuWv1?copqC*ml8h#gA4R@+y$EXRtm|j0$>Rs=*l3<`pqE=azR|Pq_x`{n6hulg&=@Jon#*^(UfGUe9`Ix%&j=i zu=Z|U-jvqyB?W;llFV--r5R|5nD7D z=8((~^(d_YTSuCZqT!3qkPh@#`MC1)Yp<4@f;K2+~+i~a#$8xj&OQSYC>r7iG=ZAl42ED>Jk z!~vEo*UbY5DSGR$fTis35a}+%2NR;C>~C2;U>>bnBSm2i5{g62IaxDnAmb}sDZ-9^ z_;cQ&_$&Des5|VRv3>fK1VtG`>;|4OkO_$99{r;*s&Pcyw2Az2RHVn*c3(2GbGu9D3H-ww&*+fSZfA1=+c4$BHCi|VnL9$Fw?a?pu&^ZZmVA0 zR1o6kW~-JciH_BB+6fCn8s3cBcsLj z`Qmvfbj7 zy*d2gtT#^f)Z&AYc$X7hA9>A+Fz1MXT3gJV=_mE`Pd7j6)`8Wu(Bnm;$ItvZVRM7d zff=hSHb#E5!Fd5dD^f%_WAlZ~O7=F{o^porq2^VQsAL}80I66FI(TeF{(KkR(r zlJm3p1auv3k`5yv*HY_u!5q1F3&Mym*!a1To-n02pUw*rsc2VL_DB6^7<%IY*G3a3 zfRR+bg&x;3%7z<`Lqqx@uA^M>176EqMR1dGa&=2&wr+ecGD|A+fvw(I`#|@7AP!BH zf9CVS(iC|F4F7=A)EP|0`faT}0x-|gW1ZOySV5yx@(%E$IyNYI91hL%jv6>$+VfmJ z^Dh=4>&Q&3e{wcIN1DttteCg3GVUD)5Fi0|ROp%LIIwFNU3#5~1(nsK7lvxM!QToA zg3s1iL!a!-WWj7c6hd-5So@^geHs41;+CLnSd@KKTyk}!Kr!9TUbcUSya`-y1t9zl za;Qr5bC@d#M=)%wA>RV3t9MNJ1|hUnFq!V$MOU@B^*s3#8}t+84EO0=h1ZW$@qI25 zya9WU%XK~LD8kE-Dy??DeM$-V%w=^91ZjIr6$Yw9j-I>RWY_{ru5{z;#}Z*nRc*c? zqfT}9X_*WkH=T6_l`s#v>Y~KWUu1VSx5cmH%ci9b&kx8k57-Bl)Ci4D98}iPS3BXw ztXENzP3PH87C3cKQMYqkZK%-f|@xBgrqt$LM-LKUt8_2CuH8ZRxkcWo@O~61IFFHl2M(8dijGZ0wNJX#Y*p8 z3CUW+5GM$3|5}M6OY@N7b>~c!qGq!Hjz%!+&8a>qL(iYxfjA^7(mq8t?X=IH#9as$ zNTZrypDrQ_96FU!xEXj08*Tsi_ixvy2Q4cD<%KJNf#9d&V-zReZBr?b{UF%IXJqwOrhn zo=k06P)zjb0+W_mxS6;rC$+`@jF=@$MRTR3YqS`>P~Kk@esRGkyT8%H;(JxZ1*MrMV2nPicVa@}G_n8MXt0P%IVf|=6J#Jl zCsd>&QwP`4K!;Ng5iovp3FCPP8287e8;@==om*cf4Ucux<>M2NvD%iYJ%w5-Boa*} z^7kf;SR`DZo z#MeJN$3X5|?b-cS^ifX>qO`7ot83!5eD7THDeZ3Wn5gKQ$7I0>KI;_q)m95Lt1Cju zPH=>gM9HG2x1e2s6_VogPBL-n-;##_b0;AZoI4Sy^KB0 zC{e}VI^m&)0~3wLtj{m7d@26tkiX;XD>rf=6Mm@dIu2}`RtUgGrnahRW09nYw8Lfv zOzQQJoLl(D(zy2m&jO4s*p;0gGT3#!@fs2L2W?VMS8c?c>v=T^nxauMd6Rfn)HsrG zR7fY=30MZ@Bd@g$OxzT;$i2r_OBFqb-sBH)2kk#9L9vVYg^GQUv*KdN%%RGT#5mra zf(dT%=MsBH3K9W{W%1ku#id_yGw9UzhIfDG`24rRX$oN5((`6+sqe9{cZc3&VdEPV z;TD9m(8_+yiUbz&y>!}e8nb(BWhfet<84Kg!II9+)O8!>sfR2fkX@{{34@Z4NEfvR z^Jte^E`1;2zdSxq|Al2-kcREtTkTgqn3o|qh0aRMGzsh)6`f|LsX>x`D6zlVM7!6v zO)f=FN?%}qEzbRb(H4W0?2G_#@$@Z<(L0`;gk=nVfiC&t?0y}Tij2v=(S2syH9Qte zAa*ZRg?ejog?>+i_Y;4`7_V_8lZDa9_^J> zswu{Z=v~=3MF&n!dtma!s4UM$IqQ>44zi`)8DjxPEp-8*NtQ-e(oJzKZGD)Zf z($ZyB@=0~l#z}{;E09G-_D`y|E<_ygqLO!Wszd{CrBFKms||BLYF`haWo)6sm&;Gp z&W}7D+ZBS>zSBy8ADKt639jzY&R5BJ#>#!Mux4D3J(dhm_8ohyz3P6T6R3w+9ps*3 zxg9@E?l6rlEZWq%n*O)6QA_G`!^GVsn*rNhfFrwrscQ4-(@zM=*QV@ccP>CYrJ-Em zT>CYCE%;x>jX87~w?bHlk~RcGQP=3HN6r$sBd8XKT|`_OcLiFkxPbDTMEs*0e9 zMfA@`92!y!@V$$GKp3||$9Qv~Aj|X&S0%m^J1GG(#xI-(@cc%|AU2`Bu1I+wm>+>&TrCH~s zsA4-sWa5b3#@@r1Z0$kK8J6tk5H0Q_V=H>d<@yg7u#rTM%424nta&&n`@%=lS@-vQf4hSW!V83&i`Z1jLd^_K ziI47HQ!S$N^5zmJAs5P>ZwW;lf)bIz)&Ek2jl~p_2EWVGn0(l#CoB@M%R76!X#- zvI`O06;H_HCl=9q2e(;=9|?YM1kP^^zM97`ay%({g-MY9S$!T1$u!Xc(};$S8qOoWTY|Ua zfFSl7rGpi?$x>dQlPXj@+Y}dp0Sz=Txd3~+JjRu5`&tSWtf3&b?=rGirBxOVtfFWPoB@m)nbJ)rY<+C!-r z{sL^6ynLq0vs7fC)8kC5WSk0XSu}skM4*3_ZXU!j3wr5ow?i%{cJ0%e_S#iZcc)Lx zeJhgh8jmmOV{KLO7su2m^HH9pS$WtBs|Q`78GQv;jvHqz`(zV)n8RN@34bk@r+mK_ zIsegvM4itAFWbA5H+i#Du0>l20#+=>DS>;}v;FNw=Pst*7^IZe?iQLgFuL85<>7j` zI)#~j!HoyI6;1t`M+x}w0J_eR+y4sIwM&&T%9rO`Uv7jrS zp@B*=P$7G`B$QGT;TccD`pf8iP`HLkVci3?42-|xc{&pri=&4=ZyisWodCWHiDC^s z{Hlu47RW%)RFBJ;km)uQRVUCqh`thE-Yrs+1Z}v+>P_`UNk6jkYWasDnh}#Up?t;v zRA)l@+I|Cf{tKADhu$vr!KgzC@z@7?pixc;rc>)OOBm^QBV+X0I`O!-h4%8J>LkB{ z;^eu5`JuFWTdHy`AIRG@$NRxZ#I*C1O2tdA+8}{3o8Xy1HjrpZx~MY;elR!;0_1pjf;_aMih7e31_vLic4DP5d{dtp zZJpuJ!1wVxuiW61@NL$?E!u(M)BTI}Of!HBc&kZTr;W^I{KwP$14-73Qr0wZSP$^o z_?3v~l*>mgWddD{v zFnJJw`GBY5T>JKfgJqQLbe5V`^gXa0Y(ftDY`!9~YCQoW&4A|vw+JrbKxH0cJx;

    ;O{%l1@VTPMZ=QrsF=9u4L7MyH-Pz z9tz4^VqJ7;b;(W(vZeGuKigld=)uJnL2;>4>(D{H^yWO8Og_P4gIFu|TNF?}U|#gq z3}8YF-kW`cnmKQdo)gB>lQ<%7z$9(_;rr~9hJAInjlUX9s*76RlC*4^^*_vJ=#h-*8CDhqGs`0AJwSPSS3#dnK zF~>!jY^6IQp}GLkSw2ZBrBl;k$bT@Z^({A_rl-tN;+f@uUK(%{#ENSOm~~K*n)c|e zPDNZ^5fK6TPLAV8UF~KxXpCgn6cVLI%nOz#IrX~uSZWLdn2hC3C&ir#`dwt&&g;=o zeiO~L?t*xg(=I~~HtqD++7k}Dgam&DP~mk1Fv@i}6(MnOg6j4}X(^ZgGEneRLKXK9 zGXx4D^P#u6QzaR=A(b@?aXP$eY>HnBS3-%)3PhmIp{xSm7iwg+Qs@fn7THT~uLM?V zeVz{`Vg2Cavlxo>T%u#{b~>uZTK)ZI&s+q>q*+4?U@o^T+M!g~2%L|JK6pZ6 z@w&yORX7rt$AO4)xK0VuixJp%eBp+KgH_Y&TWc+89ue-kj-X5e>>x96PV^Jx-}{`A zH~7<}TF!c2l<~%4{Ec$}tl%^sNtY^~u_}IkbHZBmlP@!a6B-|?nMToJYS>H~MaAVf zCuwT=adx)7K^tGshuK_sH=+VO5YNl;zk>Ak}~K}iULu(!W@zVy**1;RtZCw1Hi<% zqS!org`ncF>5GGf?<{j;EhQp*1;;h(U>TjbzS;me4VtW4so$T;6cQfs5Y{>GDze;j zcnPViQlw8q%8)tD`5???oy3LTO%pD356I_dMuDojK7TU*8aWXm3t!?(lE^ zMRED*(+`~7w^!8kq_b)A7|`?NoCkMCTjeGG*zu}jecWq~Lwq(+@Rog*v+oLLt4}uq z5Hc4Gdw{nO7$=2d&g|d#=i6IP(kl2(w}C$?E`UcdrqHRk3yM*Wm&ZkR?28tj8!d1> zj+xFYW$y#XBK`3O{3cWDwv2T(u`I)i1s~|#f*vuesa_h-C-NZ_=x%0TQ1iO$1EeF9 z4=${cOOW6x8pAw-K~klC-v9u*C%t*i^jPWu0h4Zk-~#|eOfwO&#Ao{g000001X)^Q CeM4IS diff --git a/dist/browser.tar.xz b/dist/browser.tar.xz index 2e6f92dfff146692c11dfb7c69f2c4d346248f16..c5dab0f30bd539106470bf562e1f8df7696e825e 100644 GIT binary patch literal 47796 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 literal 47804 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 diff --git a/dist/cjs.index.js.xz b/dist/cjs.index.js.xz index 99f4b8ee3cb54306158d9f14868e792801ce2cf8..ccf33fa0e857e3117a6c82068bc458fd342b182d 100644 GIT binary patch delta 504 zcmV5hKWKC|P;xbs+WN{AzSf|3FId9PP zMl9o$kxD^)0$gWCx0yIy`(CL_bCIuheTtHD4p#8Fzevfi@Xt;2acK*`)TjWFaEjr7 zbZY&(y8!)#_LXRFvmN8x8c>6pw48{Vx}xn8ND~pamc7Rln18vH*D?GcVIEIAi-@!@ zLO6F7B$@vta?Xe;=>5)Vf}0AkRY}Ji$b_4Iw&*2cqgPjQ-kb;-ngTAS7uxwUNhid& ztKdiDw6D#DC*Vn{dNiQi-iM?ELkh0&Oq>pV`EJ!2@{8V!(T5o?$BNtle&TjMJ`@Gy z5b5@gW3s!5rhmQ)E$}Sxmy*j>m1PEg4Sdh%KaT2uF@Mjo95~{dO11Fm#&quD-a1aP zh9hc1;ar{WUcb&OQ>gI*%wne6yjVAT9h^>p-aLvX%AvY#(^^M|4!KTQ?lAz(@T_iL z*trMDu{)5e(vlssn*W*Ap?_7K5R(w~;9KN@fP2iGoNZP^MJfqI7t&kydAE}ma)pfd z%VugdNjTf63J9i~)W*}of@IhGKrFN}pp>FEhE^7uys8Jl3=1=9HwK)4)&KyW7wN&iBE^-HFaj7sxcgxM delta 504 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 literal 14176 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 q*kldz0002tO6|xCb(Sdr0lIF0zy| implements Promise { /** * Constructor, which takes the promise to wrap. */ - constructor(wrapped: Promise); + constructor(wrapped: Promisable); /** * Takes a value (or a promise of a value) and returns a promise wrapping * it. diff --git a/dist/es6/cjs/src/fun-promise.d.ts.map b/dist/es6/cjs/src/fun-promise.d.ts.map index d4b353b..8413e46 100644 --- a/dist/es6/cjs/src/fun-promise.d.ts.map +++ b/dist/es6/cjs/src/fun-promise.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"fun-promise.d.ts","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"fun-promise.d.ts","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/cjs/src/fun-promise.js.map b/dist/es6/cjs/src/fun-promise.js.map index 4a084c3..3df7b24 100644 --- a/dist/es6/cjs/src/fun-promise.js.map +++ b/dist/es6/cjs/src/fun-promise.js.map @@ -1 +1 @@ -{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @format\n */\n\n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n\nimport {\n\tPromisable,\n\tPromisableIterable,\n\tUnpromise,\n\tItem,\n\tSettlement,\n\tFulfillment,\n\tRejection,\n} from \"./types\";\nimport { NestedError } from \"ts-nested-error\";\n\nimport _defer from \"lodash/defer\";\nimport _delay from \"lodash/delay\";\nimport _filter from \"lodash/filter\";\nimport _flatten from \"lodash/flatten\";\nimport _identity from \"lodash/identity\";\nimport _isEmpty from \"lodash/isEmpty\";\nimport _isError from \"lodash/isError\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _map from \"lodash/map\";\nimport _negate from \"lodash/negate\";\nimport _noop from \"lodash/noop\";\nimport _toArray from \"lodash/toArray\";\n\n// import Debug from \"debug\";\n// const debug = Debug(\"fun-promises\");\n\n/**\n * The class that you should use instead of `Promise`. It implements the `Promise` API, so it should be a drop-in replacement.\n */\nexport default class FunPromise implements Promise {\n\t/**\n\t * Whether or not this FunPromise has been cancelled.\n\t */\n\tprivate _isCancelled: boolean = false;\n\n\t/**\n\t * The promise that was wrapped after attaching our custom logic.\n\t */\n\tprotected readonly wrapped: Promise;\n\n\t/**\n\t * Constructor, which takes the promise to wrap.\n\t */\n\tconstructor(wrapped: Promise) {\n\t\tthis.wrapped = new Promise(async (resolve, reject) => {\n\t\t\tlet resolved = null;\n\t\t\ttry {\n\t\t\t\tresolved = await wrapped;\n\t\t\t} catch (e) {\n\t\t\t\tif (this._isCancelled) return;\n\t\t\t\treject(e);\n\t\t\t}\n\t\t\tif (this._isCancelled) return;\n\t\t\tresolve(resolved);\n\t\t});\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise wrapping\n\t * it.\n\t */\n\tstatic resolve(value?: Promisable): FunPromise {\n\t\tif (value instanceof FunPromise) {\n\t\t\treturn value as FunPromise;\n\t\t} else if (value instanceof Promise) {\n\t\t\treturn new FunPromise(value);\n\t\t} else {\n\t\t\treturn new FunPromise(new Promise((resolve) => resolve(value)));\n\t\t}\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and resolves to the new value,\n\t * disregarding any previous resolution value.\n\t */\n\tresolve(value?: Promisable): FunPromise {\n\t\treturn new FunPromise(this.wrapped.then(() => value));\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for consistency with the instance `return` method.\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\tstatic return(value?: Promisable): FunPromise {\n\t\treturn FunPromise.resolve(value);\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for compatibility with [the Bluebird API|http://bluebirdjs.com/docs/api/return.html].\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\treturn(value?: Promisable): FunPromise {\n\t\treturn this.resolve(value);\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary.\n\t */\n\tstatic reject(value?: unknown): FunPromise {\n\t\treturn new FunPromise(Promise.reject(value));\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary. This disregards any existing status.\n\t */\n\treject(value?: unknown): FunPromise {\n\t\treturn FunPromise.reject(value);\n\t}\n\n\t/**\n\t * Attaches callbacks for the resolution and/or rejection of the Promise.\n\t * @param onfulfilled The optional callback to execute when the Promise is resolved.\n\t * @param onrejected The optional callback to execute when the Promise is rejected. If provided, the result of this callback is the new resolution value, and this promise is resolved, not rejected.\n\t * @returns A Promise for the completion of which ever callback is executed.\n\t */\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected: (reason: unknown) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected?: (reason: unknown) => Promisable\n\t): FunPromise {\n\t\tif (_isNil(onrejected)) {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled));\n\t\t} else {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled, onrejected));\n\t\t}\n\t}\n\n\t/**\n\t * Attaches a callback for only the rejection of the Promise. If the callback throws, then throws a [[`NestedError`]] with\n\t * both the original rejection reason and the new thrown value.\n\t *\n\t * @param onrejected The callback to execute when the Promise is rejected.\n\t * @returns A Promise for the completion of the callback.\n\t */\n\tcatch(\n\t\tonrejected: (reason: unknown) => Promisable = _identity\n\t): FunPromise {\n\t\treturn new FunPromise(this.wrapped.catch(onrejected));\n\t}\n\n\t/**\n\t * Creates a Promise that is resolved with an array of results when all of the\n\t * provided Promises resolve, or rejected when any Promise is rejected.\n\t * @param values An array of Promises.\n\t * @returns A new Promise.\n\t */\n\tstatic all(values: PromisableIterable): FunPromise;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3, T4]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable]\n\t): FunPromise<[T1, T2]>;\n\tstatic all(values: [Promisable]): FunPromise<[T1]>;\n\tstatic all(...values: any[]): any {\n\t\treturn FunPromise.resolve(_flatten(values)).all();\n\t}\n\tall(): FunPromise[]> {\n\t\treturn this.arrayify(true);\n\t}\n\n\t/**\n\t * Given a function (or a promise of a function) that returns a value (or a promise of a value),\n\t * create a promise that executes the function and returns the value. If executing the function\n\t * throws an exception, then that exception becomes the rejection of the promise.\n\t *\n\t * Any arguments after the first will be passed into the function when it is invoked. If they are\n\t * a `PromiseLike`, then they will be resolved and the resolution value will be passed into the\n\t * function instead.\n\t *\n\t * This function is really useful in the following cases:\n\t * 1. to [avoid releasing Zalgo](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n\t * 2. when you want to create a `FunPromise` based on an `async` function\n\t * 3. when you want to create a `FunPromise` based on a normal function\n\t */\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7,\n\t\t\t\targ8: Arg8\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable,\n\t\targ8: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(arg1: Arg1, arg2: Arg2, arg3: Arg3, arg4: Arg4) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2, arg3: Arg3) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1) => Promisable>,\n\t\targ1: Promisable\n\t): FunPromise;\n\tstatic try(source: Promisable<() => Promisable>): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(...args: ArgT[]) => Promisable>,\n\t\t...args: ArgT[]\n\t): FunPromise {\n\t\treturn FunPromise.resolve(source).then((f) => {\n\t\t\tif (_isEmpty(args)) {\n\t\t\t\treturn f();\n\t\t\t} else {\n\t\t\t\treturn Promise.all(args).then((realArgs) => f(...realArgs));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Unwraps layers of `PromiseLike` wrappers as necessary.\n\t *\n\t * This behavior is actually part of the Promise/A+ spec, but the type system struggles with that fact,\n\t * so this method is a workaround.\n\t *\n\t * In a future version of this library, `FunPromise` will extend `Promise>` instead of\n\t * just `Promise`, which will render this method irrelevant. Unfortunately, Typescript's type system\n\t * doesn't seem capable of handling that reality quite yet, so this is what we get.\n\t */\n\tsimplify(): FunPromise> {\n\t\treturn (this as unknown) as FunPromise>;\n\t}\n\n\t/**\n\t * For each element of the resolved iterable, unwraps layers of `PromiseLike` wrappers as necessary.\n\t */\n\tsimplifyAll(): FunPromise>[]> {\n\t\treturn this.arrayify().map((it) => FunPromise.resolve(it).simplify());\n\t}\n\n\t/**\n\t * Coerces the resolve value (which must be an `Iterable`) into an array. The `Iterable` requirement\n\t * comes from the `Item` return value: `Item` is equivalent to `never` if `T` is not an `Iterable`.\n\t *\n\t * Note that this function does *NOT* resolve the items within the array unless you pass the first argument\n\t * as `true`. The items are not resolved sequentially unless you also pass a second argument as `true`.\n\t */\n\tarrayify(\n\t\tresolveValues: boolean = false,\n\t\tsequentialResolution: boolean = false\n\t): FunPromise[]> {\n\t\tconst aryPromise: FunPromise[]> = this.then((iter) => [\n\t\t\t...((iter as unknown) as Iterable>),\n\t\t]);\n\t\tif (resolveValues) {\n\t\t\tif (sequentialResolution) {\n\t\t\t\treturn aryPromise.then(async (ary) => {\n\t\t\t\t\tconst results = [];\n\t\t\t\t\twhile (!_isEmpty(ary)) {\n\t\t\t\t\t\tresults.push(await ary.shift());\n\t\t\t\t\t}\n\t\t\t\t\treturn results;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn aryPromise.then((ary) => Promise.all(ary));\n\t\t\t}\n\t\t} else {\n\t\t\treturn aryPromise;\n\t\t}\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the results of the mapping. If any of the mapping results are rejected,\n\t * the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed. For example, although the\n\t * output at index 0 will hold the mapping of the input element at index 0, it is not guaranteed that\n\t * the mapping of index 0 will be awaited before the mapping of index 1.\n\t */\n\tmap>(mapper: (it: Item) => Promisable): FunPromise {\n\t\tconst results = [];\n\t\treturn FunPromise.try(async () => {\n\t\t\tawait Promise.all(\n\t\t\t\t_map(await this.arrayify(), async (value, idx) => {\n\t\t\t\t\tresults[idx] = await mapper(await value);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn results;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).map(mapper)`.\n\t */\n\tstatic map(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).map(mapper);\n\t}\n\n\t/**\n\t * Required to implement `Promise`, but you almost certainly don't care about it.\n\t *\n\t * All the same, it returns the string tag of the underlying promise.\n\t */\n\tget [Symbol.toStringTag]() {\n\t\treturn this.wrapped[Symbol.toStringTag];\n\t}\n\n\t/**\n\t * Executes the provided code whether the promise rejects or resolves.\n\t */\n\tfinally(): FunPromise;\n\tfinally(onfinally: () => void): FunPromise;\n\tfinally(onfinally?) {\n\t\tif (_isFunction(onfinally)) {\n\t\t\treturn new FunPromise(this.wrapped.finally(onfinally));\n\t\t} else {\n\t\t\treturn this;\n\t\t}\n\t}\n\n\t/**\n\t * Given a [[`PromisableIterable`]] whose values are nullary functions returning [[Promisable|`Promisable`]],\n\t * this executes all the functions simultaneously and returns the first whose return value passes the provided test.\n\t * The default test returns true if the value is not `null` or `undefined`.\n\t *\n\t * If no function resolves successfully, the last seen rejection is thrown. If some functions resolve but some reject,\n\t * and none of the resolved values pass the test, then the last seen rejection is thrown.\n\t *\n\t * If all the functions resolve but to a value but no value passes the test, then this rejects with an error saying as much.\n\t */\n\tstatic coalesce(\n\t\tfns: PromisableIterable<() => Promisable>,\n\t\ttest: (item: T) => Promisable = _negate(_isNil)\n\t): FunPromise {\n\t\tlet resolved = false;\n\t\tlet lastSeenReason: unknown = new Error(\"No values left after coalescing\");\n\t\tlet resolveValue;\n\t\treturn FunPromise.map(fns, (fn) =>\n\t\t\tFunPromise.try(fn)\n\t\t\t\t.then((result) => {\n\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\treturn FunPromise.try(test, result).then((testResult) => {\n\t\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\t\tif (testResult) {\n\t\t\t\t\t\t\tresolved = true;\n\t\t\t\t\t\t\tresolveValue = result;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tlastSeenReason = e;\n\t\t\t\t})\n\t\t).then(() => {\n\t\t\tif (resolved) {\n\t\t\t\treturn resolveValue;\n\t\t\t} else {\n\t\t\t\tthrow lastSeenReason;\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tstatic delay(waitTimeMs: number): FunPromise;\n\tstatic delay(\n\t\twaitTimeMs: number,\n\t\treturnValue: Promisable\n\t): FunPromise;\n\tstatic delay(waitTimeMs, returnValue?) {\n\t\treturn FunPromise.resolve().delay(waitTimeMs, returnValue);\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tdelay(\n\t\twaitTimeMs: number,\n\t\treturnValue?: Promisable\n\t): FunPromise {\n\t\tif (waitTimeMs <= 0) {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _defer(resolve, returnValue))\n\t\t\t);\n\t\t} else {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _delay(resolve, waitTimeMs, returnValue))\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Given a filtering function, apply the filtering function to each element of the promise's resolved value,\n\t * and return an array with the values for which the filtering function returns `true`. If any of the filtering\n\t * results are rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result are stable with regard to the order of the elements in the promise's\n\t * resolved value. That is, if `X < Y` and `input[X]` and `input[Y]` are both in the input, and `input[X]` and\n\t * `input[Y]` both pass the filtering function, then the output index of `input[X]` will be less than the output\n\t * index of `input[Y]`. However, the resolution order is not guaranteed: that is, `input[Y]` may be resolved and\n\t * tested before `input[X]` even though `input[X]` has a lower output index than `input[Y]`.\n\t */\n\tfilter(test: (it: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tconst results = await FunPromise.map(ary, async (it) => test(await it));\n\t\t\t// @ts-ignore\n\t\t\treturn _filter(ary, (it, idx) => results[idx]);\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(items).filter(test)`.\n\t */\n\tstatic filter(\n\t\titems: PromisableIterable,\n\t\ttest: (it: Item>) => Promisable\n\t): FunPromise>[]> {\n\t\treturn FunPromise.resolve(items).filter(test);\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the concatenated results of the mapping. If any of the mapping results are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed.\n\t */\n\tflatMap>(\n\t\tmapper: (it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tconst promises: Array>> = _map(ary, async (value) =>\n\t\t\t\tmapper(await value)\n\t\t\t);\n\t\t\tconst resolved: T2[][] = await Promise.all(promises);\n\t\t\tconst flattened: T2[] = _flatten(resolved);\n\t\t\treturn flattened;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).flatMap(mapper)`.\n\t */\n\tstatic flatMap(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).flatMap(mapper);\n\t}\n\n\t/**\n\t * Access the resolved value without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttap(callback: (val: T) => Promisable): FunPromise {\n\t\treturn this.then(async (val) => {\n\t\t\tawait callback(val);\n\t\t\treturn val;\n\t\t});\n\t}\n\n\t/**\n\t * Access the rejection reason without changing it. Note that if the callback itself rejects (ie: throws),\n\t * both rejection reasons will be capture in a single [[`NestedError`]].\n\t */\n\ttapCatch(callback: (reason: unknown) => Promisable): FunPromise {\n\t\treturn this.catch(async (err) => {\n\t\t\ttry {\n\t\t\t\tawait callback(err);\n\t\t\t} catch (err2) {\n\t\t\t\tthrow new NestedError(\"Error thrown in 'tapCatch'\", err, err2);\n\t\t\t}\n\t\t\tthrow err;\n\t\t});\n\t}\n\n\t/**\n\t * Access each of the resolved values of a resolved iterable without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttapEach(callback: (val: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify(true).tap(async (ary) => {\n\t\t\tawait Promise.all(_map(ary, callback));\n\t\t});\n\t}\n\n\t/**\n\t * Given an initial value and an accumulator function, apply the accumlator function to each element of the promise's resolved value,\n\t * passing in the current value and the result. Returns an array with the result of the accumulation. If any of the promise's values are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The resolution order is not guaranteed. The accumulator function will be passed values as those values resolve.\n\t */\n\tfold>(\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tlet memoPromise = FunPromise.resolve(initialValue);\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, async (promisableValue) => {\n\t\t\t\t\tconst value = await promisableValue;\n\t\t\t\t\tmemoPromise = memoPromise.then((memo) => accumulator(memo, value));\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn await memoPromise;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).fold(initialValue, accumulator)`.\n\t */\n\tstatic fold(\n\t\tvalues: PromisableIterable,\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).fold(initialValue, accumulator);\n\t}\n\n\t/**\n\t * Handles rejections like 'catch', but wraps them in a [[`NestedError`]] with the given message.\n\t */\n\twrapError(msg: string): FunPromise {\n\t\treturn this.catch(NestedError.rethrow(msg));\n\t}\n\n\t/**\n\t * Resolves all the elements of the resolved value, which is assumed to be an `Iterable`. If any\n\t * of the values reject, all the reasons are collected and wrapped in a [[`NestedError`]].\n\t */\n\twrapErrors(msg: string): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tlet errors = [];\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, (val) => Promise.resolve(val).catch((e) => errors.push(e)))\n\t\t\t);\n\t\t\tif (_isEmpty(errors)) {\n\t\t\t\treturn ary;\n\t\t\t} else {\n\t\t\t\tthrow new NestedError(msg, ...errors);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Cancel the FunPromise. A cancelled FunPromise will silently disregard any resolution or rejection which occurs after the cancellation.\n\t */\n\tcancel() {\n\t\tthis._isCancelled = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Returns whether or not the promise has been cancelled. See `cancel()` for more details.\n\t */\n\tisCancelled() {\n\t\treturn this._isCancelled;\n\t}\n\n\t/**\n\t * Captures either fulfillment or rejection and resolves an object that describes the result.\n\t */\n\tsettle(): FunPromise> {\n\t\treturn new FunPromise(\n\t\t\tthis.wrapped.then(\n\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Assuming that the resolved value is an iterable, then for each element of the\n\t * array, captures either the fulfillment or rejection of that element.\n\t */\n\tsettleAll(): FunPromise>[]> {\n\t\treturn new FunPromise(\n\t\t\tthis.arrayify().wrapped.then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(iterable).settleAll()`.\n\t */\n\tstatic settleAll(\n\t\titerable: PromisableIterable\n\t): FunPromise[]> {\n\t\treturn new FunPromise(\n\t\t\tPromise.resolve(iterable).then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n}\n"]} \ No newline at end of file +{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @format\n */\n\n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n\nimport {\n\tPromisable,\n\tPromisableIterable,\n\tUnpromise,\n\tItem,\n\tSettlement,\n\tFulfillment,\n\tRejection,\n} from \"./types\";\nimport { NestedError } from \"ts-nested-error\";\n\nimport _defer from \"lodash/defer\";\nimport _delay from \"lodash/delay\";\nimport _filter from \"lodash/filter\";\nimport _flatten from \"lodash/flatten\";\nimport _identity from \"lodash/identity\";\nimport _isEmpty from \"lodash/isEmpty\";\nimport _isError from \"lodash/isError\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _map from \"lodash/map\";\nimport _negate from \"lodash/negate\";\nimport _noop from \"lodash/noop\";\nimport _toArray from \"lodash/toArray\";\n\n// import Debug from \"debug\";\n// const debug = Debug(\"fun-promises\");\n\n/**\n * The class that you should use instead of `Promise`. It implements the `Promise` API, so it should be a drop-in replacement.\n */\nexport default class FunPromise implements Promise {\n\t/**\n\t * Whether or not this FunPromise has been cancelled.\n\t */\n\tprivate _isCancelled: boolean = false;\n\n\t/**\n\t * The promise that was wrapped after attaching our custom logic.\n\t */\n\tprotected readonly wrapped: Promise;\n\n\t/**\n\t * Constructor, which takes the promise to wrap.\n\t */\n\tconstructor(wrapped: Promisable) {\n\t\tthis.wrapped = new Promise(async (resolve, reject) => {\n\t\t\tlet resolved = null;\n\t\t\ttry {\n\t\t\t\tresolved = await wrapped;\n\t\t\t} catch (e) {\n\t\t\t\tif (this._isCancelled) return;\n\t\t\t\treject(e);\n\t\t\t}\n\t\t\tif (this._isCancelled) return;\n\t\t\tresolve(resolved);\n\t\t});\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise wrapping\n\t * it.\n\t */\n\tstatic resolve(value?: Promisable): FunPromise {\n\t\tif (value instanceof FunPromise) {\n\t\t\treturn value as FunPromise;\n\t\t} else if (value instanceof Promise) {\n\t\t\treturn new FunPromise(value);\n\t\t} else {\n\t\t\treturn new FunPromise(new Promise((resolve) => resolve(value)));\n\t\t}\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and resolves to the new value,\n\t * disregarding any previous resolution value.\n\t */\n\tresolve(value?: Promisable): FunPromise {\n\t\treturn new FunPromise(this.wrapped.then(() => value));\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for consistency with the instance `return` method.\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\tstatic return(value?: Promisable): FunPromise {\n\t\treturn FunPromise.resolve(value);\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for compatibility with [the Bluebird API|http://bluebirdjs.com/docs/api/return.html].\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\treturn(value?: Promisable): FunPromise {\n\t\treturn this.resolve(value);\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary.\n\t */\n\tstatic reject(value?: unknown): FunPromise {\n\t\treturn new FunPromise(Promise.reject(value));\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary. This disregards any existing status.\n\t */\n\treject(value?: unknown): FunPromise {\n\t\treturn FunPromise.reject(value);\n\t}\n\n\t/**\n\t * Attaches callbacks for the resolution and/or rejection of the Promise.\n\t * @param onfulfilled The optional callback to execute when the Promise is resolved.\n\t * @param onrejected The optional callback to execute when the Promise is rejected. If provided, the result of this callback is the new resolution value, and this promise is resolved, not rejected.\n\t * @returns A Promise for the completion of which ever callback is executed.\n\t */\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected: (reason: unknown) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected?: (reason: unknown) => Promisable\n\t): FunPromise {\n\t\tif (_isNil(onrejected)) {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled));\n\t\t} else {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled, onrejected));\n\t\t}\n\t}\n\n\t/**\n\t * Attaches a callback for only the rejection of the Promise. If the callback throws, then throws a [[`NestedError`]] with\n\t * both the original rejection reason and the new thrown value.\n\t *\n\t * @param onrejected The callback to execute when the Promise is rejected.\n\t * @returns A Promise for the completion of the callback.\n\t */\n\tcatch(\n\t\tonrejected: (reason: unknown) => Promisable = _identity\n\t): FunPromise {\n\t\treturn new FunPromise(this.wrapped.catch(onrejected));\n\t}\n\n\t/**\n\t * Creates a Promise that is resolved with an array of results when all of the\n\t * provided Promises resolve, or rejected when any Promise is rejected.\n\t * @param values An array of Promises.\n\t * @returns A new Promise.\n\t */\n\tstatic all(values: PromisableIterable): FunPromise;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3, T4]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable]\n\t): FunPromise<[T1, T2]>;\n\tstatic all(values: [Promisable]): FunPromise<[T1]>;\n\tstatic all(...values: any[]): any {\n\t\treturn FunPromise.resolve(_flatten(values)).all();\n\t}\n\tall(): FunPromise[]> {\n\t\treturn this.arrayify(true);\n\t}\n\n\t/**\n\t * Given a function (or a promise of a function) that returns a value (or a promise of a value),\n\t * create a promise that executes the function and returns the value. If executing the function\n\t * throws an exception, then that exception becomes the rejection of the promise.\n\t *\n\t * Any arguments after the first will be passed into the function when it is invoked. If they are\n\t * a `PromiseLike`, then they will be resolved and the resolution value will be passed into the\n\t * function instead.\n\t *\n\t * This function is really useful in the following cases:\n\t * 1. to [avoid releasing Zalgo](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n\t * 2. when you want to create a `FunPromise` based on an `async` function\n\t * 3. when you want to create a `FunPromise` based on a normal function\n\t */\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7,\n\t\t\t\targ8: Arg8\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable,\n\t\targ8: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(arg1: Arg1, arg2: Arg2, arg3: Arg3, arg4: Arg4) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2, arg3: Arg3) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1) => Promisable>,\n\t\targ1: Promisable\n\t): FunPromise;\n\tstatic try(source: Promisable<() => Promisable>): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(...args: ArgT[]) => Promisable>,\n\t\t...args: ArgT[]\n\t): FunPromise {\n\t\treturn FunPromise.resolve(source).then((f) => {\n\t\t\tif (_isEmpty(args)) {\n\t\t\t\treturn f();\n\t\t\t} else {\n\t\t\t\treturn Promise.all(args).then((realArgs) => f(...realArgs));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Unwraps layers of `PromiseLike` wrappers as necessary.\n\t *\n\t * This behavior is actually part of the Promise/A+ spec, but the type system struggles with that fact,\n\t * so this method is a workaround.\n\t *\n\t * In a future version of this library, `FunPromise` will extend `Promise>` instead of\n\t * just `Promise`, which will render this method irrelevant. Unfortunately, Typescript's type system\n\t * doesn't seem capable of handling that reality quite yet, so this is what we get.\n\t */\n\tsimplify(): FunPromise> {\n\t\treturn (this as unknown) as FunPromise>;\n\t}\n\n\t/**\n\t * For each element of the resolved iterable, unwraps layers of `PromiseLike` wrappers as necessary.\n\t */\n\tsimplifyAll(): FunPromise>[]> {\n\t\treturn this.arrayify().map((it) => FunPromise.resolve(it).simplify());\n\t}\n\n\t/**\n\t * Coerces the resolve value (which must be an `Iterable`) into an array. The `Iterable` requirement\n\t * comes from the `Item` return value: `Item` is equivalent to `never` if `T` is not an `Iterable`.\n\t *\n\t * Note that this function does *NOT* resolve the items within the array unless you pass the first argument\n\t * as `true`. The items are not resolved sequentially unless you also pass a second argument as `true`.\n\t */\n\tarrayify(\n\t\tresolveValues: boolean = false,\n\t\tsequentialResolution: boolean = false\n\t): FunPromise[]> {\n\t\tconst aryPromise: FunPromise[]> = this.then((iter) => [\n\t\t\t...((iter as unknown) as Iterable>),\n\t\t]);\n\t\tif (resolveValues) {\n\t\t\tif (sequentialResolution) {\n\t\t\t\treturn aryPromise.then(async (ary) => {\n\t\t\t\t\tconst results = [];\n\t\t\t\t\twhile (!_isEmpty(ary)) {\n\t\t\t\t\t\tresults.push(await ary.shift());\n\t\t\t\t\t}\n\t\t\t\t\treturn results;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn aryPromise.then((ary) => Promise.all(ary));\n\t\t\t}\n\t\t} else {\n\t\t\treturn aryPromise;\n\t\t}\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the results of the mapping. If any of the mapping results are rejected,\n\t * the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed. For example, although the\n\t * output at index 0 will hold the mapping of the input element at index 0, it is not guaranteed that\n\t * the mapping of index 0 will be awaited before the mapping of index 1.\n\t */\n\tmap>(mapper: (it: Item) => Promisable): FunPromise {\n\t\tconst results = [];\n\t\treturn FunPromise.try(async () => {\n\t\t\tawait Promise.all(\n\t\t\t\t_map(await this.arrayify(), async (value, idx) => {\n\t\t\t\t\tresults[idx] = await mapper(await value);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn results;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).map(mapper)`.\n\t */\n\tstatic map(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).map(mapper);\n\t}\n\n\t/**\n\t * Required to implement `Promise`, but you almost certainly don't care about it.\n\t *\n\t * All the same, it returns the string tag of the underlying promise.\n\t */\n\tget [Symbol.toStringTag]() {\n\t\treturn this.wrapped[Symbol.toStringTag];\n\t}\n\n\t/**\n\t * Executes the provided code whether the promise rejects or resolves.\n\t */\n\tfinally(): FunPromise;\n\tfinally(onfinally: () => void): FunPromise;\n\tfinally(onfinally?) {\n\t\tif (_isFunction(onfinally)) {\n\t\t\treturn new FunPromise(this.wrapped.finally(onfinally));\n\t\t} else {\n\t\t\treturn this;\n\t\t}\n\t}\n\n\t/**\n\t * Given a [[`PromisableIterable`]] whose values are nullary functions returning [[Promisable|`Promisable`]],\n\t * this executes all the functions simultaneously and returns the first whose return value passes the provided test.\n\t * The default test returns true if the value is not `null` or `undefined`.\n\t *\n\t * If no function resolves successfully, the last seen rejection is thrown. If some functions resolve but some reject,\n\t * and none of the resolved values pass the test, then the last seen rejection is thrown.\n\t *\n\t * If all the functions resolve but to a value but no value passes the test, then this rejects with an error saying as much.\n\t */\n\tstatic coalesce(\n\t\tfns: PromisableIterable<() => Promisable>,\n\t\ttest: (item: T) => Promisable = _negate(_isNil)\n\t): FunPromise {\n\t\tlet resolved = false;\n\t\tlet lastSeenReason: unknown = new Error(\"No values left after coalescing\");\n\t\tlet resolveValue;\n\t\treturn FunPromise.map(fns, (fn) =>\n\t\t\tFunPromise.try(fn)\n\t\t\t\t.then((result) => {\n\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\treturn FunPromise.try(test, result).then((testResult) => {\n\t\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\t\tif (testResult) {\n\t\t\t\t\t\t\tresolved = true;\n\t\t\t\t\t\t\tresolveValue = result;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tlastSeenReason = e;\n\t\t\t\t})\n\t\t).then(() => {\n\t\t\tif (resolved) {\n\t\t\t\treturn resolveValue;\n\t\t\t} else {\n\t\t\t\tthrow lastSeenReason;\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tstatic delay(waitTimeMs: number): FunPromise;\n\tstatic delay(\n\t\twaitTimeMs: number,\n\t\treturnValue: Promisable\n\t): FunPromise;\n\tstatic delay(waitTimeMs, returnValue?) {\n\t\treturn FunPromise.resolve().delay(waitTimeMs, returnValue);\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tdelay(\n\t\twaitTimeMs: number,\n\t\treturnValue?: Promisable\n\t): FunPromise {\n\t\tif (waitTimeMs <= 0) {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _defer(resolve, returnValue))\n\t\t\t);\n\t\t} else {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _delay(resolve, waitTimeMs, returnValue))\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Given a filtering function, apply the filtering function to each element of the promise's resolved value,\n\t * and return an array with the values for which the filtering function returns `true`. If any of the filtering\n\t * results are rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result are stable with regard to the order of the elements in the promise's\n\t * resolved value. That is, if `X < Y` and `input[X]` and `input[Y]` are both in the input, and `input[X]` and\n\t * `input[Y]` both pass the filtering function, then the output index of `input[X]` will be less than the output\n\t * index of `input[Y]`. However, the resolution order is not guaranteed: that is, `input[Y]` may be resolved and\n\t * tested before `input[X]` even though `input[X]` has a lower output index than `input[Y]`.\n\t */\n\tfilter(test: (it: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tconst results = await FunPromise.map(ary, async (it) => test(await it));\n\t\t\t// @ts-ignore\n\t\t\treturn _filter(ary, (it, idx) => results[idx]);\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(items).filter(test)`.\n\t */\n\tstatic filter(\n\t\titems: PromisableIterable,\n\t\ttest: (it: Item>) => Promisable\n\t): FunPromise>[]> {\n\t\treturn FunPromise.resolve(items).filter(test);\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the concatenated results of the mapping. If any of the mapping results are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed.\n\t */\n\tflatMap>(\n\t\tmapper: (it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tconst promises: Array>> = _map(ary, async (value) =>\n\t\t\t\tmapper(await value)\n\t\t\t);\n\t\t\tconst resolved: T2[][] = await Promise.all(promises);\n\t\t\tconst flattened: T2[] = _flatten(resolved);\n\t\t\treturn flattened;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).flatMap(mapper)`.\n\t */\n\tstatic flatMap(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).flatMap(mapper);\n\t}\n\n\t/**\n\t * Access the resolved value without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttap(callback: (val: T) => Promisable): FunPromise {\n\t\treturn this.then(async (val) => {\n\t\t\tawait callback(val);\n\t\t\treturn val;\n\t\t});\n\t}\n\n\t/**\n\t * Access the rejection reason without changing it. Note that if the callback itself rejects (ie: throws),\n\t * both rejection reasons will be capture in a single [[`NestedError`]].\n\t */\n\ttapCatch(callback: (reason: unknown) => Promisable): FunPromise {\n\t\treturn this.catch(async (err) => {\n\t\t\ttry {\n\t\t\t\tawait callback(err);\n\t\t\t} catch (err2) {\n\t\t\t\tthrow new NestedError(\"Error thrown in 'tapCatch'\", err, err2);\n\t\t\t}\n\t\t\tthrow err;\n\t\t});\n\t}\n\n\t/**\n\t * Access each of the resolved values of a resolved iterable without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttapEach(callback: (val: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify(true).tap(async (ary) => {\n\t\t\tawait Promise.all(_map(ary, callback));\n\t\t});\n\t}\n\n\t/**\n\t * Given an initial value and an accumulator function, apply the accumlator function to each element of the promise's resolved value,\n\t * passing in the current value and the result. Returns an array with the result of the accumulation. If any of the promise's values are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The resolution order is not guaranteed. The accumulator function will be passed values as those values resolve.\n\t */\n\tfold>(\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tlet memoPromise = FunPromise.resolve(initialValue);\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, async (promisableValue) => {\n\t\t\t\t\tconst value = await promisableValue;\n\t\t\t\t\tmemoPromise = memoPromise.then((memo) => accumulator(memo, value));\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn await memoPromise;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).fold(initialValue, accumulator)`.\n\t */\n\tstatic fold(\n\t\tvalues: PromisableIterable,\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).fold(initialValue, accumulator);\n\t}\n\n\t/**\n\t * Handles rejections like 'catch', but wraps them in a [[`NestedError`]] with the given message.\n\t */\n\twrapError(msg: string): FunPromise {\n\t\treturn this.catch(NestedError.rethrow(msg));\n\t}\n\n\t/**\n\t * Resolves all the elements of the resolved value, which is assumed to be an `Iterable`. If any\n\t * of the values reject, all the reasons are collected and wrapped in a [[`NestedError`]].\n\t */\n\twrapErrors(msg: string): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tlet errors = [];\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, (val) => Promise.resolve(val).catch((e) => errors.push(e)))\n\t\t\t);\n\t\t\tif (_isEmpty(errors)) {\n\t\t\t\treturn ary;\n\t\t\t} else {\n\t\t\t\tthrow new NestedError(msg, ...errors);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Cancel the FunPromise. A cancelled FunPromise will silently disregard any resolution or rejection which occurs after the cancellation.\n\t */\n\tcancel() {\n\t\tthis._isCancelled = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Returns whether or not the promise has been cancelled. See `cancel()` for more details.\n\t */\n\tisCancelled() {\n\t\treturn this._isCancelled;\n\t}\n\n\t/**\n\t * Captures either fulfillment or rejection and resolves an object that describes the result.\n\t */\n\tsettle(): FunPromise> {\n\t\treturn new FunPromise(\n\t\t\tthis.wrapped.then(\n\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Assuming that the resolved value is an iterable, then for each element of the\n\t * array, captures either the fulfillment or rejection of that element.\n\t */\n\tsettleAll(): FunPromise>[]> {\n\t\treturn new FunPromise(\n\t\t\tthis.arrayify().wrapped.then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(iterable).settleAll()`.\n\t */\n\tstatic settleAll(\n\t\titerable: PromisableIterable\n\t): FunPromise[]> {\n\t\treturn new FunPromise(\n\t\t\tPromise.resolve(iterable).then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n}\n"]} \ No newline at end of file diff --git a/dist/es6/esm/src/fun-promise.d.ts b/dist/es6/esm/src/fun-promise.d.ts index 23424f3..7e7a713 100644 --- a/dist/es6/esm/src/fun-promise.d.ts +++ b/dist/es6/esm/src/fun-promise.d.ts @@ -26,7 +26,7 @@ export default class FunPromise implements Promise { /** * Constructor, which takes the promise to wrap. */ - constructor(wrapped: Promise); + constructor(wrapped: Promisable); /** * Takes a value (or a promise of a value) and returns a promise wrapping * it. diff --git a/dist/es6/esm/src/fun-promise.d.ts.map b/dist/es6/esm/src/fun-promise.d.ts.map index d4b353b..8413e46 100644 --- a/dist/es6/esm/src/fun-promise.d.ts.map +++ b/dist/es6/esm/src/fun-promise.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"fun-promise.d.ts","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"fun-promise.d.ts","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/esm/src/fun-promise.js.map b/dist/es6/esm/src/fun-promise.js.map index ce04870..4773683 100644 --- a/dist/es6/esm/src/fun-promise.js.map +++ b/dist/es6/esm/src/fun-promise.js.map @@ -1 +1 @@ -{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @format\n */\n\n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n\nimport {\n\tPromisable,\n\tPromisableIterable,\n\tUnpromise,\n\tItem,\n\tSettlement,\n\tFulfillment,\n\tRejection,\n} from \"./types\";\nimport { NestedError } from \"ts-nested-error\";\n\nimport _defer from \"lodash/defer\";\nimport _delay from \"lodash/delay\";\nimport _filter from \"lodash/filter\";\nimport _flatten from \"lodash/flatten\";\nimport _identity from \"lodash/identity\";\nimport _isEmpty from \"lodash/isEmpty\";\nimport _isError from \"lodash/isError\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _map from \"lodash/map\";\nimport _negate from \"lodash/negate\";\nimport _noop from \"lodash/noop\";\nimport _toArray from \"lodash/toArray\";\n\n// import Debug from \"debug\";\n// const debug = Debug(\"fun-promises\");\n\n/**\n * The class that you should use instead of `Promise`. It implements the `Promise` API, so it should be a drop-in replacement.\n */\nexport default class FunPromise implements Promise {\n\t/**\n\t * Whether or not this FunPromise has been cancelled.\n\t */\n\tprivate _isCancelled: boolean = false;\n\n\t/**\n\t * The promise that was wrapped after attaching our custom logic.\n\t */\n\tprotected readonly wrapped: Promise;\n\n\t/**\n\t * Constructor, which takes the promise to wrap.\n\t */\n\tconstructor(wrapped: Promise) {\n\t\tthis.wrapped = new Promise(async (resolve, reject) => {\n\t\t\tlet resolved = null;\n\t\t\ttry {\n\t\t\t\tresolved = await wrapped;\n\t\t\t} catch (e) {\n\t\t\t\tif (this._isCancelled) return;\n\t\t\t\treject(e);\n\t\t\t}\n\t\t\tif (this._isCancelled) return;\n\t\t\tresolve(resolved);\n\t\t});\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise wrapping\n\t * it.\n\t */\n\tstatic resolve(value?: Promisable): FunPromise {\n\t\tif (value instanceof FunPromise) {\n\t\t\treturn value as FunPromise;\n\t\t} else if (value instanceof Promise) {\n\t\t\treturn new FunPromise(value);\n\t\t} else {\n\t\t\treturn new FunPromise(new Promise((resolve) => resolve(value)));\n\t\t}\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and resolves to the new value,\n\t * disregarding any previous resolution value.\n\t */\n\tresolve(value?: Promisable): FunPromise {\n\t\treturn new FunPromise(this.wrapped.then(() => value));\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for consistency with the instance `return` method.\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\tstatic return(value?: Promisable): FunPromise {\n\t\treturn FunPromise.resolve(value);\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for compatibility with [the Bluebird API|http://bluebirdjs.com/docs/api/return.html].\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\treturn(value?: Promisable): FunPromise {\n\t\treturn this.resolve(value);\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary.\n\t */\n\tstatic reject(value?: unknown): FunPromise {\n\t\treturn new FunPromise(Promise.reject(value));\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary. This disregards any existing status.\n\t */\n\treject(value?: unknown): FunPromise {\n\t\treturn FunPromise.reject(value);\n\t}\n\n\t/**\n\t * Attaches callbacks for the resolution and/or rejection of the Promise.\n\t * @param onfulfilled The optional callback to execute when the Promise is resolved.\n\t * @param onrejected The optional callback to execute when the Promise is rejected. If provided, the result of this callback is the new resolution value, and this promise is resolved, not rejected.\n\t * @returns A Promise for the completion of which ever callback is executed.\n\t */\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected: (reason: unknown) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected?: (reason: unknown) => Promisable\n\t): FunPromise {\n\t\tif (_isNil(onrejected)) {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled));\n\t\t} else {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled, onrejected));\n\t\t}\n\t}\n\n\t/**\n\t * Attaches a callback for only the rejection of the Promise. If the callback throws, then throws a [[`NestedError`]] with\n\t * both the original rejection reason and the new thrown value.\n\t *\n\t * @param onrejected The callback to execute when the Promise is rejected.\n\t * @returns A Promise for the completion of the callback.\n\t */\n\tcatch(\n\t\tonrejected: (reason: unknown) => Promisable = _identity\n\t): FunPromise {\n\t\treturn new FunPromise(this.wrapped.catch(onrejected));\n\t}\n\n\t/**\n\t * Creates a Promise that is resolved with an array of results when all of the\n\t * provided Promises resolve, or rejected when any Promise is rejected.\n\t * @param values An array of Promises.\n\t * @returns A new Promise.\n\t */\n\tstatic all(values: PromisableIterable): FunPromise;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3, T4]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable]\n\t): FunPromise<[T1, T2]>;\n\tstatic all(values: [Promisable]): FunPromise<[T1]>;\n\tstatic all(...values: any[]): any {\n\t\treturn FunPromise.resolve(_flatten(values)).all();\n\t}\n\tall(): FunPromise[]> {\n\t\treturn this.arrayify(true);\n\t}\n\n\t/**\n\t * Given a function (or a promise of a function) that returns a value (or a promise of a value),\n\t * create a promise that executes the function and returns the value. If executing the function\n\t * throws an exception, then that exception becomes the rejection of the promise.\n\t *\n\t * Any arguments after the first will be passed into the function when it is invoked. If they are\n\t * a `PromiseLike`, then they will be resolved and the resolution value will be passed into the\n\t * function instead.\n\t *\n\t * This function is really useful in the following cases:\n\t * 1. to [avoid releasing Zalgo](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n\t * 2. when you want to create a `FunPromise` based on an `async` function\n\t * 3. when you want to create a `FunPromise` based on a normal function\n\t */\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7,\n\t\t\t\targ8: Arg8\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable,\n\t\targ8: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(arg1: Arg1, arg2: Arg2, arg3: Arg3, arg4: Arg4) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2, arg3: Arg3) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1) => Promisable>,\n\t\targ1: Promisable\n\t): FunPromise;\n\tstatic try(source: Promisable<() => Promisable>): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(...args: ArgT[]) => Promisable>,\n\t\t...args: ArgT[]\n\t): FunPromise {\n\t\treturn FunPromise.resolve(source).then((f) => {\n\t\t\tif (_isEmpty(args)) {\n\t\t\t\treturn f();\n\t\t\t} else {\n\t\t\t\treturn Promise.all(args).then((realArgs) => f(...realArgs));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Unwraps layers of `PromiseLike` wrappers as necessary.\n\t *\n\t * This behavior is actually part of the Promise/A+ spec, but the type system struggles with that fact,\n\t * so this method is a workaround.\n\t *\n\t * In a future version of this library, `FunPromise` will extend `Promise>` instead of\n\t * just `Promise`, which will render this method irrelevant. Unfortunately, Typescript's type system\n\t * doesn't seem capable of handling that reality quite yet, so this is what we get.\n\t */\n\tsimplify(): FunPromise> {\n\t\treturn (this as unknown) as FunPromise>;\n\t}\n\n\t/**\n\t * For each element of the resolved iterable, unwraps layers of `PromiseLike` wrappers as necessary.\n\t */\n\tsimplifyAll(): FunPromise>[]> {\n\t\treturn this.arrayify().map((it) => FunPromise.resolve(it).simplify());\n\t}\n\n\t/**\n\t * Coerces the resolve value (which must be an `Iterable`) into an array. The `Iterable` requirement\n\t * comes from the `Item` return value: `Item` is equivalent to `never` if `T` is not an `Iterable`.\n\t *\n\t * Note that this function does *NOT* resolve the items within the array unless you pass the first argument\n\t * as `true`. The items are not resolved sequentially unless you also pass a second argument as `true`.\n\t */\n\tarrayify(\n\t\tresolveValues: boolean = false,\n\t\tsequentialResolution: boolean = false\n\t): FunPromise[]> {\n\t\tconst aryPromise: FunPromise[]> = this.then((iter) => [\n\t\t\t...((iter as unknown) as Iterable>),\n\t\t]);\n\t\tif (resolveValues) {\n\t\t\tif (sequentialResolution) {\n\t\t\t\treturn aryPromise.then(async (ary) => {\n\t\t\t\t\tconst results = [];\n\t\t\t\t\twhile (!_isEmpty(ary)) {\n\t\t\t\t\t\tresults.push(await ary.shift());\n\t\t\t\t\t}\n\t\t\t\t\treturn results;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn aryPromise.then((ary) => Promise.all(ary));\n\t\t\t}\n\t\t} else {\n\t\t\treturn aryPromise;\n\t\t}\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the results of the mapping. If any of the mapping results are rejected,\n\t * the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed. For example, although the\n\t * output at index 0 will hold the mapping of the input element at index 0, it is not guaranteed that\n\t * the mapping of index 0 will be awaited before the mapping of index 1.\n\t */\n\tmap>(mapper: (it: Item) => Promisable): FunPromise {\n\t\tconst results = [];\n\t\treturn FunPromise.try(async () => {\n\t\t\tawait Promise.all(\n\t\t\t\t_map(await this.arrayify(), async (value, idx) => {\n\t\t\t\t\tresults[idx] = await mapper(await value);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn results;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).map(mapper)`.\n\t */\n\tstatic map(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).map(mapper);\n\t}\n\n\t/**\n\t * Required to implement `Promise`, but you almost certainly don't care about it.\n\t *\n\t * All the same, it returns the string tag of the underlying promise.\n\t */\n\tget [Symbol.toStringTag]() {\n\t\treturn this.wrapped[Symbol.toStringTag];\n\t}\n\n\t/**\n\t * Executes the provided code whether the promise rejects or resolves.\n\t */\n\tfinally(): FunPromise;\n\tfinally(onfinally: () => void): FunPromise;\n\tfinally(onfinally?) {\n\t\tif (_isFunction(onfinally)) {\n\t\t\treturn new FunPromise(this.wrapped.finally(onfinally));\n\t\t} else {\n\t\t\treturn this;\n\t\t}\n\t}\n\n\t/**\n\t * Given a [[`PromisableIterable`]] whose values are nullary functions returning [[Promisable|`Promisable`]],\n\t * this executes all the functions simultaneously and returns the first whose return value passes the provided test.\n\t * The default test returns true if the value is not `null` or `undefined`.\n\t *\n\t * If no function resolves successfully, the last seen rejection is thrown. If some functions resolve but some reject,\n\t * and none of the resolved values pass the test, then the last seen rejection is thrown.\n\t *\n\t * If all the functions resolve but to a value but no value passes the test, then this rejects with an error saying as much.\n\t */\n\tstatic coalesce(\n\t\tfns: PromisableIterable<() => Promisable>,\n\t\ttest: (item: T) => Promisable = _negate(_isNil)\n\t): FunPromise {\n\t\tlet resolved = false;\n\t\tlet lastSeenReason: unknown = new Error(\"No values left after coalescing\");\n\t\tlet resolveValue;\n\t\treturn FunPromise.map(fns, (fn) =>\n\t\t\tFunPromise.try(fn)\n\t\t\t\t.then((result) => {\n\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\treturn FunPromise.try(test, result).then((testResult) => {\n\t\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\t\tif (testResult) {\n\t\t\t\t\t\t\tresolved = true;\n\t\t\t\t\t\t\tresolveValue = result;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tlastSeenReason = e;\n\t\t\t\t})\n\t\t).then(() => {\n\t\t\tif (resolved) {\n\t\t\t\treturn resolveValue;\n\t\t\t} else {\n\t\t\t\tthrow lastSeenReason;\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tstatic delay(waitTimeMs: number): FunPromise;\n\tstatic delay(\n\t\twaitTimeMs: number,\n\t\treturnValue: Promisable\n\t): FunPromise;\n\tstatic delay(waitTimeMs, returnValue?) {\n\t\treturn FunPromise.resolve().delay(waitTimeMs, returnValue);\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tdelay(\n\t\twaitTimeMs: number,\n\t\treturnValue?: Promisable\n\t): FunPromise {\n\t\tif (waitTimeMs <= 0) {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _defer(resolve, returnValue))\n\t\t\t);\n\t\t} else {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _delay(resolve, waitTimeMs, returnValue))\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Given a filtering function, apply the filtering function to each element of the promise's resolved value,\n\t * and return an array with the values for which the filtering function returns `true`. If any of the filtering\n\t * results are rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result are stable with regard to the order of the elements in the promise's\n\t * resolved value. That is, if `X < Y` and `input[X]` and `input[Y]` are both in the input, and `input[X]` and\n\t * `input[Y]` both pass the filtering function, then the output index of `input[X]` will be less than the output\n\t * index of `input[Y]`. However, the resolution order is not guaranteed: that is, `input[Y]` may be resolved and\n\t * tested before `input[X]` even though `input[X]` has a lower output index than `input[Y]`.\n\t */\n\tfilter(test: (it: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tconst results = await FunPromise.map(ary, async (it) => test(await it));\n\t\t\t// @ts-ignore\n\t\t\treturn _filter(ary, (it, idx) => results[idx]);\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(items).filter(test)`.\n\t */\n\tstatic filter(\n\t\titems: PromisableIterable,\n\t\ttest: (it: Item>) => Promisable\n\t): FunPromise>[]> {\n\t\treturn FunPromise.resolve(items).filter(test);\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the concatenated results of the mapping. If any of the mapping results are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed.\n\t */\n\tflatMap>(\n\t\tmapper: (it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tconst promises: Array>> = _map(ary, async (value) =>\n\t\t\t\tmapper(await value)\n\t\t\t);\n\t\t\tconst resolved: T2[][] = await Promise.all(promises);\n\t\t\tconst flattened: T2[] = _flatten(resolved);\n\t\t\treturn flattened;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).flatMap(mapper)`.\n\t */\n\tstatic flatMap(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).flatMap(mapper);\n\t}\n\n\t/**\n\t * Access the resolved value without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttap(callback: (val: T) => Promisable): FunPromise {\n\t\treturn this.then(async (val) => {\n\t\t\tawait callback(val);\n\t\t\treturn val;\n\t\t});\n\t}\n\n\t/**\n\t * Access the rejection reason without changing it. Note that if the callback itself rejects (ie: throws),\n\t * both rejection reasons will be capture in a single [[`NestedError`]].\n\t */\n\ttapCatch(callback: (reason: unknown) => Promisable): FunPromise {\n\t\treturn this.catch(async (err) => {\n\t\t\ttry {\n\t\t\t\tawait callback(err);\n\t\t\t} catch (err2) {\n\t\t\t\tthrow new NestedError(\"Error thrown in 'tapCatch'\", err, err2);\n\t\t\t}\n\t\t\tthrow err;\n\t\t});\n\t}\n\n\t/**\n\t * Access each of the resolved values of a resolved iterable without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttapEach(callback: (val: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify(true).tap(async (ary) => {\n\t\t\tawait Promise.all(_map(ary, callback));\n\t\t});\n\t}\n\n\t/**\n\t * Given an initial value and an accumulator function, apply the accumlator function to each element of the promise's resolved value,\n\t * passing in the current value and the result. Returns an array with the result of the accumulation. If any of the promise's values are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The resolution order is not guaranteed. The accumulator function will be passed values as those values resolve.\n\t */\n\tfold>(\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tlet memoPromise = FunPromise.resolve(initialValue);\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, async (promisableValue) => {\n\t\t\t\t\tconst value = await promisableValue;\n\t\t\t\t\tmemoPromise = memoPromise.then((memo) => accumulator(memo, value));\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn await memoPromise;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).fold(initialValue, accumulator)`.\n\t */\n\tstatic fold(\n\t\tvalues: PromisableIterable,\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).fold(initialValue, accumulator);\n\t}\n\n\t/**\n\t * Handles rejections like 'catch', but wraps them in a [[`NestedError`]] with the given message.\n\t */\n\twrapError(msg: string): FunPromise {\n\t\treturn this.catch(NestedError.rethrow(msg));\n\t}\n\n\t/**\n\t * Resolves all the elements of the resolved value, which is assumed to be an `Iterable`. If any\n\t * of the values reject, all the reasons are collected and wrapped in a [[`NestedError`]].\n\t */\n\twrapErrors(msg: string): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tlet errors = [];\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, (val) => Promise.resolve(val).catch((e) => errors.push(e)))\n\t\t\t);\n\t\t\tif (_isEmpty(errors)) {\n\t\t\t\treturn ary;\n\t\t\t} else {\n\t\t\t\tthrow new NestedError(msg, ...errors);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Cancel the FunPromise. A cancelled FunPromise will silently disregard any resolution or rejection which occurs after the cancellation.\n\t */\n\tcancel() {\n\t\tthis._isCancelled = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Returns whether or not the promise has been cancelled. See `cancel()` for more details.\n\t */\n\tisCancelled() {\n\t\treturn this._isCancelled;\n\t}\n\n\t/**\n\t * Captures either fulfillment or rejection and resolves an object that describes the result.\n\t */\n\tsettle(): FunPromise> {\n\t\treturn new FunPromise(\n\t\t\tthis.wrapped.then(\n\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Assuming that the resolved value is an iterable, then for each element of the\n\t * array, captures either the fulfillment or rejection of that element.\n\t */\n\tsettleAll(): FunPromise>[]> {\n\t\treturn new FunPromise(\n\t\t\tthis.arrayify().wrapped.then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(iterable).settleAll()`.\n\t */\n\tstatic settleAll(\n\t\titerable: PromisableIterable\n\t): FunPromise[]> {\n\t\treturn new FunPromise(\n\t\t\tPromise.resolve(iterable).then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n}\n"]} \ No newline at end of file +{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @format\n */\n\n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n\nimport {\n\tPromisable,\n\tPromisableIterable,\n\tUnpromise,\n\tItem,\n\tSettlement,\n\tFulfillment,\n\tRejection,\n} from \"./types\";\nimport { NestedError } from \"ts-nested-error\";\n\nimport _defer from \"lodash/defer\";\nimport _delay from \"lodash/delay\";\nimport _filter from \"lodash/filter\";\nimport _flatten from \"lodash/flatten\";\nimport _identity from \"lodash/identity\";\nimport _isEmpty from \"lodash/isEmpty\";\nimport _isError from \"lodash/isError\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _map from \"lodash/map\";\nimport _negate from \"lodash/negate\";\nimport _noop from \"lodash/noop\";\nimport _toArray from \"lodash/toArray\";\n\n// import Debug from \"debug\";\n// const debug = Debug(\"fun-promises\");\n\n/**\n * The class that you should use instead of `Promise`. It implements the `Promise` API, so it should be a drop-in replacement.\n */\nexport default class FunPromise implements Promise {\n\t/**\n\t * Whether or not this FunPromise has been cancelled.\n\t */\n\tprivate _isCancelled: boolean = false;\n\n\t/**\n\t * The promise that was wrapped after attaching our custom logic.\n\t */\n\tprotected readonly wrapped: Promise;\n\n\t/**\n\t * Constructor, which takes the promise to wrap.\n\t */\n\tconstructor(wrapped: Promisable) {\n\t\tthis.wrapped = new Promise(async (resolve, reject) => {\n\t\t\tlet resolved = null;\n\t\t\ttry {\n\t\t\t\tresolved = await wrapped;\n\t\t\t} catch (e) {\n\t\t\t\tif (this._isCancelled) return;\n\t\t\t\treject(e);\n\t\t\t}\n\t\t\tif (this._isCancelled) return;\n\t\t\tresolve(resolved);\n\t\t});\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise wrapping\n\t * it.\n\t */\n\tstatic resolve(value?: Promisable): FunPromise {\n\t\tif (value instanceof FunPromise) {\n\t\t\treturn value as FunPromise;\n\t\t} else if (value instanceof Promise) {\n\t\t\treturn new FunPromise(value);\n\t\t} else {\n\t\t\treturn new FunPromise(new Promise((resolve) => resolve(value)));\n\t\t}\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and resolves to the new value,\n\t * disregarding any previous resolution value.\n\t */\n\tresolve(value?: Promisable): FunPromise {\n\t\treturn new FunPromise(this.wrapped.then(() => value));\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for consistency with the instance `return` method.\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\tstatic return(value?: Promisable): FunPromise {\n\t\treturn FunPromise.resolve(value);\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for compatibility with [the Bluebird API|http://bluebirdjs.com/docs/api/return.html].\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\treturn(value?: Promisable): FunPromise {\n\t\treturn this.resolve(value);\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary.\n\t */\n\tstatic reject(value?: unknown): FunPromise {\n\t\treturn new FunPromise(Promise.reject(value));\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary. This disregards any existing status.\n\t */\n\treject(value?: unknown): FunPromise {\n\t\treturn FunPromise.reject(value);\n\t}\n\n\t/**\n\t * Attaches callbacks for the resolution and/or rejection of the Promise.\n\t * @param onfulfilled The optional callback to execute when the Promise is resolved.\n\t * @param onrejected The optional callback to execute when the Promise is rejected. If provided, the result of this callback is the new resolution value, and this promise is resolved, not rejected.\n\t * @returns A Promise for the completion of which ever callback is executed.\n\t */\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected: (reason: unknown) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected?: (reason: unknown) => Promisable\n\t): FunPromise {\n\t\tif (_isNil(onrejected)) {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled));\n\t\t} else {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled, onrejected));\n\t\t}\n\t}\n\n\t/**\n\t * Attaches a callback for only the rejection of the Promise. If the callback throws, then throws a [[`NestedError`]] with\n\t * both the original rejection reason and the new thrown value.\n\t *\n\t * @param onrejected The callback to execute when the Promise is rejected.\n\t * @returns A Promise for the completion of the callback.\n\t */\n\tcatch(\n\t\tonrejected: (reason: unknown) => Promisable = _identity\n\t): FunPromise {\n\t\treturn new FunPromise(this.wrapped.catch(onrejected));\n\t}\n\n\t/**\n\t * Creates a Promise that is resolved with an array of results when all of the\n\t * provided Promises resolve, or rejected when any Promise is rejected.\n\t * @param values An array of Promises.\n\t * @returns A new Promise.\n\t */\n\tstatic all(values: PromisableIterable): FunPromise;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3, T4]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable]\n\t): FunPromise<[T1, T2]>;\n\tstatic all(values: [Promisable]): FunPromise<[T1]>;\n\tstatic all(...values: any[]): any {\n\t\treturn FunPromise.resolve(_flatten(values)).all();\n\t}\n\tall(): FunPromise[]> {\n\t\treturn this.arrayify(true);\n\t}\n\n\t/**\n\t * Given a function (or a promise of a function) that returns a value (or a promise of a value),\n\t * create a promise that executes the function and returns the value. If executing the function\n\t * throws an exception, then that exception becomes the rejection of the promise.\n\t *\n\t * Any arguments after the first will be passed into the function when it is invoked. If they are\n\t * a `PromiseLike`, then they will be resolved and the resolution value will be passed into the\n\t * function instead.\n\t *\n\t * This function is really useful in the following cases:\n\t * 1. to [avoid releasing Zalgo](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n\t * 2. when you want to create a `FunPromise` based on an `async` function\n\t * 3. when you want to create a `FunPromise` based on a normal function\n\t */\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7,\n\t\t\t\targ8: Arg8\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable,\n\t\targ8: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(arg1: Arg1, arg2: Arg2, arg3: Arg3, arg4: Arg4) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2, arg3: Arg3) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1) => Promisable>,\n\t\targ1: Promisable\n\t): FunPromise;\n\tstatic try(source: Promisable<() => Promisable>): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(...args: ArgT[]) => Promisable>,\n\t\t...args: ArgT[]\n\t): FunPromise {\n\t\treturn FunPromise.resolve(source).then((f) => {\n\t\t\tif (_isEmpty(args)) {\n\t\t\t\treturn f();\n\t\t\t} else {\n\t\t\t\treturn Promise.all(args).then((realArgs) => f(...realArgs));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Unwraps layers of `PromiseLike` wrappers as necessary.\n\t *\n\t * This behavior is actually part of the Promise/A+ spec, but the type system struggles with that fact,\n\t * so this method is a workaround.\n\t *\n\t * In a future version of this library, `FunPromise` will extend `Promise>` instead of\n\t * just `Promise`, which will render this method irrelevant. Unfortunately, Typescript's type system\n\t * doesn't seem capable of handling that reality quite yet, so this is what we get.\n\t */\n\tsimplify(): FunPromise> {\n\t\treturn (this as unknown) as FunPromise>;\n\t}\n\n\t/**\n\t * For each element of the resolved iterable, unwraps layers of `PromiseLike` wrappers as necessary.\n\t */\n\tsimplifyAll(): FunPromise>[]> {\n\t\treturn this.arrayify().map((it) => FunPromise.resolve(it).simplify());\n\t}\n\n\t/**\n\t * Coerces the resolve value (which must be an `Iterable`) into an array. The `Iterable` requirement\n\t * comes from the `Item` return value: `Item` is equivalent to `never` if `T` is not an `Iterable`.\n\t *\n\t * Note that this function does *NOT* resolve the items within the array unless you pass the first argument\n\t * as `true`. The items are not resolved sequentially unless you also pass a second argument as `true`.\n\t */\n\tarrayify(\n\t\tresolveValues: boolean = false,\n\t\tsequentialResolution: boolean = false\n\t): FunPromise[]> {\n\t\tconst aryPromise: FunPromise[]> = this.then((iter) => [\n\t\t\t...((iter as unknown) as Iterable>),\n\t\t]);\n\t\tif (resolveValues) {\n\t\t\tif (sequentialResolution) {\n\t\t\t\treturn aryPromise.then(async (ary) => {\n\t\t\t\t\tconst results = [];\n\t\t\t\t\twhile (!_isEmpty(ary)) {\n\t\t\t\t\t\tresults.push(await ary.shift());\n\t\t\t\t\t}\n\t\t\t\t\treturn results;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn aryPromise.then((ary) => Promise.all(ary));\n\t\t\t}\n\t\t} else {\n\t\t\treturn aryPromise;\n\t\t}\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the results of the mapping. If any of the mapping results are rejected,\n\t * the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed. For example, although the\n\t * output at index 0 will hold the mapping of the input element at index 0, it is not guaranteed that\n\t * the mapping of index 0 will be awaited before the mapping of index 1.\n\t */\n\tmap>(mapper: (it: Item) => Promisable): FunPromise {\n\t\tconst results = [];\n\t\treturn FunPromise.try(async () => {\n\t\t\tawait Promise.all(\n\t\t\t\t_map(await this.arrayify(), async (value, idx) => {\n\t\t\t\t\tresults[idx] = await mapper(await value);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn results;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).map(mapper)`.\n\t */\n\tstatic map(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).map(mapper);\n\t}\n\n\t/**\n\t * Required to implement `Promise`, but you almost certainly don't care about it.\n\t *\n\t * All the same, it returns the string tag of the underlying promise.\n\t */\n\tget [Symbol.toStringTag]() {\n\t\treturn this.wrapped[Symbol.toStringTag];\n\t}\n\n\t/**\n\t * Executes the provided code whether the promise rejects or resolves.\n\t */\n\tfinally(): FunPromise;\n\tfinally(onfinally: () => void): FunPromise;\n\tfinally(onfinally?) {\n\t\tif (_isFunction(onfinally)) {\n\t\t\treturn new FunPromise(this.wrapped.finally(onfinally));\n\t\t} else {\n\t\t\treturn this;\n\t\t}\n\t}\n\n\t/**\n\t * Given a [[`PromisableIterable`]] whose values are nullary functions returning [[Promisable|`Promisable`]],\n\t * this executes all the functions simultaneously and returns the first whose return value passes the provided test.\n\t * The default test returns true if the value is not `null` or `undefined`.\n\t *\n\t * If no function resolves successfully, the last seen rejection is thrown. If some functions resolve but some reject,\n\t * and none of the resolved values pass the test, then the last seen rejection is thrown.\n\t *\n\t * If all the functions resolve but to a value but no value passes the test, then this rejects with an error saying as much.\n\t */\n\tstatic coalesce(\n\t\tfns: PromisableIterable<() => Promisable>,\n\t\ttest: (item: T) => Promisable = _negate(_isNil)\n\t): FunPromise {\n\t\tlet resolved = false;\n\t\tlet lastSeenReason: unknown = new Error(\"No values left after coalescing\");\n\t\tlet resolveValue;\n\t\treturn FunPromise.map(fns, (fn) =>\n\t\t\tFunPromise.try(fn)\n\t\t\t\t.then((result) => {\n\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\treturn FunPromise.try(test, result).then((testResult) => {\n\t\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\t\tif (testResult) {\n\t\t\t\t\t\t\tresolved = true;\n\t\t\t\t\t\t\tresolveValue = result;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tlastSeenReason = e;\n\t\t\t\t})\n\t\t).then(() => {\n\t\t\tif (resolved) {\n\t\t\t\treturn resolveValue;\n\t\t\t} else {\n\t\t\t\tthrow lastSeenReason;\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tstatic delay(waitTimeMs: number): FunPromise;\n\tstatic delay(\n\t\twaitTimeMs: number,\n\t\treturnValue: Promisable\n\t): FunPromise;\n\tstatic delay(waitTimeMs, returnValue?) {\n\t\treturn FunPromise.resolve().delay(waitTimeMs, returnValue);\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tdelay(\n\t\twaitTimeMs: number,\n\t\treturnValue?: Promisable\n\t): FunPromise {\n\t\tif (waitTimeMs <= 0) {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _defer(resolve, returnValue))\n\t\t\t);\n\t\t} else {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _delay(resolve, waitTimeMs, returnValue))\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Given a filtering function, apply the filtering function to each element of the promise's resolved value,\n\t * and return an array with the values for which the filtering function returns `true`. If any of the filtering\n\t * results are rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result are stable with regard to the order of the elements in the promise's\n\t * resolved value. That is, if `X < Y` and `input[X]` and `input[Y]` are both in the input, and `input[X]` and\n\t * `input[Y]` both pass the filtering function, then the output index of `input[X]` will be less than the output\n\t * index of `input[Y]`. However, the resolution order is not guaranteed: that is, `input[Y]` may be resolved and\n\t * tested before `input[X]` even though `input[X]` has a lower output index than `input[Y]`.\n\t */\n\tfilter(test: (it: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tconst results = await FunPromise.map(ary, async (it) => test(await it));\n\t\t\t// @ts-ignore\n\t\t\treturn _filter(ary, (it, idx) => results[idx]);\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(items).filter(test)`.\n\t */\n\tstatic filter(\n\t\titems: PromisableIterable,\n\t\ttest: (it: Item>) => Promisable\n\t): FunPromise>[]> {\n\t\treturn FunPromise.resolve(items).filter(test);\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the concatenated results of the mapping. If any of the mapping results are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed.\n\t */\n\tflatMap>(\n\t\tmapper: (it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tconst promises: Array>> = _map(ary, async (value) =>\n\t\t\t\tmapper(await value)\n\t\t\t);\n\t\t\tconst resolved: T2[][] = await Promise.all(promises);\n\t\t\tconst flattened: T2[] = _flatten(resolved);\n\t\t\treturn flattened;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).flatMap(mapper)`.\n\t */\n\tstatic flatMap(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).flatMap(mapper);\n\t}\n\n\t/**\n\t * Access the resolved value without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttap(callback: (val: T) => Promisable): FunPromise {\n\t\treturn this.then(async (val) => {\n\t\t\tawait callback(val);\n\t\t\treturn val;\n\t\t});\n\t}\n\n\t/**\n\t * Access the rejection reason without changing it. Note that if the callback itself rejects (ie: throws),\n\t * both rejection reasons will be capture in a single [[`NestedError`]].\n\t */\n\ttapCatch(callback: (reason: unknown) => Promisable): FunPromise {\n\t\treturn this.catch(async (err) => {\n\t\t\ttry {\n\t\t\t\tawait callback(err);\n\t\t\t} catch (err2) {\n\t\t\t\tthrow new NestedError(\"Error thrown in 'tapCatch'\", err, err2);\n\t\t\t}\n\t\t\tthrow err;\n\t\t});\n\t}\n\n\t/**\n\t * Access each of the resolved values of a resolved iterable without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttapEach(callback: (val: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify(true).tap(async (ary) => {\n\t\t\tawait Promise.all(_map(ary, callback));\n\t\t});\n\t}\n\n\t/**\n\t * Given an initial value and an accumulator function, apply the accumlator function to each element of the promise's resolved value,\n\t * passing in the current value and the result. Returns an array with the result of the accumulation. If any of the promise's values are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The resolution order is not guaranteed. The accumulator function will be passed values as those values resolve.\n\t */\n\tfold>(\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tlet memoPromise = FunPromise.resolve(initialValue);\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, async (promisableValue) => {\n\t\t\t\t\tconst value = await promisableValue;\n\t\t\t\t\tmemoPromise = memoPromise.then((memo) => accumulator(memo, value));\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn await memoPromise;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).fold(initialValue, accumulator)`.\n\t */\n\tstatic fold(\n\t\tvalues: PromisableIterable,\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).fold(initialValue, accumulator);\n\t}\n\n\t/**\n\t * Handles rejections like 'catch', but wraps them in a [[`NestedError`]] with the given message.\n\t */\n\twrapError(msg: string): FunPromise {\n\t\treturn this.catch(NestedError.rethrow(msg));\n\t}\n\n\t/**\n\t * Resolves all the elements of the resolved value, which is assumed to be an `Iterable`. If any\n\t * of the values reject, all the reasons are collected and wrapped in a [[`NestedError`]].\n\t */\n\twrapErrors(msg: string): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tlet errors = [];\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, (val) => Promise.resolve(val).catch((e) => errors.push(e)))\n\t\t\t);\n\t\t\tif (_isEmpty(errors)) {\n\t\t\t\treturn ary;\n\t\t\t} else {\n\t\t\t\tthrow new NestedError(msg, ...errors);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Cancel the FunPromise. A cancelled FunPromise will silently disregard any resolution or rejection which occurs after the cancellation.\n\t */\n\tcancel() {\n\t\tthis._isCancelled = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Returns whether or not the promise has been cancelled. See `cancel()` for more details.\n\t */\n\tisCancelled() {\n\t\treturn this._isCancelled;\n\t}\n\n\t/**\n\t * Captures either fulfillment or rejection and resolves an object that describes the result.\n\t */\n\tsettle(): FunPromise> {\n\t\treturn new FunPromise(\n\t\t\tthis.wrapped.then(\n\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Assuming that the resolved value is an iterable, then for each element of the\n\t * array, captures either the fulfillment or rejection of that element.\n\t */\n\tsettleAll(): FunPromise>[]> {\n\t\treturn new FunPromise(\n\t\t\tthis.arrayify().wrapped.then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(iterable).settleAll()`.\n\t */\n\tstatic settleAll(\n\t\titerable: PromisableIterable\n\t): FunPromise[]> {\n\t\treturn new FunPromise(\n\t\t\tPromise.resolve(iterable).then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n}\n"]} \ No newline at end of file diff --git a/dist/es6/umd/src/fun-promise.d.ts b/dist/es6/umd/src/fun-promise.d.ts index 23424f3..7e7a713 100644 --- a/dist/es6/umd/src/fun-promise.d.ts +++ b/dist/es6/umd/src/fun-promise.d.ts @@ -26,7 +26,7 @@ export default class FunPromise implements Promise { /** * Constructor, which takes the promise to wrap. */ - constructor(wrapped: Promise); + constructor(wrapped: Promisable); /** * Takes a value (or a promise of a value) and returns a promise wrapping * it. diff --git a/dist/es6/umd/src/fun-promise.d.ts.map b/dist/es6/umd/src/fun-promise.d.ts.map index d4b353b..8413e46 100644 --- a/dist/es6/umd/src/fun-promise.d.ts.map +++ b/dist/es6/umd/src/fun-promise.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"fun-promise.d.ts","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"fun-promise.d.ts","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6/umd/src/fun-promise.js.map b/dist/es6/umd/src/fun-promise.js.map index 60857c2..24dbcb4 100644 --- a/dist/es6/umd/src/fun-promise.js.map +++ b/dist/es6/umd/src/fun-promise.js.map @@ -1 +1 @@ -{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @format\n */\n\n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n\nimport {\n\tPromisable,\n\tPromisableIterable,\n\tUnpromise,\n\tItem,\n\tSettlement,\n\tFulfillment,\n\tRejection,\n} from \"./types\";\nimport { NestedError } from \"ts-nested-error\";\n\nimport _defer from \"lodash/defer\";\nimport _delay from \"lodash/delay\";\nimport _filter from \"lodash/filter\";\nimport _flatten from \"lodash/flatten\";\nimport _identity from \"lodash/identity\";\nimport _isEmpty from \"lodash/isEmpty\";\nimport _isError from \"lodash/isError\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _map from \"lodash/map\";\nimport _negate from \"lodash/negate\";\nimport _noop from \"lodash/noop\";\nimport _toArray from \"lodash/toArray\";\n\n// import Debug from \"debug\";\n// const debug = Debug(\"fun-promises\");\n\n/**\n * The class that you should use instead of `Promise`. It implements the `Promise` API, so it should be a drop-in replacement.\n */\nexport default class FunPromise implements Promise {\n\t/**\n\t * Whether or not this FunPromise has been cancelled.\n\t */\n\tprivate _isCancelled: boolean = false;\n\n\t/**\n\t * The promise that was wrapped after attaching our custom logic.\n\t */\n\tprotected readonly wrapped: Promise;\n\n\t/**\n\t * Constructor, which takes the promise to wrap.\n\t */\n\tconstructor(wrapped: Promise) {\n\t\tthis.wrapped = new Promise(async (resolve, reject) => {\n\t\t\tlet resolved = null;\n\t\t\ttry {\n\t\t\t\tresolved = await wrapped;\n\t\t\t} catch (e) {\n\t\t\t\tif (this._isCancelled) return;\n\t\t\t\treject(e);\n\t\t\t}\n\t\t\tif (this._isCancelled) return;\n\t\t\tresolve(resolved);\n\t\t});\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise wrapping\n\t * it.\n\t */\n\tstatic resolve(value?: Promisable): FunPromise {\n\t\tif (value instanceof FunPromise) {\n\t\t\treturn value as FunPromise;\n\t\t} else if (value instanceof Promise) {\n\t\t\treturn new FunPromise(value);\n\t\t} else {\n\t\t\treturn new FunPromise(new Promise((resolve) => resolve(value)));\n\t\t}\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and resolves to the new value,\n\t * disregarding any previous resolution value.\n\t */\n\tresolve(value?: Promisable): FunPromise {\n\t\treturn new FunPromise(this.wrapped.then(() => value));\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for consistency with the instance `return` method.\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\tstatic return(value?: Promisable): FunPromise {\n\t\treturn FunPromise.resolve(value);\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for compatibility with [the Bluebird API|http://bluebirdjs.com/docs/api/return.html].\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\treturn(value?: Promisable): FunPromise {\n\t\treturn this.resolve(value);\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary.\n\t */\n\tstatic reject(value?: unknown): FunPromise {\n\t\treturn new FunPromise(Promise.reject(value));\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary. This disregards any existing status.\n\t */\n\treject(value?: unknown): FunPromise {\n\t\treturn FunPromise.reject(value);\n\t}\n\n\t/**\n\t * Attaches callbacks for the resolution and/or rejection of the Promise.\n\t * @param onfulfilled The optional callback to execute when the Promise is resolved.\n\t * @param onrejected The optional callback to execute when the Promise is rejected. If provided, the result of this callback is the new resolution value, and this promise is resolved, not rejected.\n\t * @returns A Promise for the completion of which ever callback is executed.\n\t */\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected: (reason: unknown) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected?: (reason: unknown) => Promisable\n\t): FunPromise {\n\t\tif (_isNil(onrejected)) {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled));\n\t\t} else {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled, onrejected));\n\t\t}\n\t}\n\n\t/**\n\t * Attaches a callback for only the rejection of the Promise. If the callback throws, then throws a [[`NestedError`]] with\n\t * both the original rejection reason and the new thrown value.\n\t *\n\t * @param onrejected The callback to execute when the Promise is rejected.\n\t * @returns A Promise for the completion of the callback.\n\t */\n\tcatch(\n\t\tonrejected: (reason: unknown) => Promisable = _identity\n\t): FunPromise {\n\t\treturn new FunPromise(this.wrapped.catch(onrejected));\n\t}\n\n\t/**\n\t * Creates a Promise that is resolved with an array of results when all of the\n\t * provided Promises resolve, or rejected when any Promise is rejected.\n\t * @param values An array of Promises.\n\t * @returns A new Promise.\n\t */\n\tstatic all(values: PromisableIterable): FunPromise;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3, T4]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable]\n\t): FunPromise<[T1, T2]>;\n\tstatic all(values: [Promisable]): FunPromise<[T1]>;\n\tstatic all(...values: any[]): any {\n\t\treturn FunPromise.resolve(_flatten(values)).all();\n\t}\n\tall(): FunPromise[]> {\n\t\treturn this.arrayify(true);\n\t}\n\n\t/**\n\t * Given a function (or a promise of a function) that returns a value (or a promise of a value),\n\t * create a promise that executes the function and returns the value. If executing the function\n\t * throws an exception, then that exception becomes the rejection of the promise.\n\t *\n\t * Any arguments after the first will be passed into the function when it is invoked. If they are\n\t * a `PromiseLike`, then they will be resolved and the resolution value will be passed into the\n\t * function instead.\n\t *\n\t * This function is really useful in the following cases:\n\t * 1. to [avoid releasing Zalgo](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n\t * 2. when you want to create a `FunPromise` based on an `async` function\n\t * 3. when you want to create a `FunPromise` based on a normal function\n\t */\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7,\n\t\t\t\targ8: Arg8\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable,\n\t\targ8: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(arg1: Arg1, arg2: Arg2, arg3: Arg3, arg4: Arg4) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2, arg3: Arg3) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1) => Promisable>,\n\t\targ1: Promisable\n\t): FunPromise;\n\tstatic try(source: Promisable<() => Promisable>): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(...args: ArgT[]) => Promisable>,\n\t\t...args: ArgT[]\n\t): FunPromise {\n\t\treturn FunPromise.resolve(source).then((f) => {\n\t\t\tif (_isEmpty(args)) {\n\t\t\t\treturn f();\n\t\t\t} else {\n\t\t\t\treturn Promise.all(args).then((realArgs) => f(...realArgs));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Unwraps layers of `PromiseLike` wrappers as necessary.\n\t *\n\t * This behavior is actually part of the Promise/A+ spec, but the type system struggles with that fact,\n\t * so this method is a workaround.\n\t *\n\t * In a future version of this library, `FunPromise` will extend `Promise>` instead of\n\t * just `Promise`, which will render this method irrelevant. Unfortunately, Typescript's type system\n\t * doesn't seem capable of handling that reality quite yet, so this is what we get.\n\t */\n\tsimplify(): FunPromise> {\n\t\treturn (this as unknown) as FunPromise>;\n\t}\n\n\t/**\n\t * For each element of the resolved iterable, unwraps layers of `PromiseLike` wrappers as necessary.\n\t */\n\tsimplifyAll(): FunPromise>[]> {\n\t\treturn this.arrayify().map((it) => FunPromise.resolve(it).simplify());\n\t}\n\n\t/**\n\t * Coerces the resolve value (which must be an `Iterable`) into an array. The `Iterable` requirement\n\t * comes from the `Item` return value: `Item` is equivalent to `never` if `T` is not an `Iterable`.\n\t *\n\t * Note that this function does *NOT* resolve the items within the array unless you pass the first argument\n\t * as `true`. The items are not resolved sequentially unless you also pass a second argument as `true`.\n\t */\n\tarrayify(\n\t\tresolveValues: boolean = false,\n\t\tsequentialResolution: boolean = false\n\t): FunPromise[]> {\n\t\tconst aryPromise: FunPromise[]> = this.then((iter) => [\n\t\t\t...((iter as unknown) as Iterable>),\n\t\t]);\n\t\tif (resolveValues) {\n\t\t\tif (sequentialResolution) {\n\t\t\t\treturn aryPromise.then(async (ary) => {\n\t\t\t\t\tconst results = [];\n\t\t\t\t\twhile (!_isEmpty(ary)) {\n\t\t\t\t\t\tresults.push(await ary.shift());\n\t\t\t\t\t}\n\t\t\t\t\treturn results;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn aryPromise.then((ary) => Promise.all(ary));\n\t\t\t}\n\t\t} else {\n\t\t\treturn aryPromise;\n\t\t}\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the results of the mapping. If any of the mapping results are rejected,\n\t * the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed. For example, although the\n\t * output at index 0 will hold the mapping of the input element at index 0, it is not guaranteed that\n\t * the mapping of index 0 will be awaited before the mapping of index 1.\n\t */\n\tmap>(mapper: (it: Item) => Promisable): FunPromise {\n\t\tconst results = [];\n\t\treturn FunPromise.try(async () => {\n\t\t\tawait Promise.all(\n\t\t\t\t_map(await this.arrayify(), async (value, idx) => {\n\t\t\t\t\tresults[idx] = await mapper(await value);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn results;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).map(mapper)`.\n\t */\n\tstatic map(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).map(mapper);\n\t}\n\n\t/**\n\t * Required to implement `Promise`, but you almost certainly don't care about it.\n\t *\n\t * All the same, it returns the string tag of the underlying promise.\n\t */\n\tget [Symbol.toStringTag]() {\n\t\treturn this.wrapped[Symbol.toStringTag];\n\t}\n\n\t/**\n\t * Executes the provided code whether the promise rejects or resolves.\n\t */\n\tfinally(): FunPromise;\n\tfinally(onfinally: () => void): FunPromise;\n\tfinally(onfinally?) {\n\t\tif (_isFunction(onfinally)) {\n\t\t\treturn new FunPromise(this.wrapped.finally(onfinally));\n\t\t} else {\n\t\t\treturn this;\n\t\t}\n\t}\n\n\t/**\n\t * Given a [[`PromisableIterable`]] whose values are nullary functions returning [[Promisable|`Promisable`]],\n\t * this executes all the functions simultaneously and returns the first whose return value passes the provided test.\n\t * The default test returns true if the value is not `null` or `undefined`.\n\t *\n\t * If no function resolves successfully, the last seen rejection is thrown. If some functions resolve but some reject,\n\t * and none of the resolved values pass the test, then the last seen rejection is thrown.\n\t *\n\t * If all the functions resolve but to a value but no value passes the test, then this rejects with an error saying as much.\n\t */\n\tstatic coalesce(\n\t\tfns: PromisableIterable<() => Promisable>,\n\t\ttest: (item: T) => Promisable = _negate(_isNil)\n\t): FunPromise {\n\t\tlet resolved = false;\n\t\tlet lastSeenReason: unknown = new Error(\"No values left after coalescing\");\n\t\tlet resolveValue;\n\t\treturn FunPromise.map(fns, (fn) =>\n\t\t\tFunPromise.try(fn)\n\t\t\t\t.then((result) => {\n\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\treturn FunPromise.try(test, result).then((testResult) => {\n\t\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\t\tif (testResult) {\n\t\t\t\t\t\t\tresolved = true;\n\t\t\t\t\t\t\tresolveValue = result;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tlastSeenReason = e;\n\t\t\t\t})\n\t\t).then(() => {\n\t\t\tif (resolved) {\n\t\t\t\treturn resolveValue;\n\t\t\t} else {\n\t\t\t\tthrow lastSeenReason;\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tstatic delay(waitTimeMs: number): FunPromise;\n\tstatic delay(\n\t\twaitTimeMs: number,\n\t\treturnValue: Promisable\n\t): FunPromise;\n\tstatic delay(waitTimeMs, returnValue?) {\n\t\treturn FunPromise.resolve().delay(waitTimeMs, returnValue);\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tdelay(\n\t\twaitTimeMs: number,\n\t\treturnValue?: Promisable\n\t): FunPromise {\n\t\tif (waitTimeMs <= 0) {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _defer(resolve, returnValue))\n\t\t\t);\n\t\t} else {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _delay(resolve, waitTimeMs, returnValue))\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Given a filtering function, apply the filtering function to each element of the promise's resolved value,\n\t * and return an array with the values for which the filtering function returns `true`. If any of the filtering\n\t * results are rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result are stable with regard to the order of the elements in the promise's\n\t * resolved value. That is, if `X < Y` and `input[X]` and `input[Y]` are both in the input, and `input[X]` and\n\t * `input[Y]` both pass the filtering function, then the output index of `input[X]` will be less than the output\n\t * index of `input[Y]`. However, the resolution order is not guaranteed: that is, `input[Y]` may be resolved and\n\t * tested before `input[X]` even though `input[X]` has a lower output index than `input[Y]`.\n\t */\n\tfilter(test: (it: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tconst results = await FunPromise.map(ary, async (it) => test(await it));\n\t\t\t// @ts-ignore\n\t\t\treturn _filter(ary, (it, idx) => results[idx]);\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(items).filter(test)`.\n\t */\n\tstatic filter(\n\t\titems: PromisableIterable,\n\t\ttest: (it: Item>) => Promisable\n\t): FunPromise>[]> {\n\t\treturn FunPromise.resolve(items).filter(test);\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the concatenated results of the mapping. If any of the mapping results are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed.\n\t */\n\tflatMap>(\n\t\tmapper: (it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tconst promises: Array>> = _map(ary, async (value) =>\n\t\t\t\tmapper(await value)\n\t\t\t);\n\t\t\tconst resolved: T2[][] = await Promise.all(promises);\n\t\t\tconst flattened: T2[] = _flatten(resolved);\n\t\t\treturn flattened;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).flatMap(mapper)`.\n\t */\n\tstatic flatMap(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).flatMap(mapper);\n\t}\n\n\t/**\n\t * Access the resolved value without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttap(callback: (val: T) => Promisable): FunPromise {\n\t\treturn this.then(async (val) => {\n\t\t\tawait callback(val);\n\t\t\treturn val;\n\t\t});\n\t}\n\n\t/**\n\t * Access the rejection reason without changing it. Note that if the callback itself rejects (ie: throws),\n\t * both rejection reasons will be capture in a single [[`NestedError`]].\n\t */\n\ttapCatch(callback: (reason: unknown) => Promisable): FunPromise {\n\t\treturn this.catch(async (err) => {\n\t\t\ttry {\n\t\t\t\tawait callback(err);\n\t\t\t} catch (err2) {\n\t\t\t\tthrow new NestedError(\"Error thrown in 'tapCatch'\", err, err2);\n\t\t\t}\n\t\t\tthrow err;\n\t\t});\n\t}\n\n\t/**\n\t * Access each of the resolved values of a resolved iterable without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttapEach(callback: (val: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify(true).tap(async (ary) => {\n\t\t\tawait Promise.all(_map(ary, callback));\n\t\t});\n\t}\n\n\t/**\n\t * Given an initial value and an accumulator function, apply the accumlator function to each element of the promise's resolved value,\n\t * passing in the current value and the result. Returns an array with the result of the accumulation. If any of the promise's values are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The resolution order is not guaranteed. The accumulator function will be passed values as those values resolve.\n\t */\n\tfold>(\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tlet memoPromise = FunPromise.resolve(initialValue);\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, async (promisableValue) => {\n\t\t\t\t\tconst value = await promisableValue;\n\t\t\t\t\tmemoPromise = memoPromise.then((memo) => accumulator(memo, value));\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn await memoPromise;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).fold(initialValue, accumulator)`.\n\t */\n\tstatic fold(\n\t\tvalues: PromisableIterable,\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).fold(initialValue, accumulator);\n\t}\n\n\t/**\n\t * Handles rejections like 'catch', but wraps them in a [[`NestedError`]] with the given message.\n\t */\n\twrapError(msg: string): FunPromise {\n\t\treturn this.catch(NestedError.rethrow(msg));\n\t}\n\n\t/**\n\t * Resolves all the elements of the resolved value, which is assumed to be an `Iterable`. If any\n\t * of the values reject, all the reasons are collected and wrapped in a [[`NestedError`]].\n\t */\n\twrapErrors(msg: string): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tlet errors = [];\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, (val) => Promise.resolve(val).catch((e) => errors.push(e)))\n\t\t\t);\n\t\t\tif (_isEmpty(errors)) {\n\t\t\t\treturn ary;\n\t\t\t} else {\n\t\t\t\tthrow new NestedError(msg, ...errors);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Cancel the FunPromise. A cancelled FunPromise will silently disregard any resolution or rejection which occurs after the cancellation.\n\t */\n\tcancel() {\n\t\tthis._isCancelled = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Returns whether or not the promise has been cancelled. See `cancel()` for more details.\n\t */\n\tisCancelled() {\n\t\treturn this._isCancelled;\n\t}\n\n\t/**\n\t * Captures either fulfillment or rejection and resolves an object that describes the result.\n\t */\n\tsettle(): FunPromise> {\n\t\treturn new FunPromise(\n\t\t\tthis.wrapped.then(\n\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Assuming that the resolved value is an iterable, then for each element of the\n\t * array, captures either the fulfillment or rejection of that element.\n\t */\n\tsettleAll(): FunPromise>[]> {\n\t\treturn new FunPromise(\n\t\t\tthis.arrayify().wrapped.then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(iterable).settleAll()`.\n\t */\n\tstatic settleAll(\n\t\titerable: PromisableIterable\n\t): FunPromise[]> {\n\t\treturn new FunPromise(\n\t\t\tPromise.resolve(iterable).then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n}\n"]} \ No newline at end of file +{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @format\n */\n\n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n\nimport {\n\tPromisable,\n\tPromisableIterable,\n\tUnpromise,\n\tItem,\n\tSettlement,\n\tFulfillment,\n\tRejection,\n} from \"./types\";\nimport { NestedError } from \"ts-nested-error\";\n\nimport _defer from \"lodash/defer\";\nimport _delay from \"lodash/delay\";\nimport _filter from \"lodash/filter\";\nimport _flatten from \"lodash/flatten\";\nimport _identity from \"lodash/identity\";\nimport _isEmpty from \"lodash/isEmpty\";\nimport _isError from \"lodash/isError\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _map from \"lodash/map\";\nimport _negate from \"lodash/negate\";\nimport _noop from \"lodash/noop\";\nimport _toArray from \"lodash/toArray\";\n\n// import Debug from \"debug\";\n// const debug = Debug(\"fun-promises\");\n\n/**\n * The class that you should use instead of `Promise`. It implements the `Promise` API, so it should be a drop-in replacement.\n */\nexport default class FunPromise implements Promise {\n\t/**\n\t * Whether or not this FunPromise has been cancelled.\n\t */\n\tprivate _isCancelled: boolean = false;\n\n\t/**\n\t * The promise that was wrapped after attaching our custom logic.\n\t */\n\tprotected readonly wrapped: Promise;\n\n\t/**\n\t * Constructor, which takes the promise to wrap.\n\t */\n\tconstructor(wrapped: Promisable) {\n\t\tthis.wrapped = new Promise(async (resolve, reject) => {\n\t\t\tlet resolved = null;\n\t\t\ttry {\n\t\t\t\tresolved = await wrapped;\n\t\t\t} catch (e) {\n\t\t\t\tif (this._isCancelled) return;\n\t\t\t\treject(e);\n\t\t\t}\n\t\t\tif (this._isCancelled) return;\n\t\t\tresolve(resolved);\n\t\t});\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise wrapping\n\t * it.\n\t */\n\tstatic resolve(value?: Promisable): FunPromise {\n\t\tif (value instanceof FunPromise) {\n\t\t\treturn value as FunPromise;\n\t\t} else if (value instanceof Promise) {\n\t\t\treturn new FunPromise(value);\n\t\t} else {\n\t\t\treturn new FunPromise(new Promise((resolve) => resolve(value)));\n\t\t}\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and resolves to the new value,\n\t * disregarding any previous resolution value.\n\t */\n\tresolve(value?: Promisable): FunPromise {\n\t\treturn new FunPromise(this.wrapped.then(() => value));\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for consistency with the instance `return` method.\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\tstatic return(value?: Promisable): FunPromise {\n\t\treturn FunPromise.resolve(value);\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for compatibility with [the Bluebird API|http://bluebirdjs.com/docs/api/return.html].\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\treturn(value?: Promisable): FunPromise {\n\t\treturn this.resolve(value);\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary.\n\t */\n\tstatic reject(value?: unknown): FunPromise {\n\t\treturn new FunPromise(Promise.reject(value));\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary. This disregards any existing status.\n\t */\n\treject(value?: unknown): FunPromise {\n\t\treturn FunPromise.reject(value);\n\t}\n\n\t/**\n\t * Attaches callbacks for the resolution and/or rejection of the Promise.\n\t * @param onfulfilled The optional callback to execute when the Promise is resolved.\n\t * @param onrejected The optional callback to execute when the Promise is rejected. If provided, the result of this callback is the new resolution value, and this promise is resolved, not rejected.\n\t * @returns A Promise for the completion of which ever callback is executed.\n\t */\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected: (reason: unknown) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected?: (reason: unknown) => Promisable\n\t): FunPromise {\n\t\tif (_isNil(onrejected)) {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled));\n\t\t} else {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled, onrejected));\n\t\t}\n\t}\n\n\t/**\n\t * Attaches a callback for only the rejection of the Promise. If the callback throws, then throws a [[`NestedError`]] with\n\t * both the original rejection reason and the new thrown value.\n\t *\n\t * @param onrejected The callback to execute when the Promise is rejected.\n\t * @returns A Promise for the completion of the callback.\n\t */\n\tcatch(\n\t\tonrejected: (reason: unknown) => Promisable = _identity\n\t): FunPromise {\n\t\treturn new FunPromise(this.wrapped.catch(onrejected));\n\t}\n\n\t/**\n\t * Creates a Promise that is resolved with an array of results when all of the\n\t * provided Promises resolve, or rejected when any Promise is rejected.\n\t * @param values An array of Promises.\n\t * @returns A new Promise.\n\t */\n\tstatic all(values: PromisableIterable): FunPromise;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3, T4]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable]\n\t): FunPromise<[T1, T2]>;\n\tstatic all(values: [Promisable]): FunPromise<[T1]>;\n\tstatic all(...values: any[]): any {\n\t\treturn FunPromise.resolve(_flatten(values)).all();\n\t}\n\tall(): FunPromise[]> {\n\t\treturn this.arrayify(true);\n\t}\n\n\t/**\n\t * Given a function (or a promise of a function) that returns a value (or a promise of a value),\n\t * create a promise that executes the function and returns the value. If executing the function\n\t * throws an exception, then that exception becomes the rejection of the promise.\n\t *\n\t * Any arguments after the first will be passed into the function when it is invoked. If they are\n\t * a `PromiseLike`, then they will be resolved and the resolution value will be passed into the\n\t * function instead.\n\t *\n\t * This function is really useful in the following cases:\n\t * 1. to [avoid releasing Zalgo](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n\t * 2. when you want to create a `FunPromise` based on an `async` function\n\t * 3. when you want to create a `FunPromise` based on a normal function\n\t */\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7,\n\t\t\t\targ8: Arg8\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable,\n\t\targ8: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(arg1: Arg1, arg2: Arg2, arg3: Arg3, arg4: Arg4) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2, arg3: Arg3) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1) => Promisable>,\n\t\targ1: Promisable\n\t): FunPromise;\n\tstatic try(source: Promisable<() => Promisable>): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(...args: ArgT[]) => Promisable>,\n\t\t...args: ArgT[]\n\t): FunPromise {\n\t\treturn FunPromise.resolve(source).then((f) => {\n\t\t\tif (_isEmpty(args)) {\n\t\t\t\treturn f();\n\t\t\t} else {\n\t\t\t\treturn Promise.all(args).then((realArgs) => f(...realArgs));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Unwraps layers of `PromiseLike` wrappers as necessary.\n\t *\n\t * This behavior is actually part of the Promise/A+ spec, but the type system struggles with that fact,\n\t * so this method is a workaround.\n\t *\n\t * In a future version of this library, `FunPromise` will extend `Promise>` instead of\n\t * just `Promise`, which will render this method irrelevant. Unfortunately, Typescript's type system\n\t * doesn't seem capable of handling that reality quite yet, so this is what we get.\n\t */\n\tsimplify(): FunPromise> {\n\t\treturn (this as unknown) as FunPromise>;\n\t}\n\n\t/**\n\t * For each element of the resolved iterable, unwraps layers of `PromiseLike` wrappers as necessary.\n\t */\n\tsimplifyAll(): FunPromise>[]> {\n\t\treturn this.arrayify().map((it) => FunPromise.resolve(it).simplify());\n\t}\n\n\t/**\n\t * Coerces the resolve value (which must be an `Iterable`) into an array. The `Iterable` requirement\n\t * comes from the `Item` return value: `Item` is equivalent to `never` if `T` is not an `Iterable`.\n\t *\n\t * Note that this function does *NOT* resolve the items within the array unless you pass the first argument\n\t * as `true`. The items are not resolved sequentially unless you also pass a second argument as `true`.\n\t */\n\tarrayify(\n\t\tresolveValues: boolean = false,\n\t\tsequentialResolution: boolean = false\n\t): FunPromise[]> {\n\t\tconst aryPromise: FunPromise[]> = this.then((iter) => [\n\t\t\t...((iter as unknown) as Iterable>),\n\t\t]);\n\t\tif (resolveValues) {\n\t\t\tif (sequentialResolution) {\n\t\t\t\treturn aryPromise.then(async (ary) => {\n\t\t\t\t\tconst results = [];\n\t\t\t\t\twhile (!_isEmpty(ary)) {\n\t\t\t\t\t\tresults.push(await ary.shift());\n\t\t\t\t\t}\n\t\t\t\t\treturn results;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn aryPromise.then((ary) => Promise.all(ary));\n\t\t\t}\n\t\t} else {\n\t\t\treturn aryPromise;\n\t\t}\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the results of the mapping. If any of the mapping results are rejected,\n\t * the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed. For example, although the\n\t * output at index 0 will hold the mapping of the input element at index 0, it is not guaranteed that\n\t * the mapping of index 0 will be awaited before the mapping of index 1.\n\t */\n\tmap>(mapper: (it: Item) => Promisable): FunPromise {\n\t\tconst results = [];\n\t\treturn FunPromise.try(async () => {\n\t\t\tawait Promise.all(\n\t\t\t\t_map(await this.arrayify(), async (value, idx) => {\n\t\t\t\t\tresults[idx] = await mapper(await value);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn results;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).map(mapper)`.\n\t */\n\tstatic map(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).map(mapper);\n\t}\n\n\t/**\n\t * Required to implement `Promise`, but you almost certainly don't care about it.\n\t *\n\t * All the same, it returns the string tag of the underlying promise.\n\t */\n\tget [Symbol.toStringTag]() {\n\t\treturn this.wrapped[Symbol.toStringTag];\n\t}\n\n\t/**\n\t * Executes the provided code whether the promise rejects or resolves.\n\t */\n\tfinally(): FunPromise;\n\tfinally(onfinally: () => void): FunPromise;\n\tfinally(onfinally?) {\n\t\tif (_isFunction(onfinally)) {\n\t\t\treturn new FunPromise(this.wrapped.finally(onfinally));\n\t\t} else {\n\t\t\treturn this;\n\t\t}\n\t}\n\n\t/**\n\t * Given a [[`PromisableIterable`]] whose values are nullary functions returning [[Promisable|`Promisable`]],\n\t * this executes all the functions simultaneously and returns the first whose return value passes the provided test.\n\t * The default test returns true if the value is not `null` or `undefined`.\n\t *\n\t * If no function resolves successfully, the last seen rejection is thrown. If some functions resolve but some reject,\n\t * and none of the resolved values pass the test, then the last seen rejection is thrown.\n\t *\n\t * If all the functions resolve but to a value but no value passes the test, then this rejects with an error saying as much.\n\t */\n\tstatic coalesce(\n\t\tfns: PromisableIterable<() => Promisable>,\n\t\ttest: (item: T) => Promisable = _negate(_isNil)\n\t): FunPromise {\n\t\tlet resolved = false;\n\t\tlet lastSeenReason: unknown = new Error(\"No values left after coalescing\");\n\t\tlet resolveValue;\n\t\treturn FunPromise.map(fns, (fn) =>\n\t\t\tFunPromise.try(fn)\n\t\t\t\t.then((result) => {\n\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\treturn FunPromise.try(test, result).then((testResult) => {\n\t\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\t\tif (testResult) {\n\t\t\t\t\t\t\tresolved = true;\n\t\t\t\t\t\t\tresolveValue = result;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tlastSeenReason = e;\n\t\t\t\t})\n\t\t).then(() => {\n\t\t\tif (resolved) {\n\t\t\t\treturn resolveValue;\n\t\t\t} else {\n\t\t\t\tthrow lastSeenReason;\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tstatic delay(waitTimeMs: number): FunPromise;\n\tstatic delay(\n\t\twaitTimeMs: number,\n\t\treturnValue: Promisable\n\t): FunPromise;\n\tstatic delay(waitTimeMs, returnValue?) {\n\t\treturn FunPromise.resolve().delay(waitTimeMs, returnValue);\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tdelay(\n\t\twaitTimeMs: number,\n\t\treturnValue?: Promisable\n\t): FunPromise {\n\t\tif (waitTimeMs <= 0) {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _defer(resolve, returnValue))\n\t\t\t);\n\t\t} else {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _delay(resolve, waitTimeMs, returnValue))\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Given a filtering function, apply the filtering function to each element of the promise's resolved value,\n\t * and return an array with the values for which the filtering function returns `true`. If any of the filtering\n\t * results are rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result are stable with regard to the order of the elements in the promise's\n\t * resolved value. That is, if `X < Y` and `input[X]` and `input[Y]` are both in the input, and `input[X]` and\n\t * `input[Y]` both pass the filtering function, then the output index of `input[X]` will be less than the output\n\t * index of `input[Y]`. However, the resolution order is not guaranteed: that is, `input[Y]` may be resolved and\n\t * tested before `input[X]` even though `input[X]` has a lower output index than `input[Y]`.\n\t */\n\tfilter(test: (it: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tconst results = await FunPromise.map(ary, async (it) => test(await it));\n\t\t\t// @ts-ignore\n\t\t\treturn _filter(ary, (it, idx) => results[idx]);\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(items).filter(test)`.\n\t */\n\tstatic filter(\n\t\titems: PromisableIterable,\n\t\ttest: (it: Item>) => Promisable\n\t): FunPromise>[]> {\n\t\treturn FunPromise.resolve(items).filter(test);\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the concatenated results of the mapping. If any of the mapping results are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed.\n\t */\n\tflatMap>(\n\t\tmapper: (it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tconst promises: Array>> = _map(ary, async (value) =>\n\t\t\t\tmapper(await value)\n\t\t\t);\n\t\t\tconst resolved: T2[][] = await Promise.all(promises);\n\t\t\tconst flattened: T2[] = _flatten(resolved);\n\t\t\treturn flattened;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).flatMap(mapper)`.\n\t */\n\tstatic flatMap(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).flatMap(mapper);\n\t}\n\n\t/**\n\t * Access the resolved value without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttap(callback: (val: T) => Promisable): FunPromise {\n\t\treturn this.then(async (val) => {\n\t\t\tawait callback(val);\n\t\t\treturn val;\n\t\t});\n\t}\n\n\t/**\n\t * Access the rejection reason without changing it. Note that if the callback itself rejects (ie: throws),\n\t * both rejection reasons will be capture in a single [[`NestedError`]].\n\t */\n\ttapCatch(callback: (reason: unknown) => Promisable): FunPromise {\n\t\treturn this.catch(async (err) => {\n\t\t\ttry {\n\t\t\t\tawait callback(err);\n\t\t\t} catch (err2) {\n\t\t\t\tthrow new NestedError(\"Error thrown in 'tapCatch'\", err, err2);\n\t\t\t}\n\t\t\tthrow err;\n\t\t});\n\t}\n\n\t/**\n\t * Access each of the resolved values of a resolved iterable without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttapEach(callback: (val: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify(true).tap(async (ary) => {\n\t\t\tawait Promise.all(_map(ary, callback));\n\t\t});\n\t}\n\n\t/**\n\t * Given an initial value and an accumulator function, apply the accumlator function to each element of the promise's resolved value,\n\t * passing in the current value and the result. Returns an array with the result of the accumulation. If any of the promise's values are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The resolution order is not guaranteed. The accumulator function will be passed values as those values resolve.\n\t */\n\tfold>(\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tlet memoPromise = FunPromise.resolve(initialValue);\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, async (promisableValue) => {\n\t\t\t\t\tconst value = await promisableValue;\n\t\t\t\t\tmemoPromise = memoPromise.then((memo) => accumulator(memo, value));\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn await memoPromise;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).fold(initialValue, accumulator)`.\n\t */\n\tstatic fold(\n\t\tvalues: PromisableIterable,\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).fold(initialValue, accumulator);\n\t}\n\n\t/**\n\t * Handles rejections like 'catch', but wraps them in a [[`NestedError`]] with the given message.\n\t */\n\twrapError(msg: string): FunPromise {\n\t\treturn this.catch(NestedError.rethrow(msg));\n\t}\n\n\t/**\n\t * Resolves all the elements of the resolved value, which is assumed to be an `Iterable`. If any\n\t * of the values reject, all the reasons are collected and wrapped in a [[`NestedError`]].\n\t */\n\twrapErrors(msg: string): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tlet errors = [];\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, (val) => Promise.resolve(val).catch((e) => errors.push(e)))\n\t\t\t);\n\t\t\tif (_isEmpty(errors)) {\n\t\t\t\treturn ary;\n\t\t\t} else {\n\t\t\t\tthrow new NestedError(msg, ...errors);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Cancel the FunPromise. A cancelled FunPromise will silently disregard any resolution or rejection which occurs after the cancellation.\n\t */\n\tcancel() {\n\t\tthis._isCancelled = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Returns whether or not the promise has been cancelled. See `cancel()` for more details.\n\t */\n\tisCancelled() {\n\t\treturn this._isCancelled;\n\t}\n\n\t/**\n\t * Captures either fulfillment or rejection and resolves an object that describes the result.\n\t */\n\tsettle(): FunPromise> {\n\t\treturn new FunPromise(\n\t\t\tthis.wrapped.then(\n\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Assuming that the resolved value is an iterable, then for each element of the\n\t * array, captures either the fulfillment or rejection of that element.\n\t */\n\tsettleAll(): FunPromise>[]> {\n\t\treturn new FunPromise(\n\t\t\tthis.arrayify().wrapped.then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(iterable).settleAll()`.\n\t */\n\tstatic settleAll(\n\t\titerable: PromisableIterable\n\t): FunPromise[]> {\n\t\treturn new FunPromise(\n\t\t\tPromise.resolve(iterable).then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n}\n"]} \ No newline at end of file diff --git a/dist/esm.index.js.xz b/dist/esm.index.js.xz index ae78eeabc304b2ce0ac0b940433952168ed60751..edbb7646cdb5b69174c14b65a711cdb844691c69 100644 GIT binary patch delta 424 zcmV;Z0ayOu1Kb81Ng%+HsQ+3kKjCZ_XFDBeqRaUe=?w}I@?Y%{_V*k zBQG(+ab|7`Ex}q68#F!e`t))wQwX{Y$;QMzh=|4XM$i&4X?7?T+h$M(i$Ju0&xw!N z7UZPFWt6A(+?XUd_jrj5)Q{Mxm--UYX-6qQ-cBY7EPcQ&{D1vms>ayq(HyoJ+ta4h z)OxH227~F$-isw{RHZSM{g!)ZFWZm*&yKDF-t_j@f;IAf6(+2h+e}fP~OcxXPtT>tpSCYJdqQN-r5s$(Wm#e z65Dr*DbE;?j3PfID>0Hq#*$O>@h1ntqKZjOst=9Amnvf@#^^XpFMk>23u^;xjCY%) z-TX!KeJiW;z(P`{hRG&KrJpFvg8GaV$Y@|3?UnT>03iT!U;k^z%~fjv0lWi%Pyhgk S%fkw%#R`tt;{MrK;5h^4z3u8sC*Z1BOG2ytIK`3>^-v3x zR%#8f$YE&k^&b&$CRXVQ^UYvKeCzkb@Fz+t)Ys zS%?1G{9sW$d8XJyHNSGiY}l_VO)zc9@4i~;ZmNCbiNMI>u7BVPPRV+aWRdDN@S!}e z$QLB0%0py`Z#bvL{78(d+f&gI_%kwuJlOQYrlZ2k8^>=9*-y1DNfahEb^ELmuYy|M z`7WU9fCzx>$uXy9`c`uqJsuk-A~cq#c(etqm&`UkU6xM97A~fE4|ih3&nWt`l;Xn)ln|AK^te3beOwZx5B52|-19mzQi(xJzudvs%Ez^qk})`cUhL^Ve{ zyXIwUH!)>_VMI{hlE&bBU2i>8pN9OaW9+mhsbxq*zIz4GIQokuOb0gQuad5nA5)`D zwqxZ|1ts^>?wW0SpG9TWD=gpI+cAIl2vPEK!5O4f03iT65246SY};S}0lWi%Pyhgk Suvgyc~T2mB1ZJMw}eQ z0xcbGjvFZQBi?tc?S};jJtWeD0=7WlZU%cq8Z

    hKrsBS6g_ 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 O#Ao{g000001X)_@Z0k$_ literal 13844 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 Wzy|;%J(3Ht#Ao{g000001X)_Iu-DT7 diff --git a/dist/esnext.index.js.xz b/dist/esnext.index.js.xz index 290340dac0359e2a5a14242207cb560c09d2b6c8..100f7dc0edb6ff8c1866e86a547e09498413302e 100644 GIT binary patch delta 429 zcmV;e0aE_t1Km(V5Vz zVwO;6^P;DtTXZ8`%_Al)k$K9fV-MES@^Oo<6J51ZGVy*&+yEf}LtWZ(Z01`x00F!M XfKUJch~*e)vBYQl0ssI200dcDYK_X? delta 433 zcmV;i0Z#tl1LOmc908$`9VLGrz{|r5r>=rlM~LW!Q+!#PakvbnbR%ih%McAU0w_x3 ztGkR4;igOAl&!nzpJwqX1DEg$1)r$Zt#^Owr9)ubaTf$1CG#eyIir!pvrZ#z9~gDY z*x$|SS*doMPnwIy1Ycklfho!U1J$cF`0yCR=&n4Lu|mKs;y?{(v=@IhD^=c&jv1|) zWo}K8_>vGwH0uw-Yv3K3>)r(1dnGs6_OG2lKuy6{@$l&`y68O0N4JVICv6*3ED-PG zk7JCLI+b{TBnN-Y`$&X#)PX}friUnBQb0FI1xlV^nveU5piMb|TjkNj6B$usWFy^R z+M!Q;NFzP2p@Z0@@Hl_L^PPoOA37O-Xs`leN2e01pTPHe6iX@tk799*+bns8vi?18 zC3cmPT$;^hEBjE-Z*#l~!4zK?f1XcD1<;PnF-=+fg!TbMXdy-YTG#KH0U40#;c@n~ zsyN7$X6W`}lL}17;HfolKj_asZwXJn#4&Y#m(vBYQl0ssI200dcDUx>?; diff --git a/dist/esnext/src/fun-promise.d.ts b/dist/esnext/src/fun-promise.d.ts index 23424f3..7e7a713 100644 --- a/dist/esnext/src/fun-promise.d.ts +++ b/dist/esnext/src/fun-promise.d.ts @@ -26,7 +26,7 @@ export default class FunPromise implements Promise { /** * Constructor, which takes the promise to wrap. */ - constructor(wrapped: Promise); + constructor(wrapped: Promisable); /** * Takes a value (or a promise of a value) and returns a promise wrapping * it. diff --git a/dist/esnext/src/fun-promise.d.ts.map b/dist/esnext/src/fun-promise.d.ts.map index 23e99ed..6441e7e 100644 --- a/dist/esnext/src/fun-promise.d.ts.map +++ b/dist/esnext/src/fun-promise.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"fun-promise.d.ts","sourceRoot":"","sources":["../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"fun-promise.d.ts","sourceRoot":"","sources":["../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/esnext/src/fun-promise.js.map b/dist/esnext/src/fun-promise.js.map index 61e1654..68f86f9 100644 --- a/dist/esnext/src/fun-promise.js.map +++ b/dist/esnext/src/fun-promise.js.map @@ -1 +1 @@ -{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../src/fun-promise.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @format\n */\n\n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n\nimport {\n\tPromisable,\n\tPromisableIterable,\n\tUnpromise,\n\tItem,\n\tSettlement,\n\tFulfillment,\n\tRejection,\n} from \"./types\";\nimport { NestedError } from \"ts-nested-error\";\n\nimport _defer from \"lodash/defer\";\nimport _delay from \"lodash/delay\";\nimport _filter from \"lodash/filter\";\nimport _flatten from \"lodash/flatten\";\nimport _identity from \"lodash/identity\";\nimport _isEmpty from \"lodash/isEmpty\";\nimport _isError from \"lodash/isError\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _map from \"lodash/map\";\nimport _negate from \"lodash/negate\";\nimport _noop from \"lodash/noop\";\nimport _toArray from \"lodash/toArray\";\n\n// import Debug from \"debug\";\n// const debug = Debug(\"fun-promises\");\n\n/**\n * The class that you should use instead of `Promise`. It implements the `Promise` API, so it should be a drop-in replacement.\n */\nexport default class FunPromise implements Promise {\n\t/**\n\t * Whether or not this FunPromise has been cancelled.\n\t */\n\tprivate _isCancelled: boolean = false;\n\n\t/**\n\t * The promise that was wrapped after attaching our custom logic.\n\t */\n\tprotected readonly wrapped: Promise;\n\n\t/**\n\t * Constructor, which takes the promise to wrap.\n\t */\n\tconstructor(wrapped: Promise) {\n\t\tthis.wrapped = new Promise(async (resolve, reject) => {\n\t\t\tlet resolved = null;\n\t\t\ttry {\n\t\t\t\tresolved = await wrapped;\n\t\t\t} catch (e) {\n\t\t\t\tif (this._isCancelled) return;\n\t\t\t\treject(e);\n\t\t\t}\n\t\t\tif (this._isCancelled) return;\n\t\t\tresolve(resolved);\n\t\t});\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise wrapping\n\t * it.\n\t */\n\tstatic resolve(value?: Promisable): FunPromise {\n\t\tif (value instanceof FunPromise) {\n\t\t\treturn value as FunPromise;\n\t\t} else if (value instanceof Promise) {\n\t\t\treturn new FunPromise(value);\n\t\t} else {\n\t\t\treturn new FunPromise(new Promise((resolve) => resolve(value)));\n\t\t}\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and resolves to the new value,\n\t * disregarding any previous resolution value.\n\t */\n\tresolve(value?: Promisable): FunPromise {\n\t\treturn new FunPromise(this.wrapped.then(() => value));\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for consistency with the instance `return` method.\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\tstatic return(value?: Promisable): FunPromise {\n\t\treturn FunPromise.resolve(value);\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for compatibility with [the Bluebird API|http://bluebirdjs.com/docs/api/return.html].\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\treturn(value?: Promisable): FunPromise {\n\t\treturn this.resolve(value);\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary.\n\t */\n\tstatic reject(value?: unknown): FunPromise {\n\t\treturn new FunPromise(Promise.reject(value));\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary. This disregards any existing status.\n\t */\n\treject(value?: unknown): FunPromise {\n\t\treturn FunPromise.reject(value);\n\t}\n\n\t/**\n\t * Attaches callbacks for the resolution and/or rejection of the Promise.\n\t * @param onfulfilled The optional callback to execute when the Promise is resolved.\n\t * @param onrejected The optional callback to execute when the Promise is rejected. If provided, the result of this callback is the new resolution value, and this promise is resolved, not rejected.\n\t * @returns A Promise for the completion of which ever callback is executed.\n\t */\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected: (reason: unknown) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected?: (reason: unknown) => Promisable\n\t): FunPromise {\n\t\tif (_isNil(onrejected)) {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled));\n\t\t} else {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled, onrejected));\n\t\t}\n\t}\n\n\t/**\n\t * Attaches a callback for only the rejection of the Promise. If the callback throws, then throws a [[`NestedError`]] with\n\t * both the original rejection reason and the new thrown value.\n\t *\n\t * @param onrejected The callback to execute when the Promise is rejected.\n\t * @returns A Promise for the completion of the callback.\n\t */\n\tcatch(\n\t\tonrejected: (reason: unknown) => Promisable = _identity\n\t): FunPromise {\n\t\treturn new FunPromise(this.wrapped.catch(onrejected));\n\t}\n\n\t/**\n\t * Creates a Promise that is resolved with an array of results when all of the\n\t * provided Promises resolve, or rejected when any Promise is rejected.\n\t * @param values An array of Promises.\n\t * @returns A new Promise.\n\t */\n\tstatic all(values: PromisableIterable): FunPromise;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3, T4]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable]\n\t): FunPromise<[T1, T2]>;\n\tstatic all(values: [Promisable]): FunPromise<[T1]>;\n\tstatic all(...values: any[]): any {\n\t\treturn FunPromise.resolve(_flatten(values)).all();\n\t}\n\tall(): FunPromise[]> {\n\t\treturn this.arrayify(true);\n\t}\n\n\t/**\n\t * Given a function (or a promise of a function) that returns a value (or a promise of a value),\n\t * create a promise that executes the function and returns the value. If executing the function\n\t * throws an exception, then that exception becomes the rejection of the promise.\n\t *\n\t * Any arguments after the first will be passed into the function when it is invoked. If they are\n\t * a `PromiseLike`, then they will be resolved and the resolution value will be passed into the\n\t * function instead.\n\t *\n\t * This function is really useful in the following cases:\n\t * 1. to [avoid releasing Zalgo](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n\t * 2. when you want to create a `FunPromise` based on an `async` function\n\t * 3. when you want to create a `FunPromise` based on a normal function\n\t */\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7,\n\t\t\t\targ8: Arg8\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable,\n\t\targ8: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(arg1: Arg1, arg2: Arg2, arg3: Arg3, arg4: Arg4) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2, arg3: Arg3) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1) => Promisable>,\n\t\targ1: Promisable\n\t): FunPromise;\n\tstatic try(source: Promisable<() => Promisable>): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(...args: ArgT[]) => Promisable>,\n\t\t...args: ArgT[]\n\t): FunPromise {\n\t\treturn FunPromise.resolve(source).then((f) => {\n\t\t\tif (_isEmpty(args)) {\n\t\t\t\treturn f();\n\t\t\t} else {\n\t\t\t\treturn Promise.all(args).then((realArgs) => f(...realArgs));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Unwraps layers of `PromiseLike` wrappers as necessary.\n\t *\n\t * This behavior is actually part of the Promise/A+ spec, but the type system struggles with that fact,\n\t * so this method is a workaround.\n\t *\n\t * In a future version of this library, `FunPromise` will extend `Promise>` instead of\n\t * just `Promise`, which will render this method irrelevant. Unfortunately, Typescript's type system\n\t * doesn't seem capable of handling that reality quite yet, so this is what we get.\n\t */\n\tsimplify(): FunPromise> {\n\t\treturn (this as unknown) as FunPromise>;\n\t}\n\n\t/**\n\t * For each element of the resolved iterable, unwraps layers of `PromiseLike` wrappers as necessary.\n\t */\n\tsimplifyAll(): FunPromise>[]> {\n\t\treturn this.arrayify().map((it) => FunPromise.resolve(it).simplify());\n\t}\n\n\t/**\n\t * Coerces the resolve value (which must be an `Iterable`) into an array. The `Iterable` requirement\n\t * comes from the `Item` return value: `Item` is equivalent to `never` if `T` is not an `Iterable`.\n\t *\n\t * Note that this function does *NOT* resolve the items within the array unless you pass the first argument\n\t * as `true`. The items are not resolved sequentially unless you also pass a second argument as `true`.\n\t */\n\tarrayify(\n\t\tresolveValues: boolean = false,\n\t\tsequentialResolution: boolean = false\n\t): FunPromise[]> {\n\t\tconst aryPromise: FunPromise[]> = this.then((iter) => [\n\t\t\t...((iter as unknown) as Iterable>),\n\t\t]);\n\t\tif (resolveValues) {\n\t\t\tif (sequentialResolution) {\n\t\t\t\treturn aryPromise.then(async (ary) => {\n\t\t\t\t\tconst results = [];\n\t\t\t\t\twhile (!_isEmpty(ary)) {\n\t\t\t\t\t\tresults.push(await ary.shift());\n\t\t\t\t\t}\n\t\t\t\t\treturn results;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn aryPromise.then((ary) => Promise.all(ary));\n\t\t\t}\n\t\t} else {\n\t\t\treturn aryPromise;\n\t\t}\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the results of the mapping. If any of the mapping results are rejected,\n\t * the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed. For example, although the\n\t * output at index 0 will hold the mapping of the input element at index 0, it is not guaranteed that\n\t * the mapping of index 0 will be awaited before the mapping of index 1.\n\t */\n\tmap>(mapper: (it: Item) => Promisable): FunPromise {\n\t\tconst results = [];\n\t\treturn FunPromise.try(async () => {\n\t\t\tawait Promise.all(\n\t\t\t\t_map(await this.arrayify(), async (value, idx) => {\n\t\t\t\t\tresults[idx] = await mapper(await value);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn results;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).map(mapper)`.\n\t */\n\tstatic map(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).map(mapper);\n\t}\n\n\t/**\n\t * Required to implement `Promise`, but you almost certainly don't care about it.\n\t *\n\t * All the same, it returns the string tag of the underlying promise.\n\t */\n\tget [Symbol.toStringTag]() {\n\t\treturn this.wrapped[Symbol.toStringTag];\n\t}\n\n\t/**\n\t * Executes the provided code whether the promise rejects or resolves.\n\t */\n\tfinally(): FunPromise;\n\tfinally(onfinally: () => void): FunPromise;\n\tfinally(onfinally?) {\n\t\tif (_isFunction(onfinally)) {\n\t\t\treturn new FunPromise(this.wrapped.finally(onfinally));\n\t\t} else {\n\t\t\treturn this;\n\t\t}\n\t}\n\n\t/**\n\t * Given a [[`PromisableIterable`]] whose values are nullary functions returning [[Promisable|`Promisable`]],\n\t * this executes all the functions simultaneously and returns the first whose return value passes the provided test.\n\t * The default test returns true if the value is not `null` or `undefined`.\n\t *\n\t * If no function resolves successfully, the last seen rejection is thrown. If some functions resolve but some reject,\n\t * and none of the resolved values pass the test, then the last seen rejection is thrown.\n\t *\n\t * If all the functions resolve but to a value but no value passes the test, then this rejects with an error saying as much.\n\t */\n\tstatic coalesce(\n\t\tfns: PromisableIterable<() => Promisable>,\n\t\ttest: (item: T) => Promisable = _negate(_isNil)\n\t): FunPromise {\n\t\tlet resolved = false;\n\t\tlet lastSeenReason: unknown = new Error(\"No values left after coalescing\");\n\t\tlet resolveValue;\n\t\treturn FunPromise.map(fns, (fn) =>\n\t\t\tFunPromise.try(fn)\n\t\t\t\t.then((result) => {\n\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\treturn FunPromise.try(test, result).then((testResult) => {\n\t\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\t\tif (testResult) {\n\t\t\t\t\t\t\tresolved = true;\n\t\t\t\t\t\t\tresolveValue = result;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tlastSeenReason = e;\n\t\t\t\t})\n\t\t).then(() => {\n\t\t\tif (resolved) {\n\t\t\t\treturn resolveValue;\n\t\t\t} else {\n\t\t\t\tthrow lastSeenReason;\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tstatic delay(waitTimeMs: number): FunPromise;\n\tstatic delay(\n\t\twaitTimeMs: number,\n\t\treturnValue: Promisable\n\t): FunPromise;\n\tstatic delay(waitTimeMs, returnValue?) {\n\t\treturn FunPromise.resolve().delay(waitTimeMs, returnValue);\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tdelay(\n\t\twaitTimeMs: number,\n\t\treturnValue?: Promisable\n\t): FunPromise {\n\t\tif (waitTimeMs <= 0) {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _defer(resolve, returnValue))\n\t\t\t);\n\t\t} else {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _delay(resolve, waitTimeMs, returnValue))\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Given a filtering function, apply the filtering function to each element of the promise's resolved value,\n\t * and return an array with the values for which the filtering function returns `true`. If any of the filtering\n\t * results are rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result are stable with regard to the order of the elements in the promise's\n\t * resolved value. That is, if `X < Y` and `input[X]` and `input[Y]` are both in the input, and `input[X]` and\n\t * `input[Y]` both pass the filtering function, then the output index of `input[X]` will be less than the output\n\t * index of `input[Y]`. However, the resolution order is not guaranteed: that is, `input[Y]` may be resolved and\n\t * tested before `input[X]` even though `input[X]` has a lower output index than `input[Y]`.\n\t */\n\tfilter(test: (it: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tconst results = await FunPromise.map(ary, async (it) => test(await it));\n\t\t\t// @ts-ignore\n\t\t\treturn _filter(ary, (it, idx) => results[idx]);\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(items).filter(test)`.\n\t */\n\tstatic filter(\n\t\titems: PromisableIterable,\n\t\ttest: (it: Item>) => Promisable\n\t): FunPromise>[]> {\n\t\treturn FunPromise.resolve(items).filter(test);\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the concatenated results of the mapping. If any of the mapping results are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed.\n\t */\n\tflatMap>(\n\t\tmapper: (it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tconst promises: Array>> = _map(ary, async (value) =>\n\t\t\t\tmapper(await value)\n\t\t\t);\n\t\t\tconst resolved: T2[][] = await Promise.all(promises);\n\t\t\tconst flattened: T2[] = _flatten(resolved);\n\t\t\treturn flattened;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).flatMap(mapper)`.\n\t */\n\tstatic flatMap(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).flatMap(mapper);\n\t}\n\n\t/**\n\t * Access the resolved value without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttap(callback: (val: T) => Promisable): FunPromise {\n\t\treturn this.then(async (val) => {\n\t\t\tawait callback(val);\n\t\t\treturn val;\n\t\t});\n\t}\n\n\t/**\n\t * Access the rejection reason without changing it. Note that if the callback itself rejects (ie: throws),\n\t * both rejection reasons will be capture in a single [[`NestedError`]].\n\t */\n\ttapCatch(callback: (reason: unknown) => Promisable): FunPromise {\n\t\treturn this.catch(async (err) => {\n\t\t\ttry {\n\t\t\t\tawait callback(err);\n\t\t\t} catch (err2) {\n\t\t\t\tthrow new NestedError(\"Error thrown in 'tapCatch'\", err, err2);\n\t\t\t}\n\t\t\tthrow err;\n\t\t});\n\t}\n\n\t/**\n\t * Access each of the resolved values of a resolved iterable without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttapEach(callback: (val: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify(true).tap(async (ary) => {\n\t\t\tawait Promise.all(_map(ary, callback));\n\t\t});\n\t}\n\n\t/**\n\t * Given an initial value and an accumulator function, apply the accumlator function to each element of the promise's resolved value,\n\t * passing in the current value and the result. Returns an array with the result of the accumulation. If any of the promise's values are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The resolution order is not guaranteed. The accumulator function will be passed values as those values resolve.\n\t */\n\tfold>(\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tlet memoPromise = FunPromise.resolve(initialValue);\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, async (promisableValue) => {\n\t\t\t\t\tconst value = await promisableValue;\n\t\t\t\t\tmemoPromise = memoPromise.then((memo) => accumulator(memo, value));\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn await memoPromise;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).fold(initialValue, accumulator)`.\n\t */\n\tstatic fold(\n\t\tvalues: PromisableIterable,\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).fold(initialValue, accumulator);\n\t}\n\n\t/**\n\t * Handles rejections like 'catch', but wraps them in a [[`NestedError`]] with the given message.\n\t */\n\twrapError(msg: string): FunPromise {\n\t\treturn this.catch(NestedError.rethrow(msg));\n\t}\n\n\t/**\n\t * Resolves all the elements of the resolved value, which is assumed to be an `Iterable`. If any\n\t * of the values reject, all the reasons are collected and wrapped in a [[`NestedError`]].\n\t */\n\twrapErrors(msg: string): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tlet errors = [];\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, (val) => Promise.resolve(val).catch((e) => errors.push(e)))\n\t\t\t);\n\t\t\tif (_isEmpty(errors)) {\n\t\t\t\treturn ary;\n\t\t\t} else {\n\t\t\t\tthrow new NestedError(msg, ...errors);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Cancel the FunPromise. A cancelled FunPromise will silently disregard any resolution or rejection which occurs after the cancellation.\n\t */\n\tcancel() {\n\t\tthis._isCancelled = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Returns whether or not the promise has been cancelled. See `cancel()` for more details.\n\t */\n\tisCancelled() {\n\t\treturn this._isCancelled;\n\t}\n\n\t/**\n\t * Captures either fulfillment or rejection and resolves an object that describes the result.\n\t */\n\tsettle(): FunPromise> {\n\t\treturn new FunPromise(\n\t\t\tthis.wrapped.then(\n\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Assuming that the resolved value is an iterable, then for each element of the\n\t * array, captures either the fulfillment or rejection of that element.\n\t */\n\tsettleAll(): FunPromise>[]> {\n\t\treturn new FunPromise(\n\t\t\tthis.arrayify().wrapped.then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(iterable).settleAll()`.\n\t */\n\tstatic settleAll(\n\t\titerable: PromisableIterable\n\t): FunPromise[]> {\n\t\treturn new FunPromise(\n\t\t\tPromise.resolve(iterable).then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n}\n"]} \ No newline at end of file +{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../src/fun-promise.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @format\n */\n\n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n\nimport {\n\tPromisable,\n\tPromisableIterable,\n\tUnpromise,\n\tItem,\n\tSettlement,\n\tFulfillment,\n\tRejection,\n} from \"./types\";\nimport { NestedError } from \"ts-nested-error\";\n\nimport _defer from \"lodash/defer\";\nimport _delay from \"lodash/delay\";\nimport _filter from \"lodash/filter\";\nimport _flatten from \"lodash/flatten\";\nimport _identity from \"lodash/identity\";\nimport _isEmpty from \"lodash/isEmpty\";\nimport _isError from \"lodash/isError\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _map from \"lodash/map\";\nimport _negate from \"lodash/negate\";\nimport _noop from \"lodash/noop\";\nimport _toArray from \"lodash/toArray\";\n\n// import Debug from \"debug\";\n// const debug = Debug(\"fun-promises\");\n\n/**\n * The class that you should use instead of `Promise`. It implements the `Promise` API, so it should be a drop-in replacement.\n */\nexport default class FunPromise implements Promise {\n\t/**\n\t * Whether or not this FunPromise has been cancelled.\n\t */\n\tprivate _isCancelled: boolean = false;\n\n\t/**\n\t * The promise that was wrapped after attaching our custom logic.\n\t */\n\tprotected readonly wrapped: Promise;\n\n\t/**\n\t * Constructor, which takes the promise to wrap.\n\t */\n\tconstructor(wrapped: Promisable) {\n\t\tthis.wrapped = new Promise(async (resolve, reject) => {\n\t\t\tlet resolved = null;\n\t\t\ttry {\n\t\t\t\tresolved = await wrapped;\n\t\t\t} catch (e) {\n\t\t\t\tif (this._isCancelled) return;\n\t\t\t\treject(e);\n\t\t\t}\n\t\t\tif (this._isCancelled) return;\n\t\t\tresolve(resolved);\n\t\t});\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise wrapping\n\t * it.\n\t */\n\tstatic resolve(value?: Promisable): FunPromise {\n\t\tif (value instanceof FunPromise) {\n\t\t\treturn value as FunPromise;\n\t\t} else if (value instanceof Promise) {\n\t\t\treturn new FunPromise(value);\n\t\t} else {\n\t\t\treturn new FunPromise(new Promise((resolve) => resolve(value)));\n\t\t}\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and resolves to the new value,\n\t * disregarding any previous resolution value.\n\t */\n\tresolve(value?: Promisable): FunPromise {\n\t\treturn new FunPromise(this.wrapped.then(() => value));\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for consistency with the instance `return` method.\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\tstatic return(value?: Promisable): FunPromise {\n\t\treturn FunPromise.resolve(value);\n\t}\n\n\t/**\n\t * An alias for `resolve` provided for compatibility with [the Bluebird API|http://bluebirdjs.com/docs/api/return.html].\n\t *\n\t * @deprecated Use `resolve` instead.\n\t */\n\treturn(value?: Promisable): FunPromise {\n\t\treturn this.resolve(value);\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary.\n\t */\n\tstatic reject(value?: unknown): FunPromise {\n\t\treturn new FunPromise(Promise.reject(value));\n\t}\n\n\t/**\n\t * Takes a value (or a promise of a value) and returns a promise rejecting\n\t * with that value, after unwrapping as many layers of `PromiseLike`\n\t * wrappers as necessary. This disregards any existing status.\n\t */\n\treject(value?: unknown): FunPromise {\n\t\treturn FunPromise.reject(value);\n\t}\n\n\t/**\n\t * Attaches callbacks for the resolution and/or rejection of the Promise.\n\t * @param onfulfilled The optional callback to execute when the Promise is resolved.\n\t * @param onrejected The optional callback to execute when the Promise is rejected. If provided, the result of this callback is the new resolution value, and this promise is resolved, not rejected.\n\t * @returns A Promise for the completion of which ever callback is executed.\n\t */\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected: (reason: unknown) => Promisable\n\t): FunPromise;\n\tthen(\n\t\tonfulfilled: (value: T) => Promisable,\n\t\tonrejected?: (reason: unknown) => Promisable\n\t): FunPromise {\n\t\tif (_isNil(onrejected)) {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled));\n\t\t} else {\n\t\t\treturn new FunPromise(this.wrapped.then(onfulfilled, onrejected));\n\t\t}\n\t}\n\n\t/**\n\t * Attaches a callback for only the rejection of the Promise. If the callback throws, then throws a [[`NestedError`]] with\n\t * both the original rejection reason and the new thrown value.\n\t *\n\t * @param onrejected The callback to execute when the Promise is rejected.\n\t * @returns A Promise for the completion of the callback.\n\t */\n\tcatch(\n\t\tonrejected: (reason: unknown) => Promisable = _identity\n\t): FunPromise {\n\t\treturn new FunPromise(this.wrapped.catch(onrejected));\n\t}\n\n\t/**\n\t * Creates a Promise that is resolved with an array of results when all of the\n\t * provided Promises resolve, or rejected when any Promise is rejected.\n\t * @param values An array of Promises.\n\t * @returns A new Promise.\n\t */\n\tstatic all(values: PromisableIterable): FunPromise;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7, T8]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6, T7]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5, T6]>;\n\tstatic all(\n\t\tvalues: [\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable,\n\t\t\tPromisable\n\t\t]\n\t): FunPromise<[T1, T2, T3, T4, T5]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3, T4]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable, Promisable]\n\t): FunPromise<[T1, T2, T3]>;\n\tstatic all(\n\t\tvalues: [Promisable, Promisable]\n\t): FunPromise<[T1, T2]>;\n\tstatic all(values: [Promisable]): FunPromise<[T1]>;\n\tstatic all(...values: any[]): any {\n\t\treturn FunPromise.resolve(_flatten(values)).all();\n\t}\n\tall(): FunPromise[]> {\n\t\treturn this.arrayify(true);\n\t}\n\n\t/**\n\t * Given a function (or a promise of a function) that returns a value (or a promise of a value),\n\t * create a promise that executes the function and returns the value. If executing the function\n\t * throws an exception, then that exception becomes the rejection of the promise.\n\t *\n\t * Any arguments after the first will be passed into the function when it is invoked. If they are\n\t * a `PromiseLike`, then they will be resolved and the resolution value will be passed into the\n\t * function instead.\n\t *\n\t * This function is really useful in the following cases:\n\t * 1. to [avoid releasing Zalgo](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n\t * 2. when you want to create a `FunPromise` based on an `async` function\n\t * 3. when you want to create a `FunPromise` based on a normal function\n\t */\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7,\n\t\t\t\targ8: Arg8\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable,\n\t\targ8: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6,\n\t\t\t\targ7: Arg7\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable,\n\t\targ7: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5,\n\t\t\t\targ6: Arg6\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable,\n\t\targ6: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(\n\t\t\t\targ1: Arg1,\n\t\t\t\targ2: Arg2,\n\t\t\t\targ3: Arg3,\n\t\t\t\targ4: Arg4,\n\t\t\t\targ5: Arg5\n\t\t\t) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable,\n\t\targ5: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<\n\t\t\t(arg1: Arg1, arg2: Arg2, arg3: Arg3, arg4: Arg4) => Promisable\n\t\t>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable,\n\t\targ4: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2, arg3: Arg3) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable,\n\t\targ3: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1, arg2: Arg2) => Promisable>,\n\t\targ1: Promisable,\n\t\targ2: Promisable\n\t): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(arg1: Arg1) => Promisable>,\n\t\targ1: Promisable\n\t): FunPromise;\n\tstatic try(source: Promisable<() => Promisable>): FunPromise;\n\tstatic try(\n\t\tsource: Promisable<(...args: ArgT[]) => Promisable>,\n\t\t...args: ArgT[]\n\t): FunPromise {\n\t\treturn FunPromise.resolve(source).then((f) => {\n\t\t\tif (_isEmpty(args)) {\n\t\t\t\treturn f();\n\t\t\t} else {\n\t\t\t\treturn Promise.all(args).then((realArgs) => f(...realArgs));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Unwraps layers of `PromiseLike` wrappers as necessary.\n\t *\n\t * This behavior is actually part of the Promise/A+ spec, but the type system struggles with that fact,\n\t * so this method is a workaround.\n\t *\n\t * In a future version of this library, `FunPromise` will extend `Promise>` instead of\n\t * just `Promise`, which will render this method irrelevant. Unfortunately, Typescript's type system\n\t * doesn't seem capable of handling that reality quite yet, so this is what we get.\n\t */\n\tsimplify(): FunPromise> {\n\t\treturn (this as unknown) as FunPromise>;\n\t}\n\n\t/**\n\t * For each element of the resolved iterable, unwraps layers of `PromiseLike` wrappers as necessary.\n\t */\n\tsimplifyAll(): FunPromise>[]> {\n\t\treturn this.arrayify().map((it) => FunPromise.resolve(it).simplify());\n\t}\n\n\t/**\n\t * Coerces the resolve value (which must be an `Iterable`) into an array. The `Iterable` requirement\n\t * comes from the `Item` return value: `Item` is equivalent to `never` if `T` is not an `Iterable`.\n\t *\n\t * Note that this function does *NOT* resolve the items within the array unless you pass the first argument\n\t * as `true`. The items are not resolved sequentially unless you also pass a second argument as `true`.\n\t */\n\tarrayify(\n\t\tresolveValues: boolean = false,\n\t\tsequentialResolution: boolean = false\n\t): FunPromise[]> {\n\t\tconst aryPromise: FunPromise[]> = this.then((iter) => [\n\t\t\t...((iter as unknown) as Iterable>),\n\t\t]);\n\t\tif (resolveValues) {\n\t\t\tif (sequentialResolution) {\n\t\t\t\treturn aryPromise.then(async (ary) => {\n\t\t\t\t\tconst results = [];\n\t\t\t\t\twhile (!_isEmpty(ary)) {\n\t\t\t\t\t\tresults.push(await ary.shift());\n\t\t\t\t\t}\n\t\t\t\t\treturn results;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn aryPromise.then((ary) => Promise.all(ary));\n\t\t\t}\n\t\t} else {\n\t\t\treturn aryPromise;\n\t\t}\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the results of the mapping. If any of the mapping results are rejected,\n\t * the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed. For example, although the\n\t * output at index 0 will hold the mapping of the input element at index 0, it is not guaranteed that\n\t * the mapping of index 0 will be awaited before the mapping of index 1.\n\t */\n\tmap>(mapper: (it: Item) => Promisable): FunPromise {\n\t\tconst results = [];\n\t\treturn FunPromise.try(async () => {\n\t\t\tawait Promise.all(\n\t\t\t\t_map(await this.arrayify(), async (value, idx) => {\n\t\t\t\t\tresults[idx] = await mapper(await value);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn results;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).map(mapper)`.\n\t */\n\tstatic map(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).map(mapper);\n\t}\n\n\t/**\n\t * Required to implement `Promise`, but you almost certainly don't care about it.\n\t *\n\t * All the same, it returns the string tag of the underlying promise.\n\t */\n\tget [Symbol.toStringTag]() {\n\t\treturn this.wrapped[Symbol.toStringTag];\n\t}\n\n\t/**\n\t * Executes the provided code whether the promise rejects or resolves.\n\t */\n\tfinally(): FunPromise;\n\tfinally(onfinally: () => void): FunPromise;\n\tfinally(onfinally?) {\n\t\tif (_isFunction(onfinally)) {\n\t\t\treturn new FunPromise(this.wrapped.finally(onfinally));\n\t\t} else {\n\t\t\treturn this;\n\t\t}\n\t}\n\n\t/**\n\t * Given a [[`PromisableIterable`]] whose values are nullary functions returning [[Promisable|`Promisable`]],\n\t * this executes all the functions simultaneously and returns the first whose return value passes the provided test.\n\t * The default test returns true if the value is not `null` or `undefined`.\n\t *\n\t * If no function resolves successfully, the last seen rejection is thrown. If some functions resolve but some reject,\n\t * and none of the resolved values pass the test, then the last seen rejection is thrown.\n\t *\n\t * If all the functions resolve but to a value but no value passes the test, then this rejects with an error saying as much.\n\t */\n\tstatic coalesce(\n\t\tfns: PromisableIterable<() => Promisable>,\n\t\ttest: (item: T) => Promisable = _negate(_isNil)\n\t): FunPromise {\n\t\tlet resolved = false;\n\t\tlet lastSeenReason: unknown = new Error(\"No values left after coalescing\");\n\t\tlet resolveValue;\n\t\treturn FunPromise.map(fns, (fn) =>\n\t\t\tFunPromise.try(fn)\n\t\t\t\t.then((result) => {\n\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\treturn FunPromise.try(test, result).then((testResult) => {\n\t\t\t\t\t\tif (resolved) return null;\n\t\t\t\t\t\tif (testResult) {\n\t\t\t\t\t\t\tresolved = true;\n\t\t\t\t\t\t\tresolveValue = result;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tlastSeenReason = e;\n\t\t\t\t})\n\t\t).then(() => {\n\t\t\tif (resolved) {\n\t\t\t\treturn resolveValue;\n\t\t\t} else {\n\t\t\t\tthrow lastSeenReason;\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tstatic delay(waitTimeMs: number): FunPromise;\n\tstatic delay(\n\t\twaitTimeMs: number,\n\t\treturnValue: Promisable\n\t): FunPromise;\n\tstatic delay(waitTimeMs, returnValue?) {\n\t\treturn FunPromise.resolve().delay(waitTimeMs, returnValue);\n\t}\n\n\t/**\n\t * Waits for `waitTimeMs` milliseconds before resolving. If `returnValue` is provided, resolves with the provided value.\n\t *\n\t * If `waitTimeMs` is less than or equal to zero, then it simply defers until the call stack is clear.\n\t */\n\tdelay(\n\t\twaitTimeMs: number,\n\t\treturnValue?: Promisable\n\t): FunPromise {\n\t\tif (waitTimeMs <= 0) {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _defer(resolve, returnValue))\n\t\t\t);\n\t\t} else {\n\t\t\treturn new FunPromise(\n\t\t\t\tnew Promise((resolve) => _delay(resolve, waitTimeMs, returnValue))\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Given a filtering function, apply the filtering function to each element of the promise's resolved value,\n\t * and return an array with the values for which the filtering function returns `true`. If any of the filtering\n\t * results are rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result are stable with regard to the order of the elements in the promise's\n\t * resolved value. That is, if `X < Y` and `input[X]` and `input[Y]` are both in the input, and `input[X]` and\n\t * `input[Y]` both pass the filtering function, then the output index of `input[X]` will be less than the output\n\t * index of `input[Y]`. However, the resolution order is not guaranteed: that is, `input[Y]` may be resolved and\n\t * tested before `input[X]` even though `input[X]` has a lower output index than `input[Y]`.\n\t */\n\tfilter(test: (it: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tconst results = await FunPromise.map(ary, async (it) => test(await it));\n\t\t\t// @ts-ignore\n\t\t\treturn _filter(ary, (it, idx) => results[idx]);\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(items).filter(test)`.\n\t */\n\tstatic filter(\n\t\titems: PromisableIterable,\n\t\ttest: (it: Item>) => Promisable\n\t): FunPromise>[]> {\n\t\treturn FunPromise.resolve(items).filter(test);\n\t}\n\n\t/**\n\t * Given a mapping function, apply the mapping function to each element of the promise's resolved value,\n\t * and return an array with the concatenated results of the mapping. If any of the mapping results are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The order of the elements in the result correspond to the order of the elements in the promise's\n\t * resolved value. However, the resolution order is not guaranteed.\n\t */\n\tflatMap>(\n\t\tmapper: (it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tconst promises: Array>> = _map(ary, async (value) =>\n\t\t\t\tmapper(await value)\n\t\t\t);\n\t\t\tconst resolved: T2[][] = await Promise.all(promises);\n\t\t\tconst flattened: T2[] = _flatten(resolved);\n\t\t\treturn flattened;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).flatMap(mapper)`.\n\t */\n\tstatic flatMap(\n\t\tvalues: PromisableIterable,\n\t\tmapper: (it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).flatMap(mapper);\n\t}\n\n\t/**\n\t * Access the resolved value without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttap(callback: (val: T) => Promisable): FunPromise {\n\t\treturn this.then(async (val) => {\n\t\t\tawait callback(val);\n\t\t\treturn val;\n\t\t});\n\t}\n\n\t/**\n\t * Access the rejection reason without changing it. Note that if the callback itself rejects (ie: throws),\n\t * both rejection reasons will be capture in a single [[`NestedError`]].\n\t */\n\ttapCatch(callback: (reason: unknown) => Promisable): FunPromise {\n\t\treturn this.catch(async (err) => {\n\t\t\ttry {\n\t\t\t\tawait callback(err);\n\t\t\t} catch (err2) {\n\t\t\t\tthrow new NestedError(\"Error thrown in 'tapCatch'\", err, err2);\n\t\t\t}\n\t\t\tthrow err;\n\t\t});\n\t}\n\n\t/**\n\t * Access each of the resolved values of a resolved iterable without changing it. Note that if the callback rejects (ie: throws),\n\t * then the resulting promise will be rejected.\n\t */\n\ttapEach(callback: (val: Item) => Promisable): FunPromise[]> {\n\t\treturn this.arrayify(true).tap(async (ary) => {\n\t\t\tawait Promise.all(_map(ary, callback));\n\t\t});\n\t}\n\n\t/**\n\t * Given an initial value and an accumulator function, apply the accumlator function to each element of the promise's resolved value,\n\t * passing in the current value and the result. Returns an array with the result of the accumulation. If any of the promise's values are\n\t * rejected, the entire operation will be rejected.\n\t *\n\t * The resolution order is not guaranteed. The accumulator function will be passed values as those values resolve.\n\t */\n\tfold>(\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: Item) => Promisable\n\t): FunPromise {\n\t\treturn this.arrayify().then(async (ary: Promisable>[]) => {\n\t\t\tlet memoPromise = FunPromise.resolve(initialValue);\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, async (promisableValue) => {\n\t\t\t\t\tconst value = await promisableValue;\n\t\t\t\t\tmemoPromise = memoPromise.then((memo) => accumulator(memo, value));\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn await memoPromise;\n\t\t});\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(values).fold(initialValue, accumulator)`.\n\t */\n\tstatic fold(\n\t\tvalues: PromisableIterable,\n\t\tinitialValue: T2,\n\t\taccumulator: (memo: T2, it: T) => Promisable\n\t): FunPromise {\n\t\treturn FunPromise.resolve(values).fold(initialValue, accumulator);\n\t}\n\n\t/**\n\t * Handles rejections like 'catch', but wraps them in a [[`NestedError`]] with the given message.\n\t */\n\twrapError(msg: string): FunPromise {\n\t\treturn this.catch(NestedError.rethrow(msg));\n\t}\n\n\t/**\n\t * Resolves all the elements of the resolved value, which is assumed to be an `Iterable`. If any\n\t * of the values reject, all the reasons are collected and wrapped in a [[`NestedError`]].\n\t */\n\twrapErrors(msg: string): FunPromise[]> {\n\t\treturn this.arrayify().then(async (ary) => {\n\t\t\tlet errors = [];\n\t\t\tawait Promise.all(\n\t\t\t\t_map(ary, (val) => Promise.resolve(val).catch((e) => errors.push(e)))\n\t\t\t);\n\t\t\tif (_isEmpty(errors)) {\n\t\t\t\treturn ary;\n\t\t\t} else {\n\t\t\t\tthrow new NestedError(msg, ...errors);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Cancel the FunPromise. A cancelled FunPromise will silently disregard any resolution or rejection which occurs after the cancellation.\n\t */\n\tcancel() {\n\t\tthis._isCancelled = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Returns whether or not the promise has been cancelled. See `cancel()` for more details.\n\t */\n\tisCancelled() {\n\t\treturn this._isCancelled;\n\t}\n\n\t/**\n\t * Captures either fulfillment or rejection and resolves an object that describes the result.\n\t */\n\tsettle(): FunPromise> {\n\t\treturn new FunPromise(\n\t\t\tthis.wrapped.then(\n\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Assuming that the resolved value is an iterable, then for each element of the\n\t * array, captures either the fulfillment or rejection of that element.\n\t */\n\tsettleAll(): FunPromise>[]> {\n\t\treturn new FunPromise(\n\t\t\tthis.arrayify().wrapped.then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Equivalent to `FunPromise.resolve(iterable).settleAll()`.\n\t */\n\tstatic settleAll(\n\t\titerable: PromisableIterable\n\t): FunPromise[]> {\n\t\treturn new FunPromise(\n\t\t\tPromise.resolve(iterable).then((ary) =>\n\t\t\t\tPromise.all(\n\t\t\t\t\t_map(ary, (val) =>\n\t\t\t\t\t\tPromise.resolve(val).then(\n\t\t\t\t\t\t\t(value) => new Fulfillment(value),\n\t\t\t\t\t\t\t(reason) => new Rejection(reason)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n}\n"]} \ No newline at end of file diff --git a/dist/node/v10/src/fun-promise.js.map b/dist/node/v10/src/fun-promise.js.map index 433adee..60f6867 100644 --- a/dist/node/v10/src/fun-promise.js.map +++ b/dist/node/v10/src/fun-promise.js.map @@ -1 +1 @@ -{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/node/v12/src/fun-promise.js.map b/dist/node/v12/src/fun-promise.js.map index 433adee..60f6867 100644 --- a/dist/node/v12/src/fun-promise.js.map +++ b/dist/node/v12/src/fun-promise.js.map @@ -1 +1 @@ -{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/node/v14/src/fun-promise.js.map b/dist/node/v14/src/fun-promise.js.map index 433adee..60f6867 100644 --- a/dist/node/v14/src/fun-promise.js.map +++ b/dist/node/v14/src/fun-promise.js.map @@ -1 +1 @@ -{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/react-native.index.js.xz b/dist/react-native.index.js.xz index 67eb0b4e7273afdad560b2f1f4fada9636319d82..171e174abbef988f4c1f19d35bef4b9be2a84195 100644 GIT binary patch delta 747 zcmV0MSpPt&W=ViWJ|pPp8m|smcQlWzV9=df51P?e-v4-3jR0XYmCxF z7sJdUykR^)+&?d9E=7X*ABd_`B~)?Nikhe^LvR;D_3~V6Cf!^h*q&c6rxwn2uSuZw zN-cK#AuqS2Mh;mi+VBL&TV{K!F;*B7*#<9{!LL&S_sOLR+O-nd=g9q7PCfDu8uG+C&#LEVhy3GjN+7@2)S(kjX^R zkmpgBM7Ev#wJE{p`9sgs2o5~17MOUI{VBMz6^Z7xaL)cpr$McyTO%fw=g^<=_=oMk z@`LZ^>%>02u7BLiPM)!A1-p)j3C0~h z(kV3ex^Hu>zp|}c)PGmt+M4`Lg53Op(8$8r>|LxDIC~`<=KVZH_U)FzRh(KDgD&stNgUG zTY!YejC<^y1ftZ%@N|T}jDy5e_JZvh$@|&()?m{ohyjL>5RZY#?~w+`E#q^0;nO*m zMsBQ002m(!Tf|`e+-i#0~oDBj|~6- delta 747 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 literal 7776 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 diff --git a/dist/react-native/src/fun-promise.js.map b/dist/react-native/src/fun-promise.js.map index 764d06a..9aa2c20 100644 --- a/dist/react-native/src/fun-promise.js.map +++ b/dist/react-native/src/fun-promise.js.map @@ -1 +1 @@ -{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"fun-promise.js","sourceRoot":"","sources":["../../../src/fun-promise.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/umd.index.js.xz b/dist/umd.index.js.xz index 5ac13b987ab9f72b44f3f5347bb9485323f303fa..079ae012ed95b6d51a10c87b20a6d98b80fb0054 100644 GIT binary patch delta 691 zcmV;k0!;nr1?UBk908?~9Vvg|l~|E!$TUH*HZ|fTl<+tl=p{MhPm`r)s4hJ1ycIdp z$SIwNujt2r(vE12rVh_B?7{lV=QFI%YjtH+KEqe`$o*fLT+~lPVs*)KWibm6O27D{ zQQpQEc)rlt4Ka*^9gA8#us|B^@*21@Hu{E-tI<+$JZBzho!RY)sMdcBQ*WsDp8L=k zGM{8n8*nKu)DN$h(b8Gm{uDx)KL8J|uZF5f3k{$1T{H2|QcZZlPd>vWA;JJ{$9d{^ z1^rJa2_%5?Lfg3(gIzP;z{B5Wt6@*TT{Z&I!fLZcA50`oa-{tJBoEd`iNC$n*iYA< z>C*_t_C9+-?(SGSIP`zcD|TH!B z$q(_7yeESMqrL$XY6v)Uh4vCO(_!G<_{zkw4jONzlq)IR*z|w#gny0BDFug)| z*qGp}PZzWL-Tu)+ec6e!a2Z+RBN_PkxQW5_Xh#DI)24XR{t^%$5kcmA){cHGBX|*V zdx}$P0aWNgGKYU)E*qe$qb*>nqoU+@LH`chd4&yFOjd_6sV@;8zo7EL?)q9U(v7>2 zyNR2xqo8XI2@>ZL5zjvvoQk_<8rwL*adjzBGPf`FzAFP^wrMb4b;OlIbWn6q;H<7e z^0|H7AGSR3{j;3#I+r=-=&XT=)XXl$S%jtk_RHJHHEi*vjEA4dxNP z(TT-_eR;2dZ{w)q2M)0?GTA-QHj3?ASeo}iS#x2pf@%tx+}}0speX4##XBZ20||J8 z^x0aEL-=E0FDHEs1<>zMqJ`2;xE2CcVK2hIC>3cdF+lIZab`srOvHb@3M~ZLHdv}7 zo)ET#F==kd_M}llIE;j+yEK0h;+Tq5`Wu;g=wM=6d6*5H=P1tK>I?AYVpv?2hc!&hcbiL7xUoZ4lw z!yA0AbeIA_-mL2^VpxC6A0!l?Z=^(y{lKj3FZR@jhSRd({j=cw(bnqWu7Ad0VU`+Q zyZe1&!&&i>Ea$P^N^a4d9Tb<;=ym}4{bV+1K?5dmJLgUWC}U>)RRRb>z+lhI1AN5} z_%~+ROLRas-LQp=L7%2Ijf>&0Uj>hOyuW|f@-4tsJ~~uEc#w zt$In_G;imtW&*E%_H6Bj5LjE(N+MbPd&DB2d_1lv;QJ?OWRisd0053lhu7w^`|tn( Z!v%m)002C%EFH1LXZr#G00004Sz1>cRW1Mk diff --git a/dist/umd.tar.xz b/dist/umd.tar.xz index 0295889b0cb89fbdbdf907727082f9ba9f794bfa..002ba339763396f142cb34b74d635cb750f9b20c 100644 GIT binary patch literal 14792 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 literal 14792 zcmV;(IXA}rH+ooF000E$*0e?f03iVu0001VFXf}*-~Ty=T>uvgyc~T2mB1ZJMw}eQ z0xcbGjvFZQBi?tc?e)ssr*VP!ygcE�?>0m2;K9E^@@F;42x^vwc~{U{8KZXDI*$ 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 delta 747 zcmV0MSpO|y@D&Vs+u;<{FUxALA54nNdmgCYE!ey)!+O35RY=K;!CvL zPk-S>_YRVk(RBbep1<%zW2ZN3RnZxO{EekAEO9p}9ffP1My_K=lhWQj zzH?PLqSH16=^))ZbOCKspe9a+TR?T;(BWSOR|f!g&_g{3_kVMKeKSyS+Tkxa9?TRy z|652qr{)D0+v;MFXqXkk*Zery`?fiO9u2%rr8_!d=}xRiE#)1{F%Zbb#=ApbqAMe3 zUhSruONEvwz!uJ=oR7oi7U&6{TQzDYx?*{={ht$9ON8L@LzOT0J1@ZPnk_Va?#MoC zx&)?e3=jdX9)EI_=cdrD`paI2;0k~6Q}BXCr|y&M{uCCFcO5rt9aIm*X*sy5kR$r6 zSWBqi?zt7-XMX-N4(s@)o0y)TZxcLE%hnZ;?BHot6uKEQKcXqO0RHom1l{s1$Sn*K z3MrJcXEH4RIgZH*@jLVt(Oob-u+Y(B^yqE?0)qvFmw&26-^+4cv6yx1m7Bnna_#>a zkGlHUK)=zd*gjd@014sUH_zw~4d){Be|WtaA&CX=c-Uw@GFb1z5L2vrko%_wz_N8< z$~aA0F<`+njk11>a)gc{RoTSqG#WvEZ(WNxJn_46IYp-kcpBJ!Z^$F8RP+hUCh>x{ zQG$U(Lw_G2+TiHU+(MKi$l-K8G|1hhF+N5nB&Xx}A_X25xIu@rC0G~Yl=!QFyOO_n zT=v=FhrU2x?4L?&1MmG_sGO|S>osWT>G-HC2hx`Lb<9*Lgd!xPvjNm*>`*F*i3n@h zgBBNt+~-obDBPl};&(E~TF0-eo}lAbPyb{wfM9YT>6P#+Vg;@t9-Yf0CA>Ko6=iE< zx9Zb)*TSOa-K66PhW~AOEsfL`&I=Jl2eC^yUb|18)Dh5LqyI!*cM5Q=RA^007sJEIDK+ztxi<0~o3%a#{cY diff --git a/dist/v10.tar.xz b/dist/v10.tar.xz index dc53b5104b119f8126bc0cac95fb860aa548cf23..cf68888b38221a0e205a6aaa5112d8be2e423344 100644 GIT binary patch literal 7776 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 diff --git a/dist/v12.index.js.xz b/dist/v12.index.js.xz index 62cd7b8a66befefb2b7faa576e7d575bbd2c6cb4..19a9a6d464da839c888289c83d73f2fd1b33326d 100644 GIT binary patch delta 772 zcmV+f1N;2A2Dk>090B){9VmZs0nUy_Dau$@RVi1DrGo#HSc8-;bTA?=O~||$#9uup zd*>qmhHzFDN?#Yl=Ik2-)-}Zz&JO03P>6k#g z=jUiFbCY8s@x5fz-RJVi-^2i#{U03gHswcBp=?XdWAKQEQJ}V zuc*k^zfXwRUQ5wRw!&s4Y&G=+p4gMN{=1=kV zmev-pHSuYf9TtDK$ynV$?=mH-z0Kck=L>R&=gs#!nq3ABQfayW7wJ_jLlpB~^t4%Qu090B%`9VmZr$Gw6q0&iQcB!mSw4!Y$lw^pH?g^AE|Nfy9TVjmTV zEds?p@gUh#xq!pS`H7@pxE-AYs*>qW`bZ9Pt92@b{e6+MyY|^NISL9y4L|9j#5S)h z!;^2D^nW;RfnU*t>vH{;N*AtqDf&^_Z+{n#WRcmq2PZzM%?=Ra=8AuaJ@bukG%TFC z`(_@VmtQCyNA{p*K{c294ipd><1$XJ;6NQQGtMPoZzcSfl&d-BtK(MOG*8xzUAHb+ z<$h7#!!&yl%r2b$8wCYb!8PQl0^zqOoUB#RJ2sC`A)p}bNU^mDhxTXxYS_KJk;?|} zEJD0$-aUts9AF|~G)sT$iYx{Q96-l%i|BwDFmdz*IkP5a66kJ+)%|YZ`C_L6`;|sv zjELYnWu?JE*%EzipPvM+mC_xv@e^k2gqWxP^3s@WygClcq;&zOUxh0iJn0*6?3%Z% zLZux8=7OEt#wC)$nBA;s;nT$lug^Bepp#_w4>?myOS4dPv;lu7TI!I1^F~kb8;pG^ z49C*?A@NLNpej+s_y5i?lB}tg!zh-Z)#)^S$Z6!smtz_2`nR+wZhC<7VI_f!JZ;89 zz%suv`9cqd@hLmQ@9dWc9i*LX*I*;%Zn#F6LxV>@Z*T+0p7KPp7DL|?{&uPnK;sS` zj_aJeuw$L3svUn}0*57mq0=`SFJc=AtTHVG;--`UY8Nc}7l-b(B>M!ir_xYpSzm@e z9urVEw1$e_B~jqSo?#h|Ih1m3pX>qWsV(E!SLB)J7=0`$9A-1{W1)u0vA&(|TULW> z)MMRC+)lt+6$)?2xiaB5JqUuRHOZ>y`GV?Bt&J0iZ8dm1q$O+S5<&i&K|P{ho|Ses zdkqA@x>q;oUJr=~X$zA`&QTS(BteYnv89MSvBF7!6X%GynX!-T&4Mui54^g%Lv_b% zvS&QRoIXlIyZ5yy-`*Pl00021J+EOZsbGcx0g?uQPyhhF4qlzH#Ao{g000001X)^1 CpmDAM diff --git a/dist/v12.tar.xz b/dist/v12.tar.xz index 1f63b96e7fe19524627d3ca7bacca663f6e54845..9d5f32500cd7b96a390e07ee7f2dd2de0d671f84 100644 GIT binary patch literal 7772 zcmV-i9;4y?H+ooF000E$*0e?f03iVu0001VFXf})$NwH0T>uvgyc~T2mB1ZJMw}eQ z0xcbGjvFZQBi?tc?S};u4xT^Qq-Ut)ra#yl3+D6%%qs#2#Dq(Vkpl0RZ9AI9>v5ZU zYUd@-=&*Km;23@z)k&m@WGv}o|vsuKx=%!xmePNU5dqOyg=6Lq3^ygbHW8Cbf zl;kFTJeYLd(Sj8IG%++>v8V(My!+(U#m17))8KNVunv4~RE0krIdlo@!oXfhFdniC zBuUgvCE(y(5=<*YV0iW9ZF;xwAV&U)l{Lt^87F92z8@zWe;jIl~EyL=r;B31m`QEA=`Ny`oWGpF4a$}7nkjl;g5J*pzxIucTNkmIqk-Ylwgax==nf@JCH!K$_d*RgUqO}xe^E`kdv`s`;)Rvh{$zFlwC(o ztb{SK97b&+4oNUs-*Z#q9WN)beWd#eJkm&1BB~G`KYuzdn)2YmYNCqz5=B+UfsU4` zwcU2N_&=RwhXYg)H}oB16EIATQThjL!JWMLwZ;kO^1b!8HEbEO-*G>nFX19IZ5m4& zGw4{grVok_`SPk2QSTkM`8)jk0sx&~Fkh9jhSWC|89zzhHv+}6pt{_BdB=hU!d|XcVkB(jneO;Y{W_5ixvV6v6DQF8FaZF0sZZ6gB`-- z4$?0)>B~-3vJ++Epb;GpY@q#ZEb%g`z%W7OF}4Nj+^ic9*57W0Q`wN%^LOb@nk(&+ z^Kdn*zZi@RSJA(Ia^eMhGZiDmgW2FT^W)&g_+ox)a6X|ah6aQB#GnGA!*kb`#iHfP z0F?i!729gm72`?)tPa7^Wch`aSo8_92zWI1nB=RUWh;$ggIIJu#bZG+Syo-r{oac^ zHvS(G;#`V9o8_xO*LX^#u5Gqs?oeRo?d0%@Maw?ML$^fQHowE4|`iW&C@5CFv*bE~2)kzF684Qs*ref9yA zce4KGkg+Jjxna>24Hh=ReGM%^pUXX3ibB$-KdsRz#L&Pf*HNb%HIKI599c5h^$Q z3z`DYxziQIT&!IyPpNoN!^!RuL6}XHbyNO(>G2^ z8Q~`|y*&eqRj6*z&~t|m-W(bGwANd>;o9TYRDq7Q^g-)RYH#s=+64gU4T+d{Jw!I` z-jS(f_>);d(^k|zr+Zjdok0ZY)_(6NZeYf7zUk)lT%63%FF`Tlc_Y5y^r@p-?`|Q5 zhT=(AA#KgrRq*{_;QjEd;{4XY<%G?$_OR1=29{CWR$ko$-KR7qVzIo#wtp~pB@0A$ zlVqtcQBbh7Lx|^`H~^fK9TuqS2+k6M?d*JQZ#cf8?ZR0{5;B)sbXX-RtS_7pWyezA~QJ-loiQFLpy9e|y}uynNBX0~|}a8*1Z zoi;QXW0aWh7U*Q0a$Zg&o^&Ax*apQ}CCE{xA*;3D)p`L>5t<^&!7sO-tgLA8<@`sg)v^70g6^VrXca8>Vz17~#Qp5mOP`oTkZ zwb66$WeHmd0rpHxy1n$?drhltFv`U^Ydf((Bk5{}5_Ba?LKhVgjSpf=qs>1jN?Fyo}5W zphyC9c-H@%{1U9Pm3y=#R;7+Mh}y)Q|5&Z+C_!o&{0#qa$Y+AOE7b;4$|hstZ(7Z$ z4;jY0fi9Bbz%^%{;barkdMzD2uSE23yuIACzo8d`t9tYOfPT!9xJciTO-+N$Qe^{g z<)?>gX)2D)LJ4Q1YBr~4cj{ujomJ*(-fE?1r8SnfG&!m!KeaitMi>~Q&JppGf3U~Q zUS#pK67r>okcYKTRTx`OI(X9%B(!n2V_#PtUMmxxz`@Y`x?S!EgW@6hD#1f^K>P^h z5fV25<}nwBCTV(uqLG$fFNB*?7B|_#k_0KtKzYn|twH0AuN|^v2u!cycPbS%97fOBJe!{AagdBi}k1qv);J3Q) z2Ny`6$bl>svmZnGRyR6P$c=@Qt781Z-DcxsJ?y-x0~WjTdrGlKw3@sx{D*k19?GrJ z&g<{cNdpEO*pvF|Mi3?zPd$HNDQ>5F<*_{S`rhS~XQy6z`)gNdS=Z0NUJG{t<7vLd zl?`<812?iP;Es-j+z03_b`zun0dv=6%Vi7wUtV$4u8XSOkYR&mQR)8+-mr)o7ZZl0q)Uv%PU<-ClTP`35+hCzD<9ha!C}J4 zLw~p&+0+gKh>cjKF180BwJ&1^$Bu%F-pq9>u(^5*oxbZrx@usP&?{T%99U)KCLm(H zO(og?;TEZhS~OQCK+qcA<&(aNSZ2Lco65-A-kHR2-I2q{$Y_eWnQ%Llq;-eLUY1yJ zfO<}qTyKb1m%JGn{Js9SF#Ia6RBCQXw_c4NQMH!P6P?L)zdhPB|*vPQe{~H}3;(#&|VU&m4PMC@`$nSacG61B))-TBV z7dRStA=buq22{T}>xG|ZHYC@jdGA(T^g#&ZyU|zzqMrU4#DhAU5i@z$I<_gh+&m__M7;P! zL7?4?UW*oKJB&*NAd3LCKU!DN$hfm2<}zK14|pK(ku9#Y_`6rL(p;x>=ypL`dBNsk z_TSS(Xm{w|<<--m7388*b`YF#5FUIT{f2WM4!2hNBr{|WAIDYSPcJS$Ep5rcPQoVm zAxwxtDinZDlC6nF@s*f&<@`YLN--hk>XM+9rXMV=a8rUvwk&1;a?N=?r_V1vH4|{xK(z@VueEZpa}{vA&TBU!;A4dN z#Xe$bVl;AOBurm6m*@Bfz3NG7S*54X0=l9Ef_}ZUzV4$-?w>BP%1;`w;PkK1^1(ao z(-O88T?xlviX5g%oJm?;y+GRrdBM}QATUP39k!vuforlC*Ksw|T988iBX)92D+crt%ad9Nf%8=KL%=R*Z;d za{cih1)9M}k{*9j>ADjbsuBN~gKuXze0Q9XxcK?YM>hSvxr4ZLmm znlG22Sd+KH-$*md%7*EixmPy7I>85%*L!VRG35!3d&vi*XtdKSQda{^oG$HY=SfXW zTyvTj3M8`$R}|giE50$96;AbZJ!ZVn35%;_(vs?CXwFEZR!Qw#RNH-YTmiNvFdr-R zEC1>e)XX`m&rHCCg=n7?q|JTH2a(iE;>Na(*q+7z!#zth>~f>e;G$>SR`cyOe^oLi zbwfQ=veL|tE6B`68sq7+wC1VadB9efhR9>Lj6}m{Zr69E;G`^PrSF$}oFuyR?%!hG zyrRpA3~v*RJut-=le52E-|EfZJbIYv)GzC`vBzkD&1rTwBzObnEaeWiG?>7(U=EB| zM82?b{;xs-DcPGPJ%%Tz`s}ai?l9vWX18`?H9yjL@0-GeI9815cbJ}%Gre}jR8~Gw z8rW7w6VH=sb~Ltij5#$s)H7 zHr1hG$GLjNaNdwTrg-gkLzRqk*}b;P|19zQ-X7EEXZidKuwy5!^;ho>xC``f_T%pNnsy{z4cv*)IVbE~!x*$E;F)v6z>A%jUtqE_)ydONke{w2g800 @5~a9syZ zQ?b~wCh40MqOc!-9Rkf2K=wh-m9BB8UPMdjQo6|{@<H?Yy#J;Aa0s=ZniLA}gK(_8 zWYV;i3j9y;3R8Frx3Sr64#vIq%6Uw?GHS+21q)5ktpENg=0Xieuo8cCnhq6Q2H6)p zC&I%M&4-(QA-ShahR&c}^=>1Q5zmM_CT!JRGt#6%RZ(ozMwuO!+ zjA1rlPrA=0%)NPP#_TuxQ%v=2&`Q8e4e)R_XOr68#8x>(@H$U$6dh#&U25c_`yVZd z^XN7VwPuq3>i@bQ7C}dpc-Mzo9JliFn+t@7RbO3`DSkKn(6T7?oPQz*;sXR`w`E=6 z-sSuvse<)H$;HiyvF*wrc%`tO)+g(9HJe560(r>#9m2IGy?hws7|Z` z&bdPXVrcia#&OEJZ{+oxutKmD#J?iiwLTs5tO9s_T{2N>Vp6&L3O2s0Wss#(o<O z{Ql@SE^3QsXeVYa({sEF3oQJPi7~DN|IV0OL?+bB+P6u!K&t&3!p4#T43=~6oQ?T! zJri%fel9IG~Lb;APAb8 zZI$3YlmT@%Wjx`Vb*yQ}*g;tSk^}egte;l@DA=xNn(3ntpO7RZei(ObgAEbT9i2r; z3#P;SCUun~ZCIX%!mplqr|BDA>`%<2v>VAW*ibQ(8fEe~q*h-`V(Gj#7TrmdSETb+ z@aiYH9EKW|$&u>21*{aw&@i$L&SuHH^5FjG06B+3Y|H@rzpZP+d#x}DQ|vv zv*;IN`&H}%!`yc=`>mZBdP#4{u}gELDr+)aiwRB@Z}Ojr8?J%jW?aGzs^gw%wW2ez z-F0&(NakMAv+TOF?U2$X5nTzm#4T&^kI)7JSYQmDYxF=mK0MhL%%Cax@*1a9f%gZ# ziY1Fpod!9!NyM$ex-#kD05!lU@86%alI?bai!t3=YVi$&Gwp+x5Wc$@D=m1ZKOKxz@7hDG#I*nd`2i6R#264Ol$39CYxQ+8rXrL^aR4Fo$Q0T2z;4U-%jEn zqcRZ;q;m<=?6_Crj?Y32+-Y7fu|j++THh(T_5=!dxcoh{ZBHmb%U)Ip@uL@>-8BXErT;kh@a`Uj|S~g-1w&?vvNuCcj zR@1;tICVm(NesigHxF5g*vH7UZnz8J99~Ny9!B85w`WB+&Ax&%1y7znFD3$?_b!1B z@%OT(0>^-U4>ZvVDA0ZZKKJxppGf0hw-mdF(wtwRXVGQEufIt;y#P<_2#hdH=h|{H z-5R>*PfaEm7YBb29^N)hvzS-qXj3*k)NxGz#1TXFg@qEqIJI<(Q$(7Y3WfT;G7t9* z(7Z*Y*R%wvv_hqw4|7)YaS6X7Zuv`Sd>|V#fl8T(=krS{#Ca(eJ5{9r)|{bN-S5-& z_
    !C!lSYAe?~S-%D)^J-Z}6&u%2G9H*FHXXxq&mYFrggPlQdN9#2x3V;~m97lM zz1Ua(-~3NfVhd1{<6!;Uzyat{?7{2KvpXs3D~QFo==zN&S53SQn*3ym)P#O+b3cm- zrszwD#_a`+yc*7n50k%AVkOKfZEO1b<#Ao{g000001X)@b3Oz3X literal 7768 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 diff --git a/dist/v14.index.js.xz b/dist/v14.index.js.xz index 4254e24440aad1370d060337aa934453c633d86b..932936e59f318b9ee0481ea3ff9c192c46b7f90c 100644 GIT binary patch delta 772 zcmV+f1N;2A2Dk>090B!_9VmZs0nUy_Cp*dd3?MN)7^_#2k6`kSR9VWgDNWREIW#he zzR-8)=rC%_QI{+zoi1SBZ>n$;yXP;GH}#9MBr%3@1JnlQ z4}~LC!pP$InGw+5SnQ@RC-5{MfO!`6>Sj|)jA#b0_=P4IrA>&931@2Qab-1r1sWrW z%-q(+fUttw_wwbJ%6NamlT;&=5@1xv0?JiKSSv6)-~@i z^6V#bE%vQ94_NsXAwaF)=g#(h*#@vEF0K0!35j*wN(yZPeD4OUYy+h1%x=n?qr>V1 zEmN&7qUmvPNB;fkoZnD9=TaLlgXCVdZ|IdoKVgPetHn{oi!gtD!l?-Uh2Q$1iO>nE zYVG0mojyQMUX1-Er*59JK%J1@4)peT`PP9XcK7!XX{g|O1A`1WjUv40TpB@KA8~&4 zX`iGKyN1|{MW4sS&7kSesM=&AF5?X#5GuX9>-3uEjnXD7+?S2^Y_4>^cJichsDQJL zv(~Ky+dI_tn$3Sc4e4M%YXzy%sv5kY*=QjTDLz;iBo-<4+zqwewEJL&xGw%3D^cYV zGAMEKdj_BuHFt?jtMPQmT7cz}UJ|ub@yQzfgHwGZ4j2?1vW_PVIPszUjh>j@#?#fi z@^#N#;~WAWfFmgR=T-;3(E*v`r1XAJ!xB;vO?-KJjrn-7p_M<+E1m@aOS268M4sSD z(Y5^q&qGtefQ)#G-&rZ`B5Mqtx*schD-1xuc`FqSD%)090B){9VmZr$Gw6q83p}3RW(K$RslqGKrtyu!~uSWFM9ZKt`GmN zdwoD0y_*WK0zX~#pt_@J2R9d@y5-93T-uo)c^Y;aY$Dsnc*X^)I&!^UD$F+5LJTG5 z>x&sRU-@lPF?nVLcXDW3ThW>@^^;AiN3zPHI@2djt zTB7ow&oB(-ePDHqcxd^3d!pQjUv~5lg}J(>K013R1Koep3;FEvOU9XI?#Nppc+TeL zeb^|T&XU~=bEeHv3vsi@Vm2-1heE8Zet4{4V!vjV^-ck6`k&Rx*6TTvZX@){fiRIH zyyWrUyK(bNma2bVT(q&b&Bo3okaI^*9n}D$LA{1_f;_=AzL469a$G@Uq|*L{<1Ur^ z;>;JtAj@iT8@?cV-AF@~BIlYYimTK;VO6HPtK`OBdLYB&sccEtT1R&jE@{rjoEcAObr{%oHv-@*QSn#AW zJZD#7$3~T6A2&W)gO7Wc0001q=*%&jBrZ7s0h0!RPyhfM-2zsz#Ao{g000001X)^Y C-Fg%N diff --git a/dist/v14.tar.xz b/dist/v14.tar.xz index 82b79e2a3d082029bfc5bca42c0fe3dff9fe1aa2..344895e9fee04133b915ce4d0a604dbabd92bb88 100644 GIT binary patch literal 7772 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 literal 7776 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
  • @@ -153,7 +153,7 @@

    Readonly promise

    promise: FunPromise<T>
    @@ -175,7 +175,7 @@

    reject

  • @@ -203,7 +203,7 @@

    resolve

  • diff --git a/docs/classes/_src_fun_promise_.funpromise.html b/docs/classes/_src_fun_promise_.funpromise.html index 89c87b5..9117141 100644 --- a/docs/classes/_src_fun_promise_.funpromise.html +++ b/docs/classes/_src_fun_promise_.funpromise.html @@ -166,13 +166,13 @@

    Constructors

    constructor