├── .eslintignore ├── .eslintrc.json ├── .github ├── FUNDING.yml ├── dependabot.yml └── workflows │ └── node.js.yml ├── .gitignore ├── .lintstagedrc ├── .npmignore ├── .nvmrc ├── .prettierrc ├── .yarnrc ├── CHANGELOG.md ├── LICENSE ├── README.md ├── codecov.yml ├── jest.config.json ├── package.json ├── src ├── SlidingTaskMap.ts ├── Task.ts ├── TaskMap.ts ├── TaskQueue.ts ├── error.ts ├── index.ts └── types.ts ├── test ├── .eslintrc.json ├── SlidingTaskMap.test.ts ├── Task.test.ts ├── TaskMap.test.ts └── TaskQueue.test.ts ├── tsconfig.build.json ├── tsconfig.json ├── tsconfig.test.json ├── tsup.config.ts └── yarn.lock /.eslintignore: -------------------------------------------------------------------------------- 1 | /lib 2 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "parserOptions": { 5 | "project": ["./tsconfig.json", "./tsconfig.test.json"], 6 | "sourceType": "module" 7 | }, 8 | "plugins": [ 9 | "@typescript-eslint" 10 | ], 11 | "extends": [ 12 | "eslint:recommended", 13 | "plugin:@typescript-eslint/eslint-recommended", 14 | "plugin:@typescript-eslint/recommended", 15 | "prettier" 16 | ], 17 | "rules": { 18 | "@typescript-eslint/no-empty-function": "off", 19 | "@typescript-eslint/ban-types": "off", 20 | "@typescript-eslint/no-explicit-any": "off" 21 | }, 22 | "ignorePatterns": ["tsup.config.ts"] 23 | } 24 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [Tomas2D] 4 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "npm" 4 | directory: "/" 5 | schedule: 6 | interval: "daily" 7 | time: "00:00" 8 | -------------------------------------------------------------------------------- /.github/workflows/node.js.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | pull_request: 7 | branches: [ main ] 8 | 9 | jobs: 10 | build: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v2 14 | - name: node 15 | uses: actions/setup-node@v1 16 | with: 17 | node-version: 16.x 18 | - name: install 19 | run: yarn install 20 | env: 21 | CI: true 22 | - name: build 23 | run: yarn build 24 | - name: test 25 | run: yarn test:coverage 26 | - name: Upload coverage to Codecov 27 | uses: codecov/codecov-action@v1 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | lib/ 2 | node_modules/ 3 | *.log 4 | .idea/ 5 | coverage/ 6 | -------------------------------------------------------------------------------- /.lintstagedrc: -------------------------------------------------------------------------------- 1 | { 2 | "(src|test)/**/*.(ts|tsx)": "yarn lint", 3 | "(src|test)/**/*.(ts|tsx)": "yarn prettier" 4 | } 5 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | /src 2 | /test 3 | /scripts 4 | .idea/ 5 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 16.13.1 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "all", 4 | "printWidth": 100 5 | } 6 | -------------------------------------------------------------------------------- /.yarnrc: -------------------------------------------------------------------------------- 1 | version-git-message "🔖 Version %s" 2 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | 4 | ## 3.1.1 (2024-10-18) 5 | 6 | ### Miscellaneous 7 | 8 | - Merge pull request [#409](https://github.com/Tomas2D/promise-based-task/issues/409) from arne-kapell/patch-1 [[83ede3f](https://github.com/Tomas2D/promise-based-task/commit/83ede3f255b4bac14f5f11185b82b824e59a3547)] 9 | - resolves "Module not found" error during external import [[481951f](https://github.com/Tomas2D/promise-based-task/commit/481951faa19f15f05f7c900da3767296869c76b7)] 10 | - Merge pull request [#406](https://github.com/Tomas2D/promise-based-task/issues/406) from Tomas2D/dependabot/npm_and_yarn/prettier-3.3.3 [[11a2196](https://github.com/Tomas2D/promise-based-task/commit/11a2196ccf525239f285dabb3e4059dc9d0cc720)] 11 | - Merge pull request [#407](https://github.com/Tomas2D/promise-based-task/issues/407) from Tomas2D/dependabot/npm_and_yarn/types/node-22.7.5 [[ea9c81e](https://github.com/Tomas2D/promise-based-task/commit/ea9c81ee4ef8e7866ced8e7b367ecd5e21fa44ef)] 12 | - Bump prettier from 3.3.2 to 3.3.3 [[ac9761f](https://github.com/Tomas2D/promise-based-task/commit/ac9761f785f4ff5ad24a2f6935fe21150195de43)] 13 | - Bump @types/node from 20.14.2 to 22.7.5 [[9d367d4](https://github.com/Tomas2D/promise-based-task/commit/9d367d4889001ca9efad30e30ba425d80e11074b)] 14 | - Merge pull request [#402](https://github.com/Tomas2D/promise-based-task/issues/402) from Tomas2D/dependabot/npm_and_yarn/rollup-3.29.5 [[bfa2e2d](https://github.com/Tomas2D/promise-based-task/commit/bfa2e2de447a4bc8935845fd5744921cecd74de9)] 15 | - Merge pull request [#404](https://github.com/Tomas2D/promise-based-task/issues/404) from Tomas2D/dependabot/npm_and_yarn/eslint-8.57.1 [[3d694df](https://github.com/Tomas2D/promise-based-task/commit/3d694df12d6c3d0497da122f8ed16c9b890574b6)] 16 | - Bump eslint from 8.57.0 to 8.57.1 [[5998d42](https://github.com/Tomas2D/promise-based-task/commit/5998d42723e03bf8153490f08fb63ddbfa85c762)] 17 | - Bump rollup from 3.8.1 to 3.29.5 [[2f2845c](https://github.com/Tomas2D/promise-based-task/commit/2f2845cffcb77c08d122b8f54e09a22f05f81441)] 18 | 19 | 20 | 21 | ## 3.1.0 (2024-10-05) 22 | 23 | ### Added 24 | 25 | - ✨ use unref on timeouts [[1d52713](https://github.com/Tomas2D/promise-based-task/commit/1d52713ee71721d26042503b247da68717eff7ab)] 26 | 27 | 28 | 29 | ## 3.0.2 (2024-06-17) 30 | 31 | ### Fixed 32 | 33 | - 🐛 Fix accessors [[23e2905](https://github.com/Tomas2D/promise-based-task/commit/23e2905a57da2d607d66cc8a689867be2168fcaf)] 34 | 35 | 36 | 37 | ## 3.0.1 (2024-06-15) 38 | 39 | ### Fixed 40 | 41 | - 🐛 Prevent mutation resolved/rejected value [[cf09ed3](https://github.com/Tomas2D/promise-based-task/commit/cf09ed3c0a22ee56e8072f946357a38c78bd7b54)] 42 | 43 | 44 | 45 | ## 3.0.0 (2024-06-15) 46 | 47 | ### Added 48 | 49 | - ✨ Update interfaces, add signal support [[0289197](https://github.com/Tomas2D/promise-based-task/commit/0289197403f66f74513ffeae5243ddf9dc9baac4)] 50 | 51 | ### Miscellaneous 52 | 53 | - Merge pull request [#360](https://github.com/Tomas2D/promise-based-task/issues/360) from Tomas2D/dependabot/npm_and_yarn/braces-3.0.3 [[3f9d97f](https://github.com/Tomas2D/promise-based-task/commit/3f9d97fe110698b74ddfb5f41e96e1c4a8f9d0c0)] 54 | - Merge pull request [#359](https://github.com/Tomas2D/promise-based-task/issues/359) from Tomas2D/dependabot/npm_and_yarn/prettier-3.3.2 [[dc362de](https://github.com/Tomas2D/promise-based-task/commit/dc362de919566eb9cf5659c6bc807e014a5a13f3)] 55 | - Bump braces from 3.0.2 to 3.0.3 [[1cbaf7f](https://github.com/Tomas2D/promise-based-task/commit/1cbaf7f61d102178c6aee572e3e943f5ced890f5)] 56 | - Bump prettier from 3.3.1 to 3.3.2 [[485895e](https://github.com/Tomas2D/promise-based-task/commit/485895efcab8035da9bab1608de7254667841303)] 57 | - Merge pull request [#357](https://github.com/Tomas2D/promise-based-task/issues/357) from Tomas2D/dependabot/npm_and_yarn/prettier-3.3.1 [[18a6f92](https://github.com/Tomas2D/promise-based-task/commit/18a6f9280f814c4b61a17db4eb027957dce36d7b)] 58 | - Merge pull request [#358](https://github.com/Tomas2D/promise-based-task/issues/358) from Tomas2D/dependabot/npm_and_yarn/types/node-20.14.2 [[8502777](https://github.com/Tomas2D/promise-based-task/commit/85027774c69b6001e9721bac452589cffc09d79b)] 59 | - Bump @types/node from 20.14.1 to 20.14.2 [[511c607](https://github.com/Tomas2D/promise-based-task/commit/511c607b262da97051aba0d5f00406d59cf7b001)] 60 | - Bump prettier from 3.2.5 to 3.3.1 [[09cb909](https://github.com/Tomas2D/promise-based-task/commit/09cb909796d29e1d3f39dcc8be7acb36930daccf)] 61 | - Merge pull request [#355](https://github.com/Tomas2D/promise-based-task/issues/355) from Tomas2D/dependabot/npm_and_yarn/types/node-20.14.1 [[cef2d13](https://github.com/Tomas2D/promise-based-task/commit/cef2d13ec8090be76dce0f28c5ec84402cbb0754)] 62 | - Bump @types/node from 20.14.0 to 20.14.1 [[dd080ab](https://github.com/Tomas2D/promise-based-task/commit/dd080ab8a770be4563a4621abcf070058c641b20)] 63 | - Merge pull request [#354](https://github.com/Tomas2D/promise-based-task/issues/354) from Tomas2D/dependabot/npm_and_yarn/types/node-20.14.0 [[9f95095](https://github.com/Tomas2D/promise-based-task/commit/9f95095bfeeb239664a89cc3fd5c88b6cb82b62b)] 64 | - Bump @types/node from 20.12.12 to 20.14.0 [[ba54781](https://github.com/Tomas2D/promise-based-task/commit/ba547817937a469fa7252e6a6c0664dcfca5d322)] 65 | 66 | 67 | 68 | ## 2.2.3 (2024-05-27) 69 | 70 | ### Added 71 | 72 | - ✨ Improve internal handling [[6801d73](https://github.com/Tomas2D/promise-based-task/commit/6801d733b97adbb2c05a834c225e3994d6ae01e8)] 73 | 74 | ### Miscellaneous 75 | 76 | - Merge pull request [#351](https://github.com/Tomas2D/promise-based-task/issues/351) from Tomas2D/dependabot/npm_and_yarn/types/node-20.12.12 [[7417375](https://github.com/Tomas2D/promise-based-task/commit/7417375ba4088570dcb42cbd29c13f85698fe334)] 77 | - Bump @types/node from 20.12.8 to 20.12.12 [[75d85bd](https://github.com/Tomas2D/promise-based-task/commit/75d85bd7c09d56790a35245168b16648cc03f4a9)] 78 | - Merge pull request [#350](https://github.com/Tomas2D/promise-based-task/issues/350) from Tomas2D/dependabot/npm_and_yarn/rimraf-5.0.7 [[7b01caf](https://github.com/Tomas2D/promise-based-task/commit/7b01cafcee933e0b1b1920d99dc5de219f7619ca)] 79 | - Bump rimraf from 5.0.5 to 5.0.7 [[9d99bab](https://github.com/Tomas2D/promise-based-task/commit/9d99babf3bbfce49e01fc0bc3de237a6336b451d)] 80 | - Merge pull request [#347](https://github.com/Tomas2D/promise-based-task/issues/347) from Tomas2D/dependabot/npm_and_yarn/types/node-20.12.8 [[5b1721f](https://github.com/Tomas2D/promise-based-task/commit/5b1721f5ce27ebaa97cde519d9239358e620c712)] 81 | - Bump @types/node from 20.12.7 to 20.12.8 [[c9bc11c](https://github.com/Tomas2D/promise-based-task/commit/c9bc11c5366e05a660100249a9c7e677833c1b9b)] 82 | - Merge pull request [#346](https://github.com/Tomas2D/promise-based-task/issues/346) from Tomas2D/dependabot/npm_and_yarn/types/node-20.12.7 [[b6f1e19](https://github.com/Tomas2D/promise-based-task/commit/b6f1e19341646a687b6a383f03ebbfef9e0d2b97)] 83 | - Bump @types/node from 20.12.4 to 20.12.7 [[bcab6c2](https://github.com/Tomas2D/promise-based-task/commit/bcab6c2aff4b35ab59ac8186379d9f74ecb68147)] 84 | - Merge pull request [#344](https://github.com/Tomas2D/promise-based-task/issues/344) from Tomas2D/dependabot/npm_and_yarn/types/node-20.12.4 [[1ca8fd7](https://github.com/Tomas2D/promise-based-task/commit/1ca8fd7d2c7cb19cf1c9e81ccad86e35e8a81966)] 85 | - 👷 Update build script [[871b83c](https://github.com/Tomas2D/promise-based-task/commit/871b83cda63f1d165dcf4d718737b509d98a1152)] 86 | - Bump @types/node from 20.12.2 to 20.12.4 [[298b1bb](https://github.com/Tomas2D/promise-based-task/commit/298b1bbe7ee0f19d6b18afba007f57de1d5913f2)] 87 | 88 | 89 | 90 | ## 2.2.2 (2024-04-05) 91 | 92 | ### Fixed 93 | 94 | - 🐛 Make Number.POSITIVE_INFINITE disable auto removal [[d7cd25f](https://github.com/Tomas2D/promise-based-task/commit/d7cd25fe0e33ab5642b2a93e118ca6ebd9ed607b)] 95 | 96 | ### Miscellaneous 97 | 98 | - Merge pull request [#342](https://github.com/Tomas2D/promise-based-task/issues/342) from Tomas2D/dependabot/npm_and_yarn/types/node-20.12.2 [[d9a2fb5](https://github.com/Tomas2D/promise-based-task/commit/d9a2fb5b8f15d7dcdbc536c14b5f7c8e0e94b92e)] 99 | - Bump @types/node from 20.11.30 to 20.12.2 [[b1d63ee](https://github.com/Tomas2D/promise-based-task/commit/b1d63ee0ca9f858bd06e467e35bd98adf622dad9)] 100 | - Merge pull request [#341](https://github.com/Tomas2D/promise-based-task/issues/341) from Tomas2D/dependabot/npm_and_yarn/types/node-20.11.30 [[7c604e8](https://github.com/Tomas2D/promise-based-task/commit/7c604e866fd05d651f96736f7e641c99b76ac8e6)] 101 | - Bump @types/node from 20.11.27 to 20.11.30 [[8381a65](https://github.com/Tomas2D/promise-based-task/commit/8381a65cafc48dabff6ecaec60f0ddcbc6d0fcb8)] 102 | 103 | 104 | 105 | ## 2.2.1 (2024-03-14) 106 | 107 | ### Miscellaneous 108 | 109 | - Merge pull request [#338](https://github.com/Tomas2D/promise-based-task/issues/338) from Tomas2D/dependabot/npm_and_yarn/types/node-20.11.27 [[7b829e5](https://github.com/Tomas2D/promise-based-task/commit/7b829e537bb350ba9543aff32266d2060738d61f)] 110 | - Bump @types/node from 20.11.26 to 20.11.27 [[0ee827e](https://github.com/Tomas2D/promise-based-task/commit/0ee827e6068969302a988a3e32a50a67f401895d)] 111 | - Merge pull request [#337](https://github.com/Tomas2D/promise-based-task/issues/337) from Tomas2D/dependabot/npm_and_yarn/types/node-20.11.26 [[9d36b9b](https://github.com/Tomas2D/promise-based-task/commit/9d36b9bb242bcb7c0b31adfb7d592df26e3308c8)] 112 | - Bump @types/node from 20.11.25 to 20.11.26 [[abe8116](https://github.com/Tomas2D/promise-based-task/commit/abe8116dc2fd3d1434444900950683ca2afe295c)] 113 | - Merge pull request [#336](https://github.com/Tomas2D/promise-based-task/issues/336) from Tomas2D/dependabot/npm_and_yarn/types/node-20.11.25 [[d2c0e79](https://github.com/Tomas2D/promise-based-task/commit/d2c0e79e08674cf2659fddf65defa059537f8c78)] 114 | - Bump @types/node from 20.11.24 to 20.11.25 [[f99c661](https://github.com/Tomas2D/promise-based-task/commit/f99c66125aa2089752474914e63cc3551990be99)] 115 | - Merge pull request [#335](https://github.com/Tomas2D/promise-based-task/issues/335) from Tomas2D/dependabot/npm_and_yarn/types/node-20.11.24 [[e021f43](https://github.com/Tomas2D/promise-based-task/commit/e021f43ef86ec0525a0bc6f402877d5742001478)] 116 | - Bump @types/node from 20.11.22 to 20.11.24 [[fcb0d65](https://github.com/Tomas2D/promise-based-task/commit/fcb0d65728afce4dbe727925e372c44a2659c0eb)] 117 | - Merge pull request [#332](https://github.com/Tomas2D/promise-based-task/issues/332) from Tomas2D/dependabot/npm_and_yarn/eslint-8.57.0 [[df012a6](https://github.com/Tomas2D/promise-based-task/commit/df012a6608b329f9370cefb4b7512534f1e2a69e)] 118 | - Merge pull request [#334](https://github.com/Tomas2D/promise-based-task/issues/334) from Tomas2D/dependabot/npm_and_yarn/types/node-20.11.22 [[d7aaaf0](https://github.com/Tomas2D/promise-based-task/commit/d7aaaf021dfb2a3e54ea8aebb08c3b35232ec5bf)] 119 | - Bump @types/node from 20.11.20 to 20.11.22 [[c10860d](https://github.com/Tomas2D/promise-based-task/commit/c10860d2a82404b240425877bb79a246a03d4514)] 120 | - Bump eslint from 8.56.0 to 8.57.0 [[5a783b1](https://github.com/Tomas2D/promise-based-task/commit/5a783b1173c9d70db16827e99484efe8bcb45c4d)] 121 | - Merge pull request [#331](https://github.com/Tomas2D/promise-based-task/issues/331) from Tomas2D/dependabot/npm_and_yarn/types/node-20.11.20 [[82519f6](https://github.com/Tomas2D/promise-based-task/commit/82519f6d7089e22e5296e8f0b034dffc507555c7)] 122 | - Bump @types/node from 20.11.19 to 20.11.20 [[a43cfb9](https://github.com/Tomas2D/promise-based-task/commit/a43cfb9bfb25cf15a1d4cd178dcc39e62fc14f80)] 123 | - Merge pull request [#330](https://github.com/Tomas2D/promise-based-task/issues/330) from Tomas2D/dependabot/npm_and_yarn/types/node-20.11.19 [[33bf20b](https://github.com/Tomas2D/promise-based-task/commit/33bf20b88650cf269a2942d00e960b9a95ac9b5f)] 124 | - Bump @types/node from 20.11.17 to 20.11.19 [[be1fec9](https://github.com/Tomas2D/promise-based-task/commit/be1fec9ffae38d5e28b9d192c36442ad041a4cd9)] 125 | - Merge pull request [#327](https://github.com/Tomas2D/promise-based-task/issues/327) from Tomas2D/dependabot/npm_and_yarn/types/node-20.11.17 [[6d96b43](https://github.com/Tomas2D/promise-based-task/commit/6d96b439ed66c2bfbfa1242325f4d7c92bbb44d1)] 126 | - Bump @types/node from 20.11.16 to 20.11.17 [[d2acd97](https://github.com/Tomas2D/promise-based-task/commit/d2acd97a9ea2f964a55f8f16b5ffcd69e28c88b6)] 127 | - Merge pull request [#326](https://github.com/Tomas2D/promise-based-task/issues/326) from Tomas2D/dependabot/npm_and_yarn/prettier-3.2.5 [[4cef980](https://github.com/Tomas2D/promise-based-task/commit/4cef980e783e3500e54fa24a27af69c2891abefc)] 128 | - Bump prettier from 3.2.4 to 3.2.5 [[a6142ce](https://github.com/Tomas2D/promise-based-task/commit/a6142ce339ee37010eea6f91f82ebfbaa26e7e3c)] 129 | - Merge pull request [#324](https://github.com/Tomas2D/promise-based-task/issues/324) from Tomas2D/dependabot/npm_and_yarn/types/node-20.11.16 [[ea79f62](https://github.com/Tomas2D/promise-based-task/commit/ea79f625a78d7d8c991c26297f374338bdc5973c)] 130 | - Bump @types/node from 20.11.10 to 20.11.16 [[b82596a](https://github.com/Tomas2D/promise-based-task/commit/b82596a17b65fdcfd62b028b91c1ffce3c7a86ac)] 131 | - Merge pull request [#320](https://github.com/Tomas2D/promise-based-task/issues/320) from Tomas2D/dependabot/npm_and_yarn/types/node-20.11.10 [[c155e87](https://github.com/Tomas2D/promise-based-task/commit/c155e87b41724d8bf1783325edd688099707e082)] 132 | - Bump @types/node from 20.11.6 to 20.11.10 [[cfbe6aa](https://github.com/Tomas2D/promise-based-task/commit/cfbe6aaaf91632fd2722a286904bdac4ac0c79ba)] 133 | - Merge pull request [#318](https://github.com/Tomas2D/promise-based-task/issues/318) from Tomas2D/dependabot/npm_and_yarn/types/node-20.11.6 [[bc15628](https://github.com/Tomas2D/promise-based-task/commit/bc15628117c644210d58a626bc231fb2638618fa)] 134 | - Bump @types/node from 20.11.5 to 20.11.6 [[806f4aa](https://github.com/Tomas2D/promise-based-task/commit/806f4aa80b30278608e872c8ed34f7dad2be7057)] 135 | - Merge pull request [#316](https://github.com/Tomas2D/promise-based-task/issues/316) from Tomas2D/dependabot/npm_and_yarn/types/node-20.11.5 [[2a40ce6](https://github.com/Tomas2D/promise-based-task/commit/2a40ce644872770b8c7c58d9e56e22c50da56a27)] 136 | - Merge pull request [#317](https://github.com/Tomas2D/promise-based-task/issues/317) from Tomas2D/dependabot/npm_and_yarn/prettier-3.2.4 [[fbe625b](https://github.com/Tomas2D/promise-based-task/commit/fbe625b44b6aa95a32b5ae3636b85ffdb445c7fc)] 137 | - Bump prettier from 3.2.2 to 3.2.4 [[33149ba](https://github.com/Tomas2D/promise-based-task/commit/33149ba1e0d7e7a9d08e917351a89e47f65b7d71)] 138 | - Bump @types/node from 20.11.3 to 20.11.5 [[c0f5e53](https://github.com/Tomas2D/promise-based-task/commit/c0f5e533b7fbcf889f0eba54b11a726c496c1f23)] 139 | - Merge pull request [#313](https://github.com/Tomas2D/promise-based-task/issues/313) from Tomas2D/dependabot/npm_and_yarn/prettier-3.2.2 [[44a3ff8](https://github.com/Tomas2D/promise-based-task/commit/44a3ff8184b2a5c8f494a7fcf74b0e8abff140db)] 140 | - Merge pull request [#314](https://github.com/Tomas2D/promise-based-task/issues/314) from Tomas2D/dependabot/npm_and_yarn/types/node-20.11.3 [[9fa49b7](https://github.com/Tomas2D/promise-based-task/commit/9fa49b75343ff13e06d27330d6ba337afddcdc0e)] 141 | - Bump @types/node from 20.11.0 to 20.11.3 [[c7a4536](https://github.com/Tomas2D/promise-based-task/commit/c7a4536282acec509ba3e1b5515d41a291413f1f)] 142 | - Bump prettier from 3.1.1 to 3.2.2 [[25735a9](https://github.com/Tomas2D/promise-based-task/commit/25735a9f912c8947f752fda5fab43c611a12db85)] 143 | - Merge pull request [#312](https://github.com/Tomas2D/promise-based-task/issues/312) from Tomas2D/dependabot/npm_and_yarn/types/node-20.11.0 [[e125e8c](https://github.com/Tomas2D/promise-based-task/commit/e125e8cd9160246d87a8da91d687152d4d64fe71)] 144 | - Bump @types/node from 20.10.8 to 20.11.0 [[4c01cf0](https://github.com/Tomas2D/promise-based-task/commit/4c01cf00ce5c7250d118cfc811b2d455c098466c)] 145 | - Merge pull request [#311](https://github.com/Tomas2D/promise-based-task/issues/311) from Tomas2D/dependabot/npm_and_yarn/types/node-20.10.8 [[3864645](https://github.com/Tomas2D/promise-based-task/commit/386464514a67d681dd58945194aba896d524fc22)] 146 | - Bump @types/node from 20.10.7 to 20.10.8 [[a0299b9](https://github.com/Tomas2D/promise-based-task/commit/a0299b95b4e078a10b547accddea1922fe2fc0c1)] 147 | - Merge pull request [#310](https://github.com/Tomas2D/promise-based-task/issues/310) from Tomas2D/dependabot/npm_and_yarn/types/node-20.10.7 [[0579335](https://github.com/Tomas2D/promise-based-task/commit/0579335adfeef8651a5eaa09fb794fa5b4013cc8)] 148 | - Bump @types/node from 20.10.6 to 20.10.7 [[835d0ca](https://github.com/Tomas2D/promise-based-task/commit/835d0ca1af34f8fc80734066525e7bbe81732609)] 149 | - Merge pull request [#309](https://github.com/Tomas2D/promise-based-task/issues/309) from Tomas2D/dependabot/npm_and_yarn/types/node-20.10.6 [[f636ac3](https://github.com/Tomas2D/promise-based-task/commit/f636ac3634c7507aeab715d2726e154a4e23a850)] 150 | - Bump @types/node from 20.10.5 to 20.10.6 [[59e1881](https://github.com/Tomas2D/promise-based-task/commit/59e18819d7fd9140232152201421c4665d1f01f0)] 151 | - Merge pull request [#307](https://github.com/Tomas2D/promise-based-task/issues/307) from Tomas2D/dependabot/npm_and_yarn/eslint-8.56.0 [[68a02b1](https://github.com/Tomas2D/promise-based-task/commit/68a02b13f336d4b81dfcdd251a2a4275d90d34a4)] 152 | - Merge pull request [#308](https://github.com/Tomas2D/promise-based-task/issues/308) from Tomas2D/dependabot/npm_and_yarn/types/node-20.10.5 [[be99763](https://github.com/Tomas2D/promise-based-task/commit/be997634dc2307d70677b06d630be727c3492247)] 153 | - Bump @types/node from 20.10.4 to 20.10.5 [[c3b56e5](https://github.com/Tomas2D/promise-based-task/commit/c3b56e5547b24d3b7e6a99f8d517624343043449)] 154 | - Bump eslint from 8.55.0 to 8.56.0 [[585f09d](https://github.com/Tomas2D/promise-based-task/commit/585f09dda5ac4ebf4e5a07d5206f36324d0e43d1)] 155 | - Merge pull request [#306](https://github.com/Tomas2D/promise-based-task/issues/306) from Tomas2D/dependabot/npm_and_yarn/prettier-3.1.1 [[c7770cc](https://github.com/Tomas2D/promise-based-task/commit/c7770cccf03924a8eea0b9d12dd3564f67c8766d)] 156 | - Bump prettier from 3.1.0 to 3.1.1 [[4766175](https://github.com/Tomas2D/promise-based-task/commit/47661756feec35c3111a94a7178009424129f2a6)] 157 | - Merge pull request [#305](https://github.com/Tomas2D/promise-based-task/issues/305) from Tomas2D/dependabot/npm_and_yarn/types/node-20.10.4 [[7982a5d](https://github.com/Tomas2D/promise-based-task/commit/7982a5d4876251bc6cedd9d30177ebaf22004bfb)] 158 | - Bump @types/node from 20.10.3 to 20.10.4 [[d9ee3e3](https://github.com/Tomas2D/promise-based-task/commit/d9ee3e3e5da41bb51c0d386c17f6312983e97d83)] 159 | - Merge pull request [#303](https://github.com/Tomas2D/promise-based-task/issues/303) from Tomas2D/dependabot/npm_and_yarn/eslint-8.55.0 [[4c22f32](https://github.com/Tomas2D/promise-based-task/commit/4c22f32efe1d6316556ee3484520cb206da3e8fc)] 160 | - Merge pull request [#302](https://github.com/Tomas2D/promise-based-task/issues/302) from Tomas2D/dependabot/npm_and_yarn/types/node-20.10.3 [[588bd35](https://github.com/Tomas2D/promise-based-task/commit/588bd35645dab55f03e19d35ddc94dd13b6edb3a)] 161 | - Merge pull request [#304](https://github.com/Tomas2D/promise-based-task/issues/304) from Tomas2D/dependabot/npm_and_yarn/eslint-config-prettier-9.1.0 [[a99c4df](https://github.com/Tomas2D/promise-based-task/commit/a99c4df58e761e6b728cbe4e5b82af27a2692654)] 162 | - Bump eslint from 8.54.0 to 8.55.0 [[51b14ef](https://github.com/Tomas2D/promise-based-task/commit/51b14efc051db660a714793364786fe724786714)] 163 | - Bump eslint-config-prettier from 9.0.0 to 9.1.0 [[e64ee7b](https://github.com/Tomas2D/promise-based-task/commit/e64ee7bccb996d6aeea3a4211610369de505a7af)] 164 | - Bump @types/node from 20.10.1 to 20.10.3 [[2ce3361](https://github.com/Tomas2D/promise-based-task/commit/2ce33610fc354a055800b4de3e0a272b53d9b895)] 165 | - Merge pull request [#301](https://github.com/Tomas2D/promise-based-task/issues/301) from Tomas2D/dependabot/npm_and_yarn/types/node-20.10.1 [[46516ff](https://github.com/Tomas2D/promise-based-task/commit/46516ff47fa7a28289ff4350489c63f464b0eeee)] 166 | - Bump @types/node from 20.10.0 to 20.10.1 [[0270fc0](https://github.com/Tomas2D/promise-based-task/commit/0270fc079a4837b4f3ae6c107dbe78751ad546fb)] 167 | - Merge pull request [#300](https://github.com/Tomas2D/promise-based-task/issues/300) from Tomas2D/dependabot/npm_and_yarn/types/node-20.10.0 [[9b072d9](https://github.com/Tomas2D/promise-based-task/commit/9b072d92881f1db741d3c8f9ef86e08feb9a5316)] 168 | - Bump @types/node from 20.9.5 to 20.10.0 [[84d6340](https://github.com/Tomas2D/promise-based-task/commit/84d6340f77210827f6218f201f3b42ffe1ce641f)] 169 | - Merge pull request [#293](https://github.com/Tomas2D/promise-based-task/issues/293) from Tomas2D/dependabot/npm_and_yarn/eslint-8.54.0 [[0b54060](https://github.com/Tomas2D/promise-based-task/commit/0b540608700d112dd4727c781cf888c16f67db99)] 170 | - Merge pull request [#299](https://github.com/Tomas2D/promise-based-task/issues/299) from Tomas2D/dependabot/npm_and_yarn/types/node-20.9.5 [[f506d78](https://github.com/Tomas2D/promise-based-task/commit/f506d78fa39c7a780596bf2e0cc801c5c5f2f6b6)] 171 | - Bump @types/node from 20.9.4 to 20.9.5 [[7135b6c](https://github.com/Tomas2D/promise-based-task/commit/7135b6c5fa2bb3ef3e6d0d554f1bb213c17c192c)] 172 | - Merge pull request [#298](https://github.com/Tomas2D/promise-based-task/issues/298) from Tomas2D/dependabot/npm_and_yarn/types/node-20.9.4 [[01167ca](https://github.com/Tomas2D/promise-based-task/commit/01167ca43cd9cca452e9a9234bdb0e1b2068af49)] 173 | - Bump @types/node from 20.9.3 to 20.9.4 [[eef6b3e](https://github.com/Tomas2D/promise-based-task/commit/eef6b3e7b2b58900b8770e1a860ae8516d529780)] 174 | - Merge pull request [#297](https://github.com/Tomas2D/promise-based-task/issues/297) from Tomas2D/dependabot/npm_and_yarn/types/node-20.9.3 [[9b3c06c](https://github.com/Tomas2D/promise-based-task/commit/9b3c06c7f50c8702315f6f74bec9f390de6d6fa8)] 175 | - Bump @types/node from 20.9.2 to 20.9.3 [[374e82b](https://github.com/Tomas2D/promise-based-task/commit/374e82bf03b5fa10d7541fea201f32cb277db258)] 176 | - Merge pull request [#295](https://github.com/Tomas2D/promise-based-task/issues/295) from Tomas2D/dependabot/npm_and_yarn/types/node-20.9.2 [[3bd5001](https://github.com/Tomas2D/promise-based-task/commit/3bd50019ea4e2a30163986707d89cbdb28bb24f3)] 177 | - Bump @types/node from 20.9.1 to 20.9.2 [[3fb9759](https://github.com/Tomas2D/promise-based-task/commit/3fb97592f8f524d69cbe57e432668d2d640a6f2d)] 178 | - Bump eslint from 8.53.0 to 8.54.0 [[0b9a2a1](https://github.com/Tomas2D/promise-based-task/commit/0b9a2a14a76d9a2305339496662c0ac29b9b1b1d)] 179 | - Merge pull request [#292](https://github.com/Tomas2D/promise-based-task/issues/292) from Tomas2D/dependabot/npm_and_yarn/types/node-20.9.1 [[8359ddd](https://github.com/Tomas2D/promise-based-task/commit/8359ddd41648a5c0ec7de8b9ea84459ccc13d76d)] 180 | - Bump @types/node from 20.9.0 to 20.9.1 [[28f0b14](https://github.com/Tomas2D/promise-based-task/commit/28f0b1460d94da18a8f1fc8193ae368f5c294519)] 181 | - Merge pull request [#290](https://github.com/Tomas2D/promise-based-task/issues/290) from Tomas2D/dependabot/npm_and_yarn/prettier-3.1.0 [[a375c3b](https://github.com/Tomas2D/promise-based-task/commit/a375c3bdde0d183b0e083b0e33f157791e054f16)] 182 | - Bump prettier from 3.0.3 to 3.1.0 [[25c4924](https://github.com/Tomas2D/promise-based-task/commit/25c49249aaaa05f561d34ea1438046880d6b6757)] 183 | - Merge pull request [#289](https://github.com/Tomas2D/promise-based-task/issues/289) from Tomas2D/dependabot/npm_and_yarn/types/node-20.9.0 [[3738202](https://github.com/Tomas2D/promise-based-task/commit/373820276dd58be0463f5e26bb61fe1a220b92f6)] 184 | - Bump @types/node from 20.8.10 to 20.9.0 [[5dfe435](https://github.com/Tomas2D/promise-based-task/commit/5dfe435c97c09db0423a547c003b918482c58c22)] 185 | - Merge pull request [#288](https://github.com/Tomas2D/promise-based-task/issues/288) from Tomas2D/dependabot/npm_and_yarn/eslint-8.53.0 [[eaa3d78](https://github.com/Tomas2D/promise-based-task/commit/eaa3d78b9ae6b5a2c5b1d6773c624ca464779d47)] 186 | - Bump eslint from 8.52.0 to 8.53.0 [[ad31bda](https://github.com/Tomas2D/promise-based-task/commit/ad31bda2dd1e6ff57d0be0877e2e8c2a12ec8e14)] 187 | - Merge pull request [#287](https://github.com/Tomas2D/promise-based-task/issues/287) from Tomas2D/dependabot/npm_and_yarn/types/node-20.8.10 [[023f596](https://github.com/Tomas2D/promise-based-task/commit/023f596b6af6e8ef75dae824c2f25629464dccf8)] 188 | - Bump @types/node from 20.8.9 to 20.8.10 [[d838c41](https://github.com/Tomas2D/promise-based-task/commit/d838c4128eecfcb92fe2d94c6c019cc6bdc93982)] 189 | - Merge pull request [#285](https://github.com/Tomas2D/promise-based-task/issues/285) from Tomas2D/revert-275-dependabot/npm_and_yarn/lint-staged-15.0.1 [[4cdc3a4](https://github.com/Tomas2D/promise-based-task/commit/4cdc3a412d7328403e65659188b758519c7a7c9a)] 190 | - Revert "Bump lint-staged from 14.0.1 to 15.0.1" [[e2e17ae](https://github.com/Tomas2D/promise-based-task/commit/e2e17ae43feac5322057e75a355cba305f6c238d)] 191 | - Merge pull request [#283](https://github.com/Tomas2D/promise-based-task/issues/283) from Tomas2D/revert-279-dependabot/npm_and_yarn/lint-staged-15.0.2 [[09963f5](https://github.com/Tomas2D/promise-based-task/commit/09963f59fa2293898459ea4fe3fe8d246067efd9)] 192 | - Revert "Bump lint-staged from 15.0.1 to 15.0.2" [[62c306b](https://github.com/Tomas2D/promise-based-task/commit/62c306bffa459b1886e7cde57baac1d31f8b1873)] 193 | - Merge pull request [#282](https://github.com/Tomas2D/promise-based-task/issues/282) from Tomas2D/dependabot/npm_and_yarn/types/node-20.8.9 [[05ff1c3](https://github.com/Tomas2D/promise-based-task/commit/05ff1c3b5092e3e42ea045d0f0eaa394b0a47384)] 194 | - Bump @types/node from 20.8.8 to 20.8.9 [[f333f04](https://github.com/Tomas2D/promise-based-task/commit/f333f04f9e58383115294d74cb986e1ce2bec2d9)] 195 | - Merge pull request [#281](https://github.com/Tomas2D/promise-based-task/issues/281) from Tomas2D/dependabot/npm_and_yarn/types/node-20.8.8 [[b5c43a2](https://github.com/Tomas2D/promise-based-task/commit/b5c43a223bd7d493c42049c17178265bb11d4a5d)] 196 | - Bump @types/node from 20.8.7 to 20.8.8 [[3027c27](https://github.com/Tomas2D/promise-based-task/commit/3027c27b3cdc302d2a811e92c6ef602a00952bb5)] 197 | - Merge pull request [#280](https://github.com/Tomas2D/promise-based-task/issues/280) from Tomas2D/dependabot/npm_and_yarn/eslint-8.52.0 [[053b698](https://github.com/Tomas2D/promise-based-task/commit/053b698ca2e7763d8320475d811548287afa1d1c)] 198 | - Bump eslint from 8.51.0 to 8.52.0 [[e15625d](https://github.com/Tomas2D/promise-based-task/commit/e15625d5fc23ca00a450652537a4c1ba6eee2439)] 199 | - Merge pull request [#279](https://github.com/Tomas2D/promise-based-task/issues/279) from Tomas2D/dependabot/npm_and_yarn/lint-staged-15.0.2 [[351e06e](https://github.com/Tomas2D/promise-based-task/commit/351e06e51b31456926c58e11608328a1442e2067)] 200 | - Bump lint-staged from 15.0.1 to 15.0.2 [[bdc3573](https://github.com/Tomas2D/promise-based-task/commit/bdc35732d87fc9b9fd7976b1bda8ca73838b5d47)] 201 | - Merge pull request [#278](https://github.com/Tomas2D/promise-based-task/issues/278) from Tomas2D/dependabot/npm_and_yarn/types/node-20.8.7 [[955affa](https://github.com/Tomas2D/promise-based-task/commit/955affa164ed902dd5f749b299e40636d12fe764)] 202 | - Bump @types/node from 20.8.6 to 20.8.7 [[9c03089](https://github.com/Tomas2D/promise-based-task/commit/9c03089a87bc253a6fff10125d4df0b0b4f2bc6d)] 203 | - Merge pull request [#277](https://github.com/Tomas2D/promise-based-task/issues/277) from Tomas2D/dependabot/npm_and_yarn/babel/traverse-7.23.2 [[e0d330d](https://github.com/Tomas2D/promise-based-task/commit/e0d330d86d506f28503aec33f90485dcf76a1c37)] 204 | - Bump @babel/traverse from 7.16.5 to 7.23.2 [[74893f1](https://github.com/Tomas2D/promise-based-task/commit/74893f1db30c25908a9731ef578f1442165ed516)] 205 | - Merge pull request [#275](https://github.com/Tomas2D/promise-based-task/issues/275) from Tomas2D/dependabot/npm_and_yarn/lint-staged-15.0.1 [[2ed68c3](https://github.com/Tomas2D/promise-based-task/commit/2ed68c33ee0052b741f1a5ec5fc86d585507a988)] 206 | - Merge pull request [#276](https://github.com/Tomas2D/promise-based-task/issues/276) from Tomas2D/dependabot/npm_and_yarn/types/node-20.8.6 [[306bbb2](https://github.com/Tomas2D/promise-based-task/commit/306bbb2f2c3eb932b746e411741980d9cc13177a)] 207 | - Bump @types/node from 20.8.5 to 20.8.6 [[a30f869](https://github.com/Tomas2D/promise-based-task/commit/a30f869ccb59d373be5e2f723df02a1a2231fc89)] 208 | - Bump lint-staged from 14.0.1 to 15.0.1 [[ee5e535](https://github.com/Tomas2D/promise-based-task/commit/ee5e5358e87b9a8d568731121a6ce881151472e8)] 209 | - Merge pull request [#274](https://github.com/Tomas2D/promise-based-task/issues/274) from Tomas2D/dependabot/npm_and_yarn/types/node-20.8.5 [[7ae7054](https://github.com/Tomas2D/promise-based-task/commit/7ae70545bbd2a2070275b8605a5d76aec8d10c30)] 210 | - Bump @types/node from 20.8.4 to 20.8.5 [[7298d9a](https://github.com/Tomas2D/promise-based-task/commit/7298d9a897585726086cb0cfe02fe2a244b3a9cf)] 211 | - Merge pull request [#273](https://github.com/Tomas2D/promise-based-task/issues/273) from Tomas2D/dependabot/npm_and_yarn/types/node-20.8.4 [[e60c209](https://github.com/Tomas2D/promise-based-task/commit/e60c2097acfd93617f4f6377691d90efdc045c54)] 212 | - Bump @types/node from 20.8.3 to 20.8.4 [[f9256cc](https://github.com/Tomas2D/promise-based-task/commit/f9256cce616bc792c8bf7185d5457306c3c6880f)] 213 | - Merge pull request [#271](https://github.com/Tomas2D/promise-based-task/issues/271) from Tomas2D/dependabot/npm_and_yarn/types/node-20.8.3 [[45c3419](https://github.com/Tomas2D/promise-based-task/commit/45c3419459bf070c7c5d04cc934fe76f0ea42e82)] 214 | - Merge pull request [#272](https://github.com/Tomas2D/promise-based-task/issues/272) from Tomas2D/dependabot/npm_and_yarn/eslint-8.51.0 [[fd202ad](https://github.com/Tomas2D/promise-based-task/commit/fd202adddf7d94d1a00d8d0d450efee8af298590)] 215 | - Bump eslint from 8.50.0 to 8.51.0 [[e80a390](https://github.com/Tomas2D/promise-based-task/commit/e80a3905fdfe9328619eeedebaa65405c365ec85)] 216 | - Bump @types/node from 20.8.2 to 20.8.3 [[b2af398](https://github.com/Tomas2D/promise-based-task/commit/b2af398d87abe6a2e0f539dafdae86fef95c1b6f)] 217 | - Merge pull request [#270](https://github.com/Tomas2D/promise-based-task/issues/270) from Tomas2D/dependabot/npm_and_yarn/types/node-20.8.2 [[0b5bf3f](https://github.com/Tomas2D/promise-based-task/commit/0b5bf3f85095c72fdbfbc989b7efa701a5f8707a)] 218 | - Bump @types/node from 20.8.0 to 20.8.2 [[d0caeaa](https://github.com/Tomas2D/promise-based-task/commit/d0caeaabaf5c22e8ae8d9be3bd39ab421182570a)] 219 | - Merge pull request [#269](https://github.com/Tomas2D/promise-based-task/issues/269) from Tomas2D/dependabot/npm_and_yarn/types/node-20.8.0 [[40215dc](https://github.com/Tomas2D/promise-based-task/commit/40215dc815cbb429ef5f930bfed7db8fd70e7b8e)] 220 | - Bump @types/node from 20.7.1 to 20.8.0 [[e9a56c5](https://github.com/Tomas2D/promise-based-task/commit/e9a56c5bbf0fa636d02cab1f7f58930d8081f80a)] 221 | - Merge pull request [#268](https://github.com/Tomas2D/promise-based-task/issues/268) from Tomas2D/dependabot/npm_and_yarn/types/node-20.7.1 [[6562a90](https://github.com/Tomas2D/promise-based-task/commit/6562a90669f81a01ab8c2121d5d3996583e807b1)] 222 | - Bump @types/node from 20.7.0 to 20.7.1 [[a34ba40](https://github.com/Tomas2D/promise-based-task/commit/a34ba408702e46b3b187b1dbbdeccbe3fda8dbf5)] 223 | - Merge pull request [#267](https://github.com/Tomas2D/promise-based-task/issues/267) from Tomas2D/dependabot/npm_and_yarn/types/node-20.7.0 [[0980219](https://github.com/Tomas2D/promise-based-task/commit/09802196a99d9a5cb90b3ec868a5de3481ae7916)] 224 | - Bump @types/node from 20.6.5 to 20.7.0 [[538d016](https://github.com/Tomas2D/promise-based-task/commit/538d016213791f084c8a18f5592ed2c4d8990291)] 225 | - Merge pull request [#265](https://github.com/Tomas2D/promise-based-task/issues/265) from Tomas2D/dependabot/npm_and_yarn/eslint-8.50.0 [[21a3826](https://github.com/Tomas2D/promise-based-task/commit/21a3826c6bbcf6b5dcc0eb0d8d5c0de82b7c6e03)] 226 | - Merge pull request [#266](https://github.com/Tomas2D/promise-based-task/issues/266) from Tomas2D/dependabot/npm_and_yarn/types/node-20.6.5 [[653e645](https://github.com/Tomas2D/promise-based-task/commit/653e6454924def71c451fb7dacc37d10da416359)] 227 | - Bump eslint from 8.49.0 to 8.50.0 [[c22653c](https://github.com/Tomas2D/promise-based-task/commit/c22653cdf03c795facf0cca72c86a34c550e8357)] 228 | - Bump @types/node from 20.6.3 to 20.6.5 [[1a986a8](https://github.com/Tomas2D/promise-based-task/commit/1a986a8afae815f3e07fc47f0c23482e184df5f6)] 229 | - 📝 Create FUNDING.yml [[430bf5a](https://github.com/Tomas2D/promise-based-task/commit/430bf5a61924889732f90914ef1223164bd97032)] 230 | - Merge pull request [#264](https://github.com/Tomas2D/promise-based-task/issues/264) from Tomas2D/dependabot/npm_and_yarn/types/node-20.6.3 [[c5fc3f1](https://github.com/Tomas2D/promise-based-task/commit/c5fc3f15f1c87bfffa8b9d75b46b433b531a1cd2)] 231 | - Bump @types/node from 20.6.2 to 20.6.3 [[e206996](https://github.com/Tomas2D/promise-based-task/commit/e20699675cd1a9eb67c6f22a9e8284f9b3fa9110)] 232 | - Merge pull request [#263](https://github.com/Tomas2D/promise-based-task/issues/263) from Tomas2D/dependabot/npm_and_yarn/types/node-20.6.2 [[b3ed6ea](https://github.com/Tomas2D/promise-based-task/commit/b3ed6eab44d538d4927660f9ad79aba68133725e)] 233 | - Bump @types/node from 20.6.0 to 20.6.2 [[006fa2f](https://github.com/Tomas2D/promise-based-task/commit/006fa2fd91c36e8b210b146bc1da162254f4511b)] 234 | - Merge pull request [#261](https://github.com/Tomas2D/promise-based-task/issues/261) from Tomas2D/dependabot/npm_and_yarn/types/node-20.6.0 [[598d751](https://github.com/Tomas2D/promise-based-task/commit/598d751b9c938f4988e21a5d7aea7022f2790df6)] 235 | - Merge pull request [#262](https://github.com/Tomas2D/promise-based-task/issues/262) from Tomas2D/dependabot/npm_and_yarn/eslint-8.49.0 [[1bcef76](https://github.com/Tomas2D/promise-based-task/commit/1bcef765e28bbff5d295532dc06e7de0422671fe)] 236 | - Bump eslint from 8.48.0 to 8.49.0 [[d2a9873](https://github.com/Tomas2D/promise-based-task/commit/d2a98731d6a9b431d6e72ad91e2b2a686424b078)] 237 | - Bump @types/node from 20.5.9 to 20.6.0 [[6a3aaaf](https://github.com/Tomas2D/promise-based-task/commit/6a3aaaf8587873eed32cafe16ad461a96c494091)] 238 | - Merge pull request [#260](https://github.com/Tomas2D/promise-based-task/issues/260) from Tomas2D/dependabot/npm_and_yarn/types/node-20.5.9 [[8e2ee43](https://github.com/Tomas2D/promise-based-task/commit/8e2ee435bc4cbbf099eb7111c32215fcc69417f1)] 239 | - Bump @types/node from 20.5.7 to 20.5.9 [[c00e7c4](https://github.com/Tomas2D/promise-based-task/commit/c00e7c479e89c96cd18580e3d8df872343265709)] 240 | - Merge pull request [#259](https://github.com/Tomas2D/promise-based-task/issues/259) from Tomas2D/dependabot/npm_and_yarn/prettier-3.0.3 [[6eedaa3](https://github.com/Tomas2D/promise-based-task/commit/6eedaa3e7630f5cb3069aad8a1e07f2f03083149)] 241 | - Bump prettier from 3.0.2 to 3.0.3 [[bc3c61e](https://github.com/Tomas2D/promise-based-task/commit/bc3c61e3df618890ba3562efdcc65f4d6f3c0d1e)] 242 | - Merge pull request [#258](https://github.com/Tomas2D/promise-based-task/issues/258) from Tomas2D/dependabot/npm_and_yarn/types/node-20.5.7 [[8b3ea80](https://github.com/Tomas2D/promise-based-task/commit/8b3ea80a87ff3bdf2102ea14a148ffbbf4cc7318)] 243 | - Merge pull request [#257](https://github.com/Tomas2D/promise-based-task/issues/257) from Tomas2D/dependabot/npm_and_yarn/eslint-8.48.0 [[6ca8c2d](https://github.com/Tomas2D/promise-based-task/commit/6ca8c2dbf8348309e35d0a956f28591c0dab36f0)] 244 | - Bump @types/node from 20.5.6 to 20.5.7 [[0855a9d](https://github.com/Tomas2D/promise-based-task/commit/0855a9dbbd8107d444f1c2d5396b9d604e9b6801)] 245 | - Bump eslint from 8.47.0 to 8.48.0 [[e12ea4a](https://github.com/Tomas2D/promise-based-task/commit/e12ea4a7daac5d5e825b4b3fcafa29004df3420e)] 246 | - Merge pull request [#256](https://github.com/Tomas2D/promise-based-task/issues/256) from Tomas2D/dependabot/npm_and_yarn/types/node-20.5.6 [[6d2908f](https://github.com/Tomas2D/promise-based-task/commit/6d2908f9034f19391b2259f0be8ebdb7cd89edd7)] 247 | - Bump @types/node from 20.5.4 to 20.5.6 [[aa03bce](https://github.com/Tomas2D/promise-based-task/commit/aa03bceaff32586b583e0c0fb4d171934c3f04b5)] 248 | - Merge pull request [#255](https://github.com/Tomas2D/promise-based-task/issues/255) from Tomas2D/dependabot/npm_and_yarn/types/node-20.5.4 [[245b60e](https://github.com/Tomas2D/promise-based-task/commit/245b60e0ff7fac9df8753bdfbea19b1dc99ec42c)] 249 | - Bump @types/node from 20.5.1 to 20.5.4 [[aa34b0c](https://github.com/Tomas2D/promise-based-task/commit/aa34b0c6c5ebbe72da81a1fc1d30a5bf72844a1b)] 250 | - Merge pull request [#253](https://github.com/Tomas2D/promise-based-task/issues/253) from Tomas2D/dependabot/npm_and_yarn/lint-staged-14.0.1 [[3e05faf](https://github.com/Tomas2D/promise-based-task/commit/3e05fafbab6078968bb96dfc76a9bdcd83797de2)] 251 | - Bump lint-staged from 14.0.0 to 14.0.1 [[b6e57c8](https://github.com/Tomas2D/promise-based-task/commit/b6e57c8d5faf48ac5560efe6088a07d2facbc808)] 252 | - Merge pull request [#252](https://github.com/Tomas2D/promise-based-task/issues/252) from Tomas2D/dependabot/npm_and_yarn/types/node-20.5.1 [[dab5690](https://github.com/Tomas2D/promise-based-task/commit/dab5690dc18873930ba96a56880e5e709b756c1e)] 253 | - Bump @types/node from 20.5.0 to 20.5.1 [[33118f5](https://github.com/Tomas2D/promise-based-task/commit/33118f5b8e677053f75843624707640a62c1d50e)] 254 | - Merge pull request [#251](https://github.com/Tomas2D/promise-based-task/issues/251) from Tomas2D/dependabot/npm_and_yarn/prettier-3.0.2 [[4b564f5](https://github.com/Tomas2D/promise-based-task/commit/4b564f5b11fd7a694eef6badd0e3cdef968e04b4)] 255 | - Bump prettier from 3.0.1 to 3.0.2 [[8758bbc](https://github.com/Tomas2D/promise-based-task/commit/8758bbcdb6c6149038faa8d99676d4657c993102)] 256 | - Merge pull request [#249](https://github.com/Tomas2D/promise-based-task/issues/249) from Tomas2D/dependabot/npm_and_yarn/eslint-8.47.0 [[17a8550](https://github.com/Tomas2D/promise-based-task/commit/17a855037dace22c0e3c7faffad504c59ccf93bc)] 257 | - Merge pull request [#248](https://github.com/Tomas2D/promise-based-task/issues/248) from Tomas2D/dependabot/npm_and_yarn/types/node-20.5.0 [[519fb18](https://github.com/Tomas2D/promise-based-task/commit/519fb1867982c7aa8f70fa7096ea1d6285d9b187)] 258 | - Merge pull request [#250](https://github.com/Tomas2D/promise-based-task/issues/250) from Tomas2D/dependabot/npm_and_yarn/lint-staged-14.0.0 [[d70d4ec](https://github.com/Tomas2D/promise-based-task/commit/d70d4ecf46039ec007b17c442364a32dc0ac802a)] 259 | - Bump eslint from 8.46.0 to 8.47.0 [[cb04e83](https://github.com/Tomas2D/promise-based-task/commit/cb04e83ce2a570b7819a29d1523ffa1f7029241e)] 260 | - Bump lint-staged from 13.2.3 to 14.0.0 [[f99f8dd](https://github.com/Tomas2D/promise-based-task/commit/f99f8dd238f54449f4766246dedb281936c2ce23)] 261 | - Bump @types/node from 20.4.9 to 20.5.0 [[959bb2a](https://github.com/Tomas2D/promise-based-task/commit/959bb2a1e057ca251a8534c058d79e4965f152b1)] 262 | - Merge pull request [#242](https://github.com/Tomas2D/promise-based-task/issues/242) from Tomas2D/dependabot/npm_and_yarn/tsup-7.2.0 [[010c162](https://github.com/Tomas2D/promise-based-task/commit/010c1621c4cab1801805f419d915737fa728b3aa)] 263 | - Merge pull request [#247](https://github.com/Tomas2D/promise-based-task/issues/247) from Tomas2D/dependabot/npm_and_yarn/types/node-20.4.9 [[b82bf77](https://github.com/Tomas2D/promise-based-task/commit/b82bf77361b22aa4c64d59bbbc4c66dc5c7da479)] 264 | - Bump @types/node from 20.4.8 to 20.4.9 [[f8b3b7b](https://github.com/Tomas2D/promise-based-task/commit/f8b3b7b65d7312333775e2ddd3f8a7adc9b915c3)] 265 | - Merge pull request [#244](https://github.com/Tomas2D/promise-based-task/issues/244) from Tomas2D/dependabot/npm_and_yarn/prettier-3.0.1 [[32cfe3f](https://github.com/Tomas2D/promise-based-task/commit/32cfe3f9c3989ab753159cf6e6e6772590811b87)] 266 | - Merge pull request [#245](https://github.com/Tomas2D/promise-based-task/issues/245) from Tomas2D/dependabot/npm_and_yarn/types/node-20.4.8 [[1204b8f](https://github.com/Tomas2D/promise-based-task/commit/1204b8fb27f3bb81078d3479effaffa02397319b)] 267 | - Merge pull request [#246](https://github.com/Tomas2D/promise-based-task/issues/246) from Tomas2D/dependabot/npm_and_yarn/eslint-config-prettier-9.0.0 [[b751483](https://github.com/Tomas2D/promise-based-task/commit/b751483e0ee2f7a1f74bebba0fb8bca7392d6f28)] 268 | - Bump prettier from 3.0.0 to 3.0.1 [[5797af2](https://github.com/Tomas2D/promise-based-task/commit/5797af2c66761103695cb6431061e3c89e00d9bc)] 269 | - Bump eslint-config-prettier from 8.9.0 to 9.0.0 [[f2d2de9](https://github.com/Tomas2D/promise-based-task/commit/f2d2de9ef02bd9cc21a20b65d05124aba1e4799c)] 270 | - Bump @types/node from 20.4.5 to 20.4.8 [[08f5f40](https://github.com/Tomas2D/promise-based-task/commit/08f5f40082458323b02db4f67350b2296b3ed9c3)] 271 | - Bump tsup from 7.1.0 to 7.2.0 [[134d615](https://github.com/Tomas2D/promise-based-task/commit/134d6158580963816b2615c277f07d7457135bc5)] 272 | - Merge pull request [#240](https://github.com/Tomas2D/promise-based-task/issues/240) from Tomas2D/dependabot/npm_and_yarn/eslint-8.46.0 [[a8868a0](https://github.com/Tomas2D/promise-based-task/commit/a8868a0154ba6da0301a7e9be60d0d794a07175c)] 273 | - Bump eslint from 8.45.0 to 8.46.0 [[7c0c334](https://github.com/Tomas2D/promise-based-task/commit/7c0c3345aa90e03fa9f57401c3e3e1755f1071bc)] 274 | - Merge pull request [#239](https://github.com/Tomas2D/promise-based-task/issues/239) from Tomas2D/dependabot/npm_and_yarn/eslint-config-prettier-8.9.0 [[7dc147e](https://github.com/Tomas2D/promise-based-task/commit/7dc147e61a283f84605cd9bc3f90893ba139b75a)] 275 | - Bump eslint-config-prettier from 8.8.0 to 8.9.0 [[ab01165](https://github.com/Tomas2D/promise-based-task/commit/ab011652a1bf579b666c2a5389de39a1405958ea)] 276 | - Merge pull request [#238](https://github.com/Tomas2D/promise-based-task/issues/238) from Tomas2D/dependabot/npm_and_yarn/types/node-20.4.5 [[3520ff9](https://github.com/Tomas2D/promise-based-task/commit/3520ff95288072101c44b51dcfeaf31baed60756)] 277 | - Bump @types/node from 20.4.4 to 20.4.5 [[ed3ffaf](https://github.com/Tomas2D/promise-based-task/commit/ed3ffaf2a48d02c3c8f91bcafb2434cdd06df6d1)] 278 | - Merge pull request [#237](https://github.com/Tomas2D/promise-based-task/issues/237) from Tomas2D/dependabot/npm_and_yarn/types/node-20.4.4 [[fd7872f](https://github.com/Tomas2D/promise-based-task/commit/fd7872fc6cb117f28f34f6c6449a722e938da335)] 279 | - Bump @types/node from 20.4.2 to 20.4.4 [[8f18056](https://github.com/Tomas2D/promise-based-task/commit/8f180562fb58d4ac689e6f38fc433b1bce3f8c92)] 280 | - Merge pull request [#236](https://github.com/Tomas2D/promise-based-task/issues/236) from Tomas2D/dependabot/npm_and_yarn/word-wrap-1.2.4 [[bcb7ba2](https://github.com/Tomas2D/promise-based-task/commit/bcb7ba268068f77cc55a7183d51bdea7dcc2ffe3)] 281 | - Bump word-wrap from 1.2.3 to 1.2.4 [[042aeee](https://github.com/Tomas2D/promise-based-task/commit/042aeeea392756735dc2fbd17f607e593431961e)] 282 | - Merge pull request [#235](https://github.com/Tomas2D/promise-based-task/issues/235) from Tomas2D/dependabot/npm_and_yarn/eslint-8.45.0 [[cadee6e](https://github.com/Tomas2D/promise-based-task/commit/cadee6eaf0a798d2e9c3fc156ad9621193dd9dd0)] 283 | - Bump eslint from 8.44.0 to 8.45.0 [[31e3aa2](https://github.com/Tomas2D/promise-based-task/commit/31e3aa2de7fe721ff6e3879bfc5c97dd9d383c43)] 284 | - Merge pull request [#234](https://github.com/Tomas2D/promise-based-task/issues/234) from Tomas2D/dependabot/npm_and_yarn/types/node-20.4.2 [[aeecb8f](https://github.com/Tomas2D/promise-based-task/commit/aeecb8f1f2a8bc4d2f179d2ce21b9abff15a0068)] 285 | - Bump @types/node from 20.4.1 to 20.4.2 [[4a2e9fa](https://github.com/Tomas2D/promise-based-task/commit/4a2e9fa4997915d817e099ca1f76d047c1597153)] 286 | - Merge pull request [#231](https://github.com/Tomas2D/promise-based-task/issues/231) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.62.0 [[93c42ed](https://github.com/Tomas2D/promise-based-task/commit/93c42eded555badadd04efa50a935dbc1a3136a3)] 287 | - Merge pull request [#233](https://github.com/Tomas2D/promise-based-task/issues/233) from Tomas2D/dependabot/npm_and_yarn/semver-6.3.1 [[b1eb05d](https://github.com/Tomas2D/promise-based-task/commit/b1eb05d6b9f22ce334d7c342b41e3d4ec9c8b5ad)] 288 | - Merge pull request [#232](https://github.com/Tomas2D/promise-based-task/issues/232) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.62.0 [[cdf7b03](https://github.com/Tomas2D/promise-based-task/commit/cdf7b03675958b5b9a62d1599566b62025f91a8c)] 289 | - Bump @typescript-eslint/parser from 5.61.0 to 5.62.0 [[ffb68d2](https://github.com/Tomas2D/promise-based-task/commit/ffb68d22832bb1b062323c16e45ebbbe3a5ed14a)] 290 | - Bump semver from 6.3.0 to 6.3.1 [[3ca7179](https://github.com/Tomas2D/promise-based-task/commit/3ca7179faa0c6e141316c984bebfcd17b8cf748d)] 291 | - Bump @typescript-eslint/eslint-plugin from 5.61.0 to 5.62.0 [[76583e0](https://github.com/Tomas2D/promise-based-task/commit/76583e085dd2cfb19a8c120308042b7df430afd9)] 292 | - Merge pull request [#230](https://github.com/Tomas2D/promise-based-task/issues/230) from Tomas2D/dependabot/npm_and_yarn/types/node-20.4.1 [[3893a54](https://github.com/Tomas2D/promise-based-task/commit/3893a5441e5448e69794baab0b2de8e77e2689d0)] 293 | - Bump @types/node from 20.4.0 to 20.4.1 [[95de25b](https://github.com/Tomas2D/promise-based-task/commit/95de25b351ea1da6923a5503d7499db9fd71cf4c)] 294 | - Merge pull request [#229](https://github.com/Tomas2D/promise-based-task/issues/229) from Tomas2D/dependabot/npm_and_yarn/tough-cookie-4.1.3 [[0ce6a54](https://github.com/Tomas2D/promise-based-task/commit/0ce6a5459bae05c41473c61a0a2f8f9802f64182)] 295 | - Bump tough-cookie from 4.0.0 to 4.1.3 [[dfa8926](https://github.com/Tomas2D/promise-based-task/commit/dfa8926659f4a567c7c73b0c162b20c1835bfe7b)] 296 | - Merge pull request [#227](https://github.com/Tomas2D/promise-based-task/issues/227) from Tomas2D/dependabot/npm_and_yarn/prettier-3.0.0 [[f38d01f](https://github.com/Tomas2D/promise-based-task/commit/f38d01f489235a5e0fd3d6a77cbfa9be1464a05f)] 297 | - Merge pull request [#228](https://github.com/Tomas2D/promise-based-task/issues/228) from Tomas2D/dependabot/npm_and_yarn/types/node-20.4.0 [[2b77add](https://github.com/Tomas2D/promise-based-task/commit/2b77add61cdef24c9c31d57db56b9dfc4b6b7972)] 298 | - Bump prettier from 2.8.8 to 3.0.0 [[67f05a8](https://github.com/Tomas2D/promise-based-task/commit/67f05a86567976c1fb1102e7586a45611a6a25c2)] 299 | - Bump @types/node from 20.3.3 to 20.4.0 [[092d29b](https://github.com/Tomas2D/promise-based-task/commit/092d29b357d681341f46f3d7a7699cb35487e544)] 300 | - Merge pull request [#225](https://github.com/Tomas2D/promise-based-task/issues/225) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.61.0 [[6f4debb](https://github.com/Tomas2D/promise-based-task/commit/6f4debb29e9c2a9e9d5d10d411c0b8a61f3dfa3b)] 301 | - Merge pull request [#226](https://github.com/Tomas2D/promise-based-task/issues/226) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.61.0 [[637322c](https://github.com/Tomas2D/promise-based-task/commit/637322cdba1444754f3fb275ab474b59447f9cba)] 302 | - Bump @typescript-eslint/parser from 5.60.1 to 5.61.0 [[1d59b93](https://github.com/Tomas2D/promise-based-task/commit/1d59b930ad8560657eb72c0bf34bb2dc9c7fb21d)] 303 | - Bump @typescript-eslint/eslint-plugin from 5.60.1 to 5.61.0 [[69a8608](https://github.com/Tomas2D/promise-based-task/commit/69a8608b9d47e24b86996590a38bfbea1e2e6258)] 304 | - Merge pull request [#223](https://github.com/Tomas2D/promise-based-task/issues/223) from Tomas2D/dependabot/npm_and_yarn/types/node-20.3.3 [[b5fe0f3](https://github.com/Tomas2D/promise-based-task/commit/b5fe0f3162ecf74493a01688ca4bb677e6945765)] 305 | - Merge pull request [#224](https://github.com/Tomas2D/promise-based-task/issues/224) from Tomas2D/dependabot/npm_and_yarn/eslint-8.44.0 [[49192e7](https://github.com/Tomas2D/promise-based-task/commit/49192e7402b0f15f1a5e13565986ad2481d5eb40)] 306 | - Bump eslint from 8.43.0 to 8.44.0 [[77a816e](https://github.com/Tomas2D/promise-based-task/commit/77a816ec5180fa243d2fb465711b248b7df4af05)] 307 | - Bump @types/node from 20.3.2 to 20.3.3 [[b6d5b42](https://github.com/Tomas2D/promise-based-task/commit/b6d5b423f9113fb5135eab161b80e6ca4c8404ac)] 308 | - Merge pull request [#221](https://github.com/Tomas2D/promise-based-task/issues/221) from Tomas2D/dependabot/npm_and_yarn/lint-staged-13.2.3 [[22cfe74](https://github.com/Tomas2D/promise-based-task/commit/22cfe74e08d5a21c12c18e4338014c5176d17f73)] 309 | - Merge pull request [#222](https://github.com/Tomas2D/promise-based-task/issues/222) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.60.1 [[6c4db7f](https://github.com/Tomas2D/promise-based-task/commit/6c4db7f06e0cecccc71d26d5452627dc30f8f631)] 310 | - Bump @typescript-eslint/parser from 5.59.9 to 5.60.1 [[a8f2857](https://github.com/Tomas2D/promise-based-task/commit/a8f28572234e5fef16364a73dab22c2ecc5e0d9c)] 311 | - Bump lint-staged from 13.2.1 to 13.2.3 [[8e68302](https://github.com/Tomas2D/promise-based-task/commit/8e683026a2dd15753d7c94ea10a2368b7817b5e9)] 312 | - Merge pull request [#218](https://github.com/Tomas2D/promise-based-task/issues/218) from Tomas2D/dependabot/npm_and_yarn/yaml-2.3.1 [[48a9309](https://github.com/Tomas2D/promise-based-task/commit/48a930979546be790533c288b7cfec064aa5c4ca)] 313 | - Merge pull request [#164](https://github.com/Tomas2D/promise-based-task/issues/164) from Tomas2D/dependabot/npm_and_yarn/eslint-config-prettier-8.8.0 [[aec744c](https://github.com/Tomas2D/promise-based-task/commit/aec744c7489148213459ddbcce6b8e202436031a)] 314 | - Merge pull request [#219](https://github.com/Tomas2D/promise-based-task/issues/219) from Tomas2D/dependabot/npm_and_yarn/types/node-20.3.2 [[528572e](https://github.com/Tomas2D/promise-based-task/commit/528572e6914c779676f10a242b69b38b064eaa94)] 315 | - Merge pull request [#220](https://github.com/Tomas2D/promise-based-task/issues/220) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.60.1 [[b7ce81a](https://github.com/Tomas2D/promise-based-task/commit/b7ce81af580b2f219befd39057b06d1366c503fc)] 316 | - Bump @typescript-eslint/eslint-plugin from 5.59.9 to 5.60.1 [[1704e03](https://github.com/Tomas2D/promise-based-task/commit/1704e036e1fac61b497a6d37f97e4a61d2258fac)] 317 | - Bump @types/node from 20.2.4 to 20.3.2 [[4170e0a](https://github.com/Tomas2D/promise-based-task/commit/4170e0a2ca8284d541141136f085c46daaf6b0fc)] 318 | - Merge pull request [#217](https://github.com/Tomas2D/promise-based-task/issues/217) from Tomas2D/dependabot/npm_and_yarn/tsup-7.1.0 [[70ed951](https://github.com/Tomas2D/promise-based-task/commit/70ed9511d12f14d8b5115658d6749c7d59e44746)] 319 | - Bump yaml from 2.2.1 to 2.3.1 [[8e4c91e](https://github.com/Tomas2D/promise-based-task/commit/8e4c91eab527d7e29becf263de8f54b05f5b71d1)] 320 | - Bump tsup from 6.7.0 to 7.1.0 [[f48a895](https://github.com/Tomas2D/promise-based-task/commit/f48a89502b0caf966878fc8990d9a5e144dfb9d1)] 321 | - Merge pull request [#214](https://github.com/Tomas2D/promise-based-task/issues/214) from Tomas2D/dependabot/npm_and_yarn/eslint-8.43.0 [[43d399f](https://github.com/Tomas2D/promise-based-task/commit/43d399f64af48e0020641a6dbf9453d8e4202312)] 322 | - Bump eslint from 8.41.0 to 8.43.0 [[329d2d4](https://github.com/Tomas2D/promise-based-task/commit/329d2d472c4f095be2e4fb95e6f668cc33478eac)] 323 | - Merge pull request [#210](https://github.com/Tomas2D/promise-based-task/issues/210) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.59.9 [[20f2189](https://github.com/Tomas2D/promise-based-task/commit/20f2189d2e710e7bd52c17bed99e7701513baba8)] 324 | - Bump @typescript-eslint/eslint-plugin from 5.59.8 to 5.59.9 [[e8f3bfb](https://github.com/Tomas2D/promise-based-task/commit/e8f3bfb0672e58685697e2912fe07a3790fcae0d)] 325 | - Merge pull request [#209](https://github.com/Tomas2D/promise-based-task/issues/209) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.59.9 [[5025073](https://github.com/Tomas2D/promise-based-task/commit/502507302620fe2ad10011645b13b31f40cc7a00)] 326 | - Bump @typescript-eslint/parser from 5.59.8 to 5.59.9 [[1be7b47](https://github.com/Tomas2D/promise-based-task/commit/1be7b47c218876af416e44cb7ad67b18a8af56af)] 327 | - Merge pull request [#206](https://github.com/Tomas2D/promise-based-task/issues/206) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.59.8 [[217c573](https://github.com/Tomas2D/promise-based-task/commit/217c5732dc03fbae5553dfd4b563725ad7b9cbc9)] 328 | - Merge pull request [#207](https://github.com/Tomas2D/promise-based-task/issues/207) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.59.8 [[ee9e018](https://github.com/Tomas2D/promise-based-task/commit/ee9e018d60272d89f8a40d112c93d780cd7b56b5)] 329 | - Bump @typescript-eslint/parser from 5.59.7 to 5.59.8 [[a97d72d](https://github.com/Tomas2D/promise-based-task/commit/a97d72d6708d5c9228fd19501f05f2c4e9d75e69)] 330 | - Bump @typescript-eslint/eslint-plugin from 5.59.7 to 5.59.8 [[6350b41](https://github.com/Tomas2D/promise-based-task/commit/6350b41e616bda3f106b61c65d8c4a1152575a85)] 331 | - Merge pull request [#200](https://github.com/Tomas2D/promise-based-task/issues/200) from Tomas2D/dependabot/npm_and_yarn/eslint-8.41.0 [[ec8f6b9](https://github.com/Tomas2D/promise-based-task/commit/ec8f6b9ac75e9e1ff718e1d609ad9d8f5e8f1788)] 332 | - Merge pull request [#203](https://github.com/Tomas2D/promise-based-task/issues/203) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.59.7 [[c108fe5](https://github.com/Tomas2D/promise-based-task/commit/c108fe5af14bb39dc2e9cabba67d463e221d1a33)] 333 | - Merge pull request [#204](https://github.com/Tomas2D/promise-based-task/issues/204) from Tomas2D/dependabot/npm_and_yarn/types/node-20.2.4 [[70961c6](https://github.com/Tomas2D/promise-based-task/commit/70961c62a714e8bce860c5a2f194420e65ad0bd6)] 334 | - Bump eslint from 8.40.0 to 8.41.0 [[5c799fa](https://github.com/Tomas2D/promise-based-task/commit/5c799fa9057d5891ef07ff24adbb67378f45cba7)] 335 | - Bump @types/node from 20.2.1 to 20.2.4 [[9b1cbad](https://github.com/Tomas2D/promise-based-task/commit/9b1cbad58557043b3473d9f7c761e9885f65e546)] 336 | - Bump @typescript-eslint/parser from 5.59.6 to 5.59.7 [[cb40d7a](https://github.com/Tomas2D/promise-based-task/commit/cb40d7ae386c249eb7b8bdaa06df9a1debc09f9d)] 337 | - Merge pull request [#202](https://github.com/Tomas2D/promise-based-task/issues/202) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.59.7 [[d669af6](https://github.com/Tomas2D/promise-based-task/commit/d669af6bc927aa135a7670793bc18b74c78cd037)] 338 | - Bump @typescript-eslint/eslint-plugin from 5.59.6 to 5.59.7 [[110f8d3](https://github.com/Tomas2D/promise-based-task/commit/110f8d326b9d5abe998cc31b1c90abe7f9a1e86a)] 339 | - Merge pull request [#195](https://github.com/Tomas2D/promise-based-task/issues/195) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.59.6 [[26fc846](https://github.com/Tomas2D/promise-based-task/commit/26fc846c2c2160520a5c2d14ea7901e3bead018b)] 340 | - Merge pull request [#199](https://github.com/Tomas2D/promise-based-task/issues/199) from Tomas2D/dependabot/npm_and_yarn/types/node-20.2.1 [[145b2bb](https://github.com/Tomas2D/promise-based-task/commit/145b2bba240fcc2dcde5ec71cb67c4c3622bfa7f)] 341 | - Bump @typescript-eslint/parser from 5.59.1 to 5.59.6 [[8676532](https://github.com/Tomas2D/promise-based-task/commit/86765329f765a1e77964df1f78e101ddc7b0b2d7)] 342 | - Bump @types/node from 16.18.23 to 20.2.1 [[8da375c](https://github.com/Tomas2D/promise-based-task/commit/8da375caf72d53953f7545561475161dc94ad90d)] 343 | - Merge pull request [#196](https://github.com/Tomas2D/promise-based-task/issues/196) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.59.6 [[7da5d8b](https://github.com/Tomas2D/promise-based-task/commit/7da5d8bdc67b8ce7ae9fd6abb1f36b0926966f76)] 344 | - Bump @typescript-eslint/eslint-plugin from 5.59.5 to 5.59.6 [[05dabf8](https://github.com/Tomas2D/promise-based-task/commit/05dabf8c31c93614b15dd3788de715100100f9f2)] 345 | - Merge pull request [#193](https://github.com/Tomas2D/promise-based-task/issues/193) from Tomas2D/dependabot/npm_and_yarn/eslint-8.40.0 [[fd7839d](https://github.com/Tomas2D/promise-based-task/commit/fd7839da8c40496fb5f434f1ca5e06faf7ae7267)] 346 | - Bump eslint from 8.39.0 to 8.40.0 [[4eefa3f](https://github.com/Tomas2D/promise-based-task/commit/4eefa3f3eb1c347e58b59ec4088b0d62484efcec)] 347 | - Merge pull request [#190](https://github.com/Tomas2D/promise-based-task/issues/190) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.59.5 [[6f88ca8](https://github.com/Tomas2D/promise-based-task/commit/6f88ca8929513a294b9967a728ab981c55fc8473)] 348 | - Bump @typescript-eslint/eslint-plugin from 5.59.0 to 5.59.5 [[bbe854f](https://github.com/Tomas2D/promise-based-task/commit/bbe854f109351a4ef43fed94e3f2cae6d9d5acf8)] 349 | - Merge pull request [#179](https://github.com/Tomas2D/promise-based-task/issues/179) from Tomas2D/dependabot/npm_and_yarn/prettier-2.8.8 [[cd21ec2](https://github.com/Tomas2D/promise-based-task/commit/cd21ec2ee3f1bd13873cf2bd771d97d5d5ec6c92)] 350 | - Merge pull request [#180](https://github.com/Tomas2D/promise-based-task/issues/180) from Tomas2D/dependabot/npm_and_yarn/eslint-8.39.0 [[6de4935](https://github.com/Tomas2D/promise-based-task/commit/6de493505510269a5f7a1cc14176e384ec17d5c7)] 351 | - Merge pull request [#181](https://github.com/Tomas2D/promise-based-task/issues/181) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.59.1 [[24d11f5](https://github.com/Tomas2D/promise-based-task/commit/24d11f58b15a7163e22458da2db503756d0f188e)] 352 | - Bump eslint from 8.38.0 to 8.39.0 [[29a6d97](https://github.com/Tomas2D/promise-based-task/commit/29a6d97f05a8f51756d7b13c64cff675af4ef76f)] 353 | - Bump @typescript-eslint/parser from 5.59.0 to 5.59.1 [[da42104](https://github.com/Tomas2D/promise-based-task/commit/da421043d01d5a6751fcad7cfa925a2329ea9536)] 354 | - Bump prettier from 2.8.7 to 2.8.8 [[cdc7f0c](https://github.com/Tomas2D/promise-based-task/commit/cdc7f0ca1aec99abf006fcdf822a984f11140819)] 355 | - Merge pull request [#174](https://github.com/Tomas2D/promise-based-task/issues/174) from Tomas2D/dependabot/npm_and_yarn/prettier-2.8.7 [[36a7973](https://github.com/Tomas2D/promise-based-task/commit/36a7973334da89889413116242f3ee04de7346dc)] 356 | - Merge pull request [#175](https://github.com/Tomas2D/promise-based-task/issues/175) from Tomas2D/dependabot/npm_and_yarn/tsup-6.7.0 [[41101ac](https://github.com/Tomas2D/promise-based-task/commit/41101acab316e4e7ef3bcbc92eace49146a7983e)] 357 | - Merge pull request [#177](https://github.com/Tomas2D/promise-based-task/issues/177) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.59.0 [[457b4a0](https://github.com/Tomas2D/promise-based-task/commit/457b4a000ffd20342db26ff82ee1b147c6433a04)] 358 | - Merge pull request [#176](https://github.com/Tomas2D/promise-based-task/issues/176) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.59.0 [[31eb63b](https://github.com/Tomas2D/promise-based-task/commit/31eb63b3bffce9ceddcfd6ad822bd722f9b2be0b)] 359 | - Bump @typescript-eslint/parser from 5.58.0 to 5.59.0 [[557c236](https://github.com/Tomas2D/promise-based-task/commit/557c236661532e52b4d5dd31aadb1289e3a1bc3f)] 360 | - Bump @typescript-eslint/eslint-plugin from 5.57.0 to 5.59.0 [[a3b4bc1](https://github.com/Tomas2D/promise-based-task/commit/a3b4bc1762f2c53768158db8174313804ec581f0)] 361 | - Bump tsup from 6.6.3 to 6.7.0 [[7424d9a](https://github.com/Tomas2D/promise-based-task/commit/7424d9a2eff41f38ba482227407ddc57855cdc5a)] 362 | - Bump prettier from 2.8.4 to 2.8.7 [[6596ca4](https://github.com/Tomas2D/promise-based-task/commit/6596ca47b73de20ac9639ea33c360ce30b6f273b)] 363 | - Merge pull request [#168](https://github.com/Tomas2D/promise-based-task/issues/168) from Tomas2D/dependabot/npm_and_yarn/types/node-16.18.23 [[763d380](https://github.com/Tomas2D/promise-based-task/commit/763d3804198149eb8aca7f8d2b2114f920b5c29e)] 364 | - Merge pull request [#170](https://github.com/Tomas2D/promise-based-task/issues/170) from Tomas2D/dependabot/npm_and_yarn/eslint-8.38.0 [[94d8a88](https://github.com/Tomas2D/promise-based-task/commit/94d8a88ba52ec53d4f9a82a38033257a4660edd2)] 365 | - Merge pull request [#171](https://github.com/Tomas2D/promise-based-task/issues/171) from Tomas2D/dependabot/npm_and_yarn/lint-staged-13.2.1 [[16ff098](https://github.com/Tomas2D/promise-based-task/commit/16ff098324982ff4b432bb48a6e516905b413945)] 366 | - Merge pull request [#172](https://github.com/Tomas2D/promise-based-task/issues/172) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.58.0 [[6c2f385](https://github.com/Tomas2D/promise-based-task/commit/6c2f3852005c50740a3cb60dee73a16d83720dac)] 367 | - Bump eslint from 8.33.0 to 8.38.0 [[2cc5989](https://github.com/Tomas2D/promise-based-task/commit/2cc5989d8bcef2bd43c2a627b180639d7fbe9fd1)] 368 | - Bump @typescript-eslint/parser from 5.53.0 to 5.58.0 [[1ad53c1](https://github.com/Tomas2D/promise-based-task/commit/1ad53c18653947002617bad1ef4c3e449f4ac64d)] 369 | - Bump lint-staged from 13.1.0 to 13.2.1 [[b5d27d6](https://github.com/Tomas2D/promise-based-task/commit/b5d27d63dedd096365b5ae0b3b5afeb78088293c)] 370 | - Bump @types/node from 16.18.15 to 16.18.23 [[63c06fd](https://github.com/Tomas2D/promise-based-task/commit/63c06fdb5865b8de11a460957443e4a6d6776053)] 371 | - Merge pull request [#165](https://github.com/Tomas2D/promise-based-task/issues/165) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.57.0 [[06bad57](https://github.com/Tomas2D/promise-based-task/commit/06bad575c9d00cf5f0b2b2205f30bdb2739357b2)] 372 | - Bump @typescript-eslint/eslint-plugin from 5.54.0 to 5.57.0 [[35ee873](https://github.com/Tomas2D/promise-based-task/commit/35ee8731c705afccb5eb8bc1cea6c795b05f8d39)] 373 | - Bump eslint-config-prettier from 8.6.0 to 8.8.0 [[f9517c4](https://github.com/Tomas2D/promise-based-task/commit/f9517c4e99ef074044f60d3e599cde3fcecf68fc)] 374 | - Merge pull request [#160](https://github.com/Tomas2D/promise-based-task/issues/160) from Tomas2D/dependabot/npm_and_yarn/types/node-16.18.15 [[a1dd95b](https://github.com/Tomas2D/promise-based-task/commit/a1dd95b14c81467e98dcdf0dc167659aaf6a9731)] 375 | - Bump @types/node from 16.18.12 to 16.18.15 [[eab0aaa](https://github.com/Tomas2D/promise-based-task/commit/eab0aaac7d370d6ce93025b1b97bbc762829616b)] 376 | - Merge pull request [#153](https://github.com/Tomas2D/promise-based-task/issues/153) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.54.0 [[b1aaf50](https://github.com/Tomas2D/promise-based-task/commit/b1aaf50339f3c80b71299dc55b7e7d4e1cd30086)] 377 | - Bump @typescript-eslint/eslint-plugin from 5.50.0 to 5.54.0 [[b403b34](https://github.com/Tomas2D/promise-based-task/commit/b403b346061c34809a804927b93bbacfbf1f3233)] 378 | - Merge pull request [#149](https://github.com/Tomas2D/promise-based-task/issues/149) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.53.0 [[d925dc7](https://github.com/Tomas2D/promise-based-task/commit/d925dc7663c081758f035f86c131c217b971c3b6)] 379 | - Bump @typescript-eslint/parser from 5.51.0 to 5.53.0 [[dad4055](https://github.com/Tomas2D/promise-based-task/commit/dad40558ca0dc9b6d6c732d6c5cca7f78aa8b844)] 380 | - Merge pull request [#147](https://github.com/Tomas2D/promise-based-task/issues/147) from Tomas2D/dependabot/npm_and_yarn/tsup-6.6.3 [[2af24ee](https://github.com/Tomas2D/promise-based-task/commit/2af24ee7893941387cfc08ac783f294fbf93d545)] 381 | - Bump tsup from 6.5.0 to 6.6.3 [[e6f1dbc](https://github.com/Tomas2D/promise-based-task/commit/e6f1dbc03565f85311cca525eac6d83fe4efbb34)] 382 | - Merge pull request [#141](https://github.com/Tomas2D/promise-based-task/issues/141) from Tomas2D/dependabot/npm_and_yarn/prettier-2.8.4 [[4a0a149](https://github.com/Tomas2D/promise-based-task/commit/4a0a149936963a050ec4aa84686e55fc951dca8f)] 383 | - Bump prettier from 2.8.3 to 2.8.4 [[c4cd41f](https://github.com/Tomas2D/promise-based-task/commit/c4cd41f441f58224231ed0408a63c12916d9d814)] 384 | - Merge pull request [#136](https://github.com/Tomas2D/promise-based-task/issues/136) from Tomas2D/dependabot/npm_and_yarn/types/node-16.18.12 [[980e76a](https://github.com/Tomas2D/promise-based-task/commit/980e76ae52d692b72f089cf69032cc6a8e16ea85)] 385 | - Merge pull request [#138](https://github.com/Tomas2D/promise-based-task/issues/138) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.51.0 [[a10e84f](https://github.com/Tomas2D/promise-based-task/commit/a10e84f6c000abe2f3cdee2ec859a91ee894594f)] 386 | - Bump @typescript-eslint/parser from 5.49.0 to 5.51.0 [[9823897](https://github.com/Tomas2D/promise-based-task/commit/9823897644699f5076154ed948e56893bd181acb)] 387 | - Bump @types/node from 16.18.11 to 16.18.12 [[4e4656a](https://github.com/Tomas2D/promise-based-task/commit/4e4656ae0d953f1207c2da5d822e513488c9fdc0)] 388 | - Merge pull request [#135](https://github.com/Tomas2D/promise-based-task/issues/135) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.50.0 [[3f4dc29](https://github.com/Tomas2D/promise-based-task/commit/3f4dc29ea5b0978d3715113ab99b4a65236390f6)] 389 | - Bump @typescript-eslint/eslint-plugin from 5.49.0 to 5.50.0 [[f083685](https://github.com/Tomas2D/promise-based-task/commit/f083685827042d78c317c4c61684d102ae356275)] 390 | - Merge pull request [#132](https://github.com/Tomas2D/promise-based-task/issues/132) from Tomas2D/dependabot/npm_and_yarn/eslint-8.33.0 [[703b494](https://github.com/Tomas2D/promise-based-task/commit/703b4949e3a65c0451f9fcdad2ec0706cada3299)] 391 | - Merge pull request [#133](https://github.com/Tomas2D/promise-based-task/issues/133) from Tomas2D/dependabot/npm_and_yarn/typescript-4.9.5 [[c7caac2](https://github.com/Tomas2D/promise-based-task/commit/c7caac297533b639fd2fd96040de9d61156c7a39)] 392 | - Bump typescript from 4.9.4 to 4.9.5 [[69f0e30](https://github.com/Tomas2D/promise-based-task/commit/69f0e30befb5a03381db1954783bb465e42180e4)] 393 | - Bump eslint from 8.32.0 to 8.33.0 [[cd6ee2f](https://github.com/Tomas2D/promise-based-task/commit/cd6ee2f1de83a555521e73826e85d905ac09fe9a)] 394 | 395 | 396 | 397 | ## 2.2.0 (2023-01-24) 398 | 399 | ### Added 400 | 401 | - ✨ Add TaskQueue [[15bbb20](https://github.com/Tomas2D/promise-based-task/commit/15bbb20bf3fb56393e3104b82d10db0628f6cf1a)] 402 | 403 | ### Miscellaneous 404 | 405 | - Merge pull request [#130](https://github.com/Tomas2D/promise-based-task/issues/130) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.49.0 [[6ed5d9b](https://github.com/Tomas2D/promise-based-task/commit/6ed5d9bd193d095fd5ce0730452c417963c02261)] 406 | - Merge pull request [#131](https://github.com/Tomas2D/promise-based-task/issues/131) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.49.0 [[ded71f7](https://github.com/Tomas2D/promise-based-task/commit/ded71f73b2b0a337a9dcb4647a491c8d2bdf7a2a)] 407 | - Merge pull request [#126](https://github.com/Tomas2D/promise-based-task/issues/126) from Tomas2D/dependabot/npm_and_yarn/prettier-2.8.3 [[863b7e1](https://github.com/Tomas2D/promise-based-task/commit/863b7e1346dc13cbd95557fcc093b1832dd17d59)] 408 | - Bump @typescript-eslint/parser from 5.48.2 to 5.49.0 [[7ba51ae](https://github.com/Tomas2D/promise-based-task/commit/7ba51ae01fc7aac6cfb973564c7850fc75e83d62)] 409 | - Bump @typescript-eslint/eslint-plugin from 5.48.2 to 5.49.0 [[391a41a](https://github.com/Tomas2D/promise-based-task/commit/391a41a42cb465d658307073719fce33396da0f6)] 410 | - Merge pull request [#128](https://github.com/Tomas2D/promise-based-task/issues/128) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.48.2 [[157f966](https://github.com/Tomas2D/promise-based-task/commit/157f9662fff03f2dab70127fdc4cad8f5025e4d6)] 411 | - Merge pull request [#127](https://github.com/Tomas2D/promise-based-task/issues/127) from Tomas2D/dependabot/npm_and_yarn/eslint-8.32.0 [[f92e3f3](https://github.com/Tomas2D/promise-based-task/commit/f92e3f3c62b82c6a5891892c2d2f4fd908352cb4)] 412 | - Merge pull request [#129](https://github.com/Tomas2D/promise-based-task/issues/129) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.48.2 [[d357775](https://github.com/Tomas2D/promise-based-task/commit/d357775c782dcb753714089618f229ec71ce9683)] 413 | - Bump @typescript-eslint/eslint-plugin from 5.48.1 to 5.48.2 [[b63500d](https://github.com/Tomas2D/promise-based-task/commit/b63500ddb230d7a1ddcb1dcac6dea2f10a2ce51a)] 414 | - Bump @typescript-eslint/parser from 5.48.1 to 5.48.2 [[424a5ae](https://github.com/Tomas2D/promise-based-task/commit/424a5ae402fb4117d3bfc5fde9b79ddb0f563ed9)] 415 | - Bump eslint from 8.31.0 to 8.32.0 [[8c9edd2](https://github.com/Tomas2D/promise-based-task/commit/8c9edd2c01036f9fc475321b2e7d2f088e910d09)] 416 | - Bump prettier from 2.8.2 to 2.8.3 [[374aa6f](https://github.com/Tomas2D/promise-based-task/commit/374aa6f2a9dbd1aa9be9978cb7d3958464419a29)] 417 | - Merge pull request [#122](https://github.com/Tomas2D/promise-based-task/issues/122) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.48.1 [[b660121](https://github.com/Tomas2D/promise-based-task/commit/b660121a57f3945c1e9e03128cd0549c8f6477af)] 418 | - Merge pull request [#123](https://github.com/Tomas2D/promise-based-task/issues/123) from Tomas2D/dependabot/npm_and_yarn/husky-8.0.3 [[93cc772](https://github.com/Tomas2D/promise-based-task/commit/93cc772b76f8a44cc7492e7a8cd11ef3e0fe611f)] 419 | - Merge pull request [#125](https://github.com/Tomas2D/promise-based-task/issues/125) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.48.1 [[3286323](https://github.com/Tomas2D/promise-based-task/commit/32863231ad7c0c296c8ff4220be5352580bc6c27)] 420 | - Merge pull request [#124](https://github.com/Tomas2D/promise-based-task/issues/124) from Tomas2D/dependabot/npm_and_yarn/prettier-2.8.2 [[43bd92a](https://github.com/Tomas2D/promise-based-task/commit/43bd92aa49532e656a8dcb2a2a34197338d93379)] 421 | - Bump @typescript-eslint/parser from 5.48.0 to 5.48.1 [[e9a5005](https://github.com/Tomas2D/promise-based-task/commit/e9a5005860e5e4f55c5a6b30362a5560cda8e3a0)] 422 | - Bump @typescript-eslint/eslint-plugin from 5.48.0 to 5.48.1 [[0bb99c3](https://github.com/Tomas2D/promise-based-task/commit/0bb99c3a8cb653a13c7e704ed654ae87f7ecfe70)] 423 | - Bump prettier from 2.8.1 to 2.8.2 [[4a69602](https://github.com/Tomas2D/promise-based-task/commit/4a696020c0d6c3a9e636bf8991ac380534f3df62)] 424 | - Bump husky from 8.0.2 to 8.0.3 [[9ef0199](https://github.com/Tomas2D/promise-based-task/commit/9ef01993ddea9c16352aa87a102fcb4b1b1e5aba)] 425 | - Merge pull request [#117](https://github.com/Tomas2D/promise-based-task/issues/117) from Tomas2D/dependabot/npm_and_yarn/json5-2.2.3 [[b7e0663](https://github.com/Tomas2D/promise-based-task/commit/b7e066316912053b6681a5009e839b97f3c758d0)] 426 | - Merge pull request [#118](https://github.com/Tomas2D/promise-based-task/issues/118) from Tomas2D/dependabot/npm_and_yarn/eslint-8.31.0 [[dac62ec](https://github.com/Tomas2D/promise-based-task/commit/dac62ec1056301fa3d0e5153605a8ce3be697f81)] 427 | - Merge pull request [#119](https://github.com/Tomas2D/promise-based-task/issues/119) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.48.0 [[112b998](https://github.com/Tomas2D/promise-based-task/commit/112b998f9212755ab960e0d908923750046b9d0e)] 428 | - Merge pull request [#120](https://github.com/Tomas2D/promise-based-task/issues/120) from Tomas2D/dependabot/npm_and_yarn/eslint-config-prettier-8.6.0 [[92cd21d](https://github.com/Tomas2D/promise-based-task/commit/92cd21de374010efe12504f95b0d00214acaf82d)] 429 | - Merge pull request [#121](https://github.com/Tomas2D/promise-based-task/issues/121) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.48.0 [[9336c88](https://github.com/Tomas2D/promise-based-task/commit/9336c88f519029e49070f705a61a63b746731670)] 430 | - Bump @typescript-eslint/parser from 5.47.1 to 5.48.0 [[85c5411](https://github.com/Tomas2D/promise-based-task/commit/85c5411593bf0dbe79ae6d2ab870e9e24bc62b3e)] 431 | - Bump eslint from 8.30.0 to 8.31.0 [[f3d9a81](https://github.com/Tomas2D/promise-based-task/commit/f3d9a81e517fa73168210f339321429a55f9d415)] 432 | - Bump @typescript-eslint/eslint-plugin from 5.47.0 to 5.48.0 [[30c19e1](https://github.com/Tomas2D/promise-based-task/commit/30c19e1a6037dbac4b90607cacc7c3084ce812ab)] 433 | - Bump eslint-config-prettier from 8.5.0 to 8.6.0 [[f69df3b](https://github.com/Tomas2D/promise-based-task/commit/f69df3bc457ef564a2b0f06de208dbb91e2934f0)] 434 | - Bump json5 from 2.2.0 to 2.2.3 [[169f2fa](https://github.com/Tomas2D/promise-based-task/commit/169f2faca30d603d9708032696e30bdb20aca25b)] 435 | 436 | 437 | 438 | ## 2.1.0 (2023-01-04) 439 | 440 | ### Added 441 | 442 | - ✨ Add support for synchronously accessing the rejected value [[e160b34](https://github.com/Tomas2D/promise-based-task/commit/e160b34082ca0eeb4927bc0c3ec2d4d2db3b6330)] 443 | 444 | ### Miscellaneous 445 | 446 | - Merge pull request [#114](https://github.com/Tomas2D/promise-based-task/issues/114) from Tomas2D/dependabot/npm_and_yarn/types/node-16.18.11 [[c241ea7](https://github.com/Tomas2D/promise-based-task/commit/c241ea743f26d3d9344b116b8dd5a5da6696fd7a)] 447 | - Merge pull request [#116](https://github.com/Tomas2D/promise-based-task/issues/116) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.47.1 [[1055c37](https://github.com/Tomas2D/promise-based-task/commit/1055c37331a6be42f641f82c7fd44eb1e86d8ee6)] 448 | - Bump @typescript-eslint/parser from 5.47.0 to 5.47.1 [[2c1f7aa](https://github.com/Tomas2D/promise-based-task/commit/2c1f7aa8798f20e7aa3a80fe850f43bb33188de8)] 449 | - Bump @types/node from 16.18.10 to 16.18.11 [[b1225ef](https://github.com/Tomas2D/promise-based-task/commit/b1225efe03a4b3d4669ab820a61fab558a2e5152)] 450 | 451 | 452 | 453 | ## 2.0.3 (2022-12-25) 454 | 455 | ### Changed 456 | 457 | - ♻️ One-file per bundle [[e5bff5a](https://github.com/Tomas2D/promise-based-task/commit/e5bff5a3f5b093c4adaf5e0b21b4e11877a7702c)] 458 | 459 | 460 | 461 | ## 2.0.2 (2022-12-25) 462 | 463 | ### Changed 464 | 465 | - ♻️ Remove all default exports [[0981fdf](https://github.com/Tomas2D/promise-based-task/commit/0981fdf3357342d67e5d03cc40347987c2923ce3)] 466 | 467 | 468 | 469 | ## 2.0.1 (2022-12-25) 470 | 471 | ### Fixed 472 | 473 | - 🐛 Update exports [[6f7dc8a](https://github.com/Tomas2D/promise-based-task/commit/6f7dc8a44bf5d9298b579459cb128c9ba293ddc1)] 474 | 475 | 476 | 477 | ## 2.0.0 (2022-12-25) 478 | 479 | ### Changed 480 | 481 | - 🔧 Update Jest config [[5834181](https://github.com/Tomas2D/promise-based-task/commit/5834181eb669c66512f51cd811b4072b5215b874)] 482 | - ⬆️ Switch to ES2020 (Node 14.x) [[9ba80db](https://github.com/Tomas2D/promise-based-task/commit/9ba80db7e1c79a010697754604acd6b335804c9b)] 483 | 484 | ### Removed 485 | 486 | - 🔇 Remove forgotten log [[a657e1c](https://github.com/Tomas2D/promise-based-task/commit/a657e1c29955e0b874eb0839909f28eb94945d96)] 487 | 488 | ### Miscellaneous 489 | 490 | - 📦 Add export for ESM [[d99687b](https://github.com/Tomas2D/promise-based-task/commit/d99687bb48d143fe07858eecda09376034525e45)] 491 | - Merge pull request [#110](https://github.com/Tomas2D/promise-based-task/issues/110) from Tomas2D/dependabot/npm_and_yarn/types/node-16.18.10 [[296ac0c](https://github.com/Tomas2D/promise-based-task/commit/296ac0c423e4d2d694f864362ca78e74ce76ec6d)] 492 | - Merge pull request [#111](https://github.com/Tomas2D/promise-based-task/issues/111) from Tomas2D/dependabot/npm_and_yarn/eslint-8.30.0 [[d92bb38](https://github.com/Tomas2D/promise-based-task/commit/d92bb384139718c6db3f30f60510188e2129aaf8)] 493 | - Merge pull request [#112](https://github.com/Tomas2D/promise-based-task/issues/112) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.47.0 [[d40b340](https://github.com/Tomas2D/promise-based-task/commit/d40b340f898a931f213987dce64dce0071de9f4e)] 494 | - Merge pull request [#113](https://github.com/Tomas2D/promise-based-task/issues/113) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.47.0 [[54b8eca](https://github.com/Tomas2D/promise-based-task/commit/54b8ecabff1c0301eb3e273342bced75e7cd4821)] 495 | - Bump @typescript-eslint/eslint-plugin from 5.46.1 to 5.47.0 [[bb2ba88](https://github.com/Tomas2D/promise-based-task/commit/bb2ba88a80096398a904d51e682858765ca7d088)] 496 | - Bump eslint from 8.29.0 to 8.30.0 [[27cd01a](https://github.com/Tomas2D/promise-based-task/commit/27cd01a3a5a51edf414db9215a8c75efe298bf82)] 497 | - Bump @typescript-eslint/parser from 5.46.1 to 5.47.0 [[ceb5695](https://github.com/Tomas2D/promise-based-task/commit/ceb5695b1eb89f13ca9449cab709e43776cd3e8b)] 498 | - Bump @types/node from 16.18.9 to 16.18.10 [[7d994fe](https://github.com/Tomas2D/promise-based-task/commit/7d994fed2e22976420abff534270febcbe96376d)] 499 | 500 | 501 | 502 | ## 1.4.0 (2022-12-21) 503 | 504 | ### Added 505 | 506 | - ✨ Allow to access a resolved value directly [[de2651f](https://github.com/Tomas2D/promise-based-task/commit/de2651f64b328d14b9420a660e39f8a751146756)] 507 | 508 | ### Miscellaneous 509 | 510 | - Merge pull request [#107](https://github.com/Tomas2D/promise-based-task/issues/107) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.46.1 [[16d031f](https://github.com/Tomas2D/promise-based-task/commit/16d031feb61b98d5ee29e33c03717f399793025a)] 511 | - Merge pull request [#109](https://github.com/Tomas2D/promise-based-task/issues/109) from Tomas2D/dependabot/npm_and_yarn/types/node-16.18.9 [[ee794b9](https://github.com/Tomas2D/promise-based-task/commit/ee794b9b53cb8b7451c57a5f6cda9c6f02ffdba8)] 512 | - Bump @types/node from 16.18.7 to 16.18.9 [[4219b68](https://github.com/Tomas2D/promise-based-task/commit/4219b68e3ab0c7843371803f334b31e8fc30a2e4)] 513 | - Merge pull request [#108](https://github.com/Tomas2D/promise-based-task/issues/108) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.46.1 [[9ac5150](https://github.com/Tomas2D/promise-based-task/commit/9ac5150a413928640cda26f37f9ff59f04e5cb5d)] 514 | - Bump @typescript-eslint/parser from 5.46.0 to 5.46.1 [[967ddb0](https://github.com/Tomas2D/promise-based-task/commit/967ddb0760b1649039da64bfcbb1f757f0107ae5)] 515 | - Bump @typescript-eslint/eslint-plugin from 5.46.0 to 5.46.1 [[b2f02a6](https://github.com/Tomas2D/promise-based-task/commit/b2f02a6b4287cce5c9f91101e2e023038f8e54f1)] 516 | - Merge pull request [#102](https://github.com/Tomas2D/promise-based-task/issues/102) from Tomas2D/dependabot/npm_and_yarn/typescript-4.9.4 [[54c6900](https://github.com/Tomas2D/promise-based-task/commit/54c6900952cebb174c61e9f48502c2e5b1d79bfc)] 517 | - Merge pull request [#103](https://github.com/Tomas2D/promise-based-task/issues/103) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.46.0 [[f413128](https://github.com/Tomas2D/promise-based-task/commit/f4131281059b7e5b3f294375842cd4c5914f8d87)] 518 | - Merge pull request [#101](https://github.com/Tomas2D/promise-based-task/issues/101) from Tomas2D/dependabot/npm_and_yarn/prettier-2.8.1 [[cf6784a](https://github.com/Tomas2D/promise-based-task/commit/cf6784a4150c557285a8cf7c7ccca81c850eec77)] 519 | - Merge pull request [#104](https://github.com/Tomas2D/promise-based-task/issues/104) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.46.0 [[709aaeb](https://github.com/Tomas2D/promise-based-task/commit/709aaebeae64b5f6d8193d2231ef3a7b57799d0f)] 520 | - Merge pull request [#105](https://github.com/Tomas2D/promise-based-task/issues/105) from Tomas2D/dependabot/npm_and_yarn/types/node-16.18.7 [[5a4172d](https://github.com/Tomas2D/promise-based-task/commit/5a4172d8a2e4e2f83861a5acbc43fd483bc696f4)] 521 | - Bump prettier from 2.8.0 to 2.8.1 [[5772300](https://github.com/Tomas2D/promise-based-task/commit/57723001c93ed1f170a0bf5c10e482b3b69800fe)] 522 | - Bump @typescript-eslint/parser from 5.45.0 to 5.46.0 [[41259a9](https://github.com/Tomas2D/promise-based-task/commit/41259a9c675ddc809af74ad2f31a36ee829381c2)] 523 | - Bump typescript from 4.9.3 to 4.9.4 [[24475d2](https://github.com/Tomas2D/promise-based-task/commit/24475d2c68745868f7fcc2f1f88d2efbf9d0c05c)] 524 | - Bump @types/node from 16.18.4 to 16.18.7 [[4fe3c95](https://github.com/Tomas2D/promise-based-task/commit/4fe3c95b9de5da26427e7af3c354f07d0b61e02b)] 525 | - Bump @typescript-eslint/eslint-plugin from 5.45.0 to 5.46.0 [[625a8ca](https://github.com/Tomas2D/promise-based-task/commit/625a8cacc3962d6ec5fce74f28a938be2aaa9b96)] 526 | - Merge pull request [#96](https://github.com/Tomas2D/promise-based-task/issues/96) from Tomas2D/dependabot/npm_and_yarn/eslint-8.29.0 [[dbd4b43](https://github.com/Tomas2D/promise-based-task/commit/dbd4b43cf12d24ae57bef5766d5c7b61c295ff8f)] 527 | - Merge pull request [#97](https://github.com/Tomas2D/promise-based-task/issues/97) from Tomas2D/dependabot/npm_and_yarn/lint-staged-13.1.0 [[3c4c30d](https://github.com/Tomas2D/promise-based-task/commit/3c4c30d824508151fb9fa83d9801eb80d0ee8e90)] 528 | - Bump lint-staged from 13.0.4 to 13.1.0 [[b7997f9](https://github.com/Tomas2D/promise-based-task/commit/b7997f9c1c7da1d98813956c4686fa115d24bce7)] 529 | - Bump eslint from 8.28.0 to 8.29.0 [[28eca31](https://github.com/Tomas2D/promise-based-task/commit/28eca314a6beb2c43e2cd7d73d14df10ee7d00ad)] 530 | - Merge pull request [#95](https://github.com/Tomas2D/promise-based-task/issues/95) from Tomas2D/dependabot/npm_and_yarn/types/node-16.18.4 [[0e9ebb9](https://github.com/Tomas2D/promise-based-task/commit/0e9ebb95797e8c667c5a3f7d8ba6d5b8390c04f0)] 531 | - Bump @types/node from 16.18.3 to 16.18.4 [[0510744](https://github.com/Tomas2D/promise-based-task/commit/0510744c262473b5e269514e9b106ad95d5e8f03)] 532 | - Merge pull request [#93](https://github.com/Tomas2D/promise-based-task/issues/93) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.45.0 [[523a16c](https://github.com/Tomas2D/promise-based-task/commit/523a16ca8fc47c5269466e3e0851dbd8b926cbb0)] 533 | - Merge pull request [#94](https://github.com/Tomas2D/promise-based-task/issues/94) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.45.0 [[fc9d88b](https://github.com/Tomas2D/promise-based-task/commit/fc9d88b84e4f7d449bf52b4cf48eedb15d70243d)] 534 | - Bump @typescript-eslint/parser from 5.44.0 to 5.45.0 [[5a7811e](https://github.com/Tomas2D/promise-based-task/commit/5a7811eb3aaf125ee4aa4ebf1f856bb1e1fe7f61)] 535 | - Bump @typescript-eslint/eslint-plugin from 5.44.0 to 5.45.0 [[4dd70fd](https://github.com/Tomas2D/promise-based-task/commit/4dd70fd685ecbc1546b071f128b3bab90a2b771d)] 536 | - Merge pull request [#92](https://github.com/Tomas2D/promise-based-task/issues/92) from Tomas2D/dependabot/npm_and_yarn/lint-staged-13.0.4 [[32dd7d2](https://github.com/Tomas2D/promise-based-task/commit/32dd7d20aae6e3068dbab162c49351a67bee93d1)] 537 | - Bump lint-staged from 13.0.3 to 13.0.4 [[6e9eded](https://github.com/Tomas2D/promise-based-task/commit/6e9eded03d18ab22fc8f002674c64fce715d7e6b)] 538 | - Merge pull request [#91](https://github.com/Tomas2D/promise-based-task/issues/91) from Tomas2D/dependabot/npm_and_yarn/prettier-2.8.0 [[23de3c2](https://github.com/Tomas2D/promise-based-task/commit/23de3c27705b5cd481d84ef20b09650a4233b1cb)] 539 | - Bump prettier from 2.7.1 to 2.8.0 [[52a7721](https://github.com/Tomas2D/promise-based-task/commit/52a7721339926d92122dff93bef63a625b3e7faf)] 540 | - Merge pull request [#89](https://github.com/Tomas2D/promise-based-task/issues/89) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.44.0 [[7f48256](https://github.com/Tomas2D/promise-based-task/commit/7f4825641f5ab75ae188a67ab2232f851ff6263c)] 541 | - Merge pull request [#90](https://github.com/Tomas2D/promise-based-task/issues/90) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.44.0 [[aa67016](https://github.com/Tomas2D/promise-based-task/commit/aa670164f759565ae6cb5c14b3ca994a2a7ee7cd)] 542 | - Bump @typescript-eslint/parser from 5.43.0 to 5.44.0 [[99c4a9c](https://github.com/Tomas2D/promise-based-task/commit/99c4a9cac4dcd529b8c3ae4f97a63ab0964a3d85)] 543 | - Bump @typescript-eslint/eslint-plugin from 5.43.0 to 5.44.0 [[eeb624c](https://github.com/Tomas2D/promise-based-task/commit/eeb624c88919ab0a41c5bc4b8a914e2983cc5865)] 544 | - Merge pull request [#88](https://github.com/Tomas2D/promise-based-task/issues/88) from Tomas2D/dependabot/npm_and_yarn/eslint-8.28.0 [[913c40a](https://github.com/Tomas2D/promise-based-task/commit/913c40a366b3ab19af884a6ae594d302becbb329)] 545 | - Bump eslint from 8.27.0 to 8.28.0 [[59d7385](https://github.com/Tomas2D/promise-based-task/commit/59d7385ef9c4ff7d8e67ed777bc6641eb6979f5d)] 546 | - Merge pull request [#87](https://github.com/Tomas2D/promise-based-task/issues/87) from Tomas2D/dependabot/npm_and_yarn/typescript-4.9.3 [[b3d32cb](https://github.com/Tomas2D/promise-based-task/commit/b3d32cb15b61b547b8e07b7c7772d444a7f7f5cd)] 547 | - Bump typescript from 4.8.4 to 4.9.3 [[042e581](https://github.com/Tomas2D/promise-based-task/commit/042e581e685c3b101fc87a5f6dce52b9853fde28)] 548 | - Merge pull request [#85](https://github.com/Tomas2D/promise-based-task/issues/85) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.43.0 [[6853807](https://github.com/Tomas2D/promise-based-task/commit/6853807da359b2d37ab393458d847dadd3e1742f)] 549 | - Merge pull request [#86](https://github.com/Tomas2D/promise-based-task/issues/86) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.43.0 [[5be3589](https://github.com/Tomas2D/promise-based-task/commit/5be3589e9a9f0d7644c92317fd421dcb72e69a5b)] 550 | - Bump @typescript-eslint/parser from 5.42.1 to 5.43.0 [[9091acd](https://github.com/Tomas2D/promise-based-task/commit/9091acd79e94f0ad46537cc021d02fc1ed1e04bc)] 551 | - Bump @typescript-eslint/eslint-plugin from 5.42.1 to 5.43.0 [[5c02433](https://github.com/Tomas2D/promise-based-task/commit/5c02433b1a08651f7315fdaef4bd28d965ccb044)] 552 | - Merge pull request [#84](https://github.com/Tomas2D/promise-based-task/issues/84) from Tomas2D/dependabot/npm_and_yarn/husky-8.0.2 [[2052782](https://github.com/Tomas2D/promise-based-task/commit/2052782da6aa1850cc9cee30f0faa3bc7fef7cac)] 553 | - Merge pull request [#82](https://github.com/Tomas2D/promise-based-task/issues/82) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.42.1 [[a4e8d25](https://github.com/Tomas2D/promise-based-task/commit/a4e8d25794075b1ceede4785c27cd8a0d866b149)] 554 | - Bump husky from 8.0.1 to 8.0.2 [[6c404d5](https://github.com/Tomas2D/promise-based-task/commit/6c404d51b605b5b515340041d20c62423d9cc2f5)] 555 | - Merge pull request [#81](https://github.com/Tomas2D/promise-based-task/issues/81) from Tomas2D/dependabot/npm_and_yarn/eslint-8.27.0 [[c441a97](https://github.com/Tomas2D/promise-based-task/commit/c441a97af9063417b7c2d15c29b7bc42af5aa658)] 556 | - Merge pull request [#83](https://github.com/Tomas2D/promise-based-task/issues/83) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.42.1 [[e421e57](https://github.com/Tomas2D/promise-based-task/commit/e421e577da6d4d4a3c3a6157bd21b6b318897d86)] 557 | - Bump @typescript-eslint/eslint-plugin from 5.42.0 to 5.42.1 [[bdd59a6](https://github.com/Tomas2D/promise-based-task/commit/bdd59a639d2c07b37eaac407a5c5aec111bdea14)] 558 | - Bump @typescript-eslint/parser from 5.42.0 to 5.42.1 [[3779ff7](https://github.com/Tomas2D/promise-based-task/commit/3779ff729491a8393086b435adde017fd9b69b37)] 559 | - Bump eslint from 8.26.0 to 8.27.0 [[4801304](https://github.com/Tomas2D/promise-based-task/commit/48013046f8db18b26490b8a0178a2b05b843f441)] 560 | - Merge pull request [#80](https://github.com/Tomas2D/promise-based-task/issues/80) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.42.0 [[aed4820](https://github.com/Tomas2D/promise-based-task/commit/aed482040425e1d408c4956e93437c84fa614a21)] 561 | - Merge pull request [#79](https://github.com/Tomas2D/promise-based-task/issues/79) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.42.0 [[8329af9](https://github.com/Tomas2D/promise-based-task/commit/8329af9db074bdd512420c51e7e8baa7ebfb369d)] 562 | - Bump @typescript-eslint/eslint-plugin from 5.41.0 to 5.42.0 [[840b6e8](https://github.com/Tomas2D/promise-based-task/commit/840b6e8af6ce13247103e645275121e777586bbe)] 563 | - Merge pull request [#78](https://github.com/Tomas2D/promise-based-task/issues/78) from Tomas2D/dependabot/npm_and_yarn/types/node-16.18.3 [[cf06d66](https://github.com/Tomas2D/promise-based-task/commit/cf06d66a04c81f0c43285840392c1b3d8fe56e7a)] 564 | - Bump @typescript-eslint/parser from 5.41.0 to 5.42.0 [[aaaadd8](https://github.com/Tomas2D/promise-based-task/commit/aaaadd878b8d779ba09ac7a8b70de0ffae3811de)] 565 | - Bump @types/node from 16.18.2 to 16.18.3 [[8568883](https://github.com/Tomas2D/promise-based-task/commit/8568883a858c78baae555ea200833aab30424241)] 566 | - Merge pull request [#74](https://github.com/Tomas2D/promise-based-task/issues/74) from Tomas2D/dependabot/npm_and_yarn/eslint-8.26.0 [[ca8c94b](https://github.com/Tomas2D/promise-based-task/commit/ca8c94b05f56d10914939251281404068bbc6b05)] 567 | - Merge pull request [#75](https://github.com/Tomas2D/promise-based-task/issues/75) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.41.0 [[f1049b9](https://github.com/Tomas2D/promise-based-task/commit/f1049b9b30e28c4aac09cabd4f536f980a934f6c)] 568 | - Bump eslint from 8.25.0 to 8.26.0 [[66876b4](https://github.com/Tomas2D/promise-based-task/commit/66876b4a6e3e362ac1f7840846c2e45b86abeccd)] 569 | - Merge pull request [#77](https://github.com/Tomas2D/promise-based-task/issues/77) from Tomas2D/dependabot/npm_and_yarn/types/node-16.18.2 [[da4ad49](https://github.com/Tomas2D/promise-based-task/commit/da4ad496537481df59c6c79e48128505bbcfad08)] 570 | - Bump @types/node from 16.11.68 to 16.18.2 [[1849928](https://github.com/Tomas2D/promise-based-task/commit/1849928d604ecbc566c9a11c6ca853647335f74f)] 571 | - Merge pull request [#76](https://github.com/Tomas2D/promise-based-task/issues/76) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.41.0 [[be3c5bb](https://github.com/Tomas2D/promise-based-task/commit/be3c5bb31af78e97eb7e90652f9ed91da3d57ac7)] 572 | - Bump @typescript-eslint/eslint-plugin from 5.40.1 to 5.41.0 [[38d2e80](https://github.com/Tomas2D/promise-based-task/commit/38d2e80c022cab5d8bce7b08e11f13a8a026e5ee)] 573 | - Bump @typescript-eslint/parser from 5.40.1 to 5.41.0 [[d69f3f3](https://github.com/Tomas2D/promise-based-task/commit/d69f3f3892b4238e0fbb4a90cff2d04953d1739e)] 574 | - Merge pull request [#72](https://github.com/Tomas2D/promise-based-task/issues/72) from Tomas2D/dependabot/npm_and_yarn/types/node-16.11.68 [[d2274a6](https://github.com/Tomas2D/promise-based-task/commit/d2274a63703a8d9b413665373adbac57dead3735)] 575 | - Bump @types/node from 16.11.66 to 16.11.68 [[c66254f](https://github.com/Tomas2D/promise-based-task/commit/c66254faf7b0b9adeed0820fa81cd99fea46adaf)] 576 | - Merge pull request [#71](https://github.com/Tomas2D/promise-based-task/issues/71) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.40.1 [[2a5ed88](https://github.com/Tomas2D/promise-based-task/commit/2a5ed889bd1cea87202b3853b2e20efaeb4d6493)] 577 | - Merge pull request [#70](https://github.com/Tomas2D/promise-based-task/issues/70) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.40.1 [[0826a21](https://github.com/Tomas2D/promise-based-task/commit/0826a215dc39d632ef94e5b9016bc4f3d468b2cb)] 578 | - Bump @typescript-eslint/eslint-plugin from 5.40.0 to 5.40.1 [[d72b162](https://github.com/Tomas2D/promise-based-task/commit/d72b16260204e8773c085c959164da013d927ca0)] 579 | - Bump @typescript-eslint/parser from 5.39.0 to 5.40.1 [[8627b32](https://github.com/Tomas2D/promise-based-task/commit/8627b328e06c754c6174c031c01cee970863d37b)] 580 | - Merge pull request [#69](https://github.com/Tomas2D/promise-based-task/issues/69) from Tomas2D/dependabot/npm_and_yarn/types/node-16.11.66 [[afdecdc](https://github.com/Tomas2D/promise-based-task/commit/afdecdcdcc96dc5e4726e9f7ee5e8b06a22deb24)] 581 | - Bump @types/node from 16.11.65 to 16.11.66 [[6b2e1c5](https://github.com/Tomas2D/promise-based-task/commit/6b2e1c5cb65578f12623f7b5dd8a649a0f2f8912)] 582 | - Merge pull request [#65](https://github.com/Tomas2D/promise-based-task/issues/65) from Tomas2D/dependabot/npm_and_yarn/eslint-8.25.0 [[5258f12](https://github.com/Tomas2D/promise-based-task/commit/5258f12857c1c45221a5db14fb43f787b3144ed1)] 583 | - Merge pull request [#66](https://github.com/Tomas2D/promise-based-task/issues/66) from Tomas2D/dependabot/npm_and_yarn/types/node-16.11.65 [[0d37624](https://github.com/Tomas2D/promise-based-task/commit/0d37624f311f4d78a7a7a2d1546679e05e45963e)] 584 | - Merge pull request [#68](https://github.com/Tomas2D/promise-based-task/issues/68) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.40.0 [[6336c5b](https://github.com/Tomas2D/promise-based-task/commit/6336c5b54b045fed2c09f755a8197599d5b82e8e)] 585 | - Bump eslint from 8.24.0 to 8.25.0 [[f4c2654](https://github.com/Tomas2D/promise-based-task/commit/f4c2654136d9e33524af1b4153cc057ae5de2608)] 586 | - Bump @typescript-eslint/eslint-plugin from 5.39.0 to 5.40.0 [[a388e0a](https://github.com/Tomas2D/promise-based-task/commit/a388e0aad45996a044f8b8783768eed12c722ecf)] 587 | - Bump @types/node from 16.11.64 to 16.11.65 [[8cced6a](https://github.com/Tomas2D/promise-based-task/commit/8cced6addc5e732d75f9cc10c735fdc42636fef5)] 588 | - Merge pull request [#60](https://github.com/Tomas2D/promise-based-task/issues/60) from Tomas2D/dependabot/npm_and_yarn/typescript-4.8.4 [[6248816](https://github.com/Tomas2D/promise-based-task/commit/6248816e530dec82a7a8b85fc187d0bb7dd65e04)] 589 | - Merge pull request [#62](https://github.com/Tomas2D/promise-based-task/issues/62) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.39.0 [[585e3e1](https://github.com/Tomas2D/promise-based-task/commit/585e3e19028cba3ec7bde74938a61847133db4fe)] 590 | - Merge pull request [#63](https://github.com/Tomas2D/promise-based-task/issues/63) from Tomas2D/dependabot/npm_and_yarn/types/node-16.11.64 [[d03e506](https://github.com/Tomas2D/promise-based-task/commit/d03e506ec249abdf97d34218e8ef9c0580d3523c)] 591 | - Merge pull request [#64](https://github.com/Tomas2D/promise-based-task/issues/64) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.39.0 [[7dc2684](https://github.com/Tomas2D/promise-based-task/commit/7dc268408a65d74d5815faae99575e5981553710)] 592 | - Bump @typescript-eslint/eslint-plugin from 5.38.1 to 5.39.0 [[6a8050f](https://github.com/Tomas2D/promise-based-task/commit/6a8050f948098f3cdf57f94d2ea9741fa0d9c8c1)] 593 | - Bump typescript from 4.8.3 to 4.8.4 [[5e65e10](https://github.com/Tomas2D/promise-based-task/commit/5e65e101bf18382239e09203c12f69705a7fab98)] 594 | - Bump @typescript-eslint/parser from 5.38.1 to 5.39.0 [[e78bc25](https://github.com/Tomas2D/promise-based-task/commit/e78bc255a68626791be4d5498c6483af6948a592)] 595 | - Bump @types/node from 16.11.63 to 16.11.64 [[80be122](https://github.com/Tomas2D/promise-based-task/commit/80be122f127d6a5bc368a3a3e2e91bb164d88bee)] 596 | - Merge pull request [#61](https://github.com/Tomas2D/promise-based-task/issues/61) from Tomas2D/dependabot/npm_and_yarn/types/node-16.11.63 [[48ccb68](https://github.com/Tomas2D/promise-based-task/commit/48ccb6858ec9e5c04c61d1fe0a7a1a6c42554ed8)] 597 | - Bump @types/node from 16.11.62 to 16.11.63 [[cae49f2](https://github.com/Tomas2D/promise-based-task/commit/cae49f27cd4665932414fa66d189524f251049bd)] 598 | - Merge pull request [#58](https://github.com/Tomas2D/promise-based-task/issues/58) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.38.1 [[a1aca81](https://github.com/Tomas2D/promise-based-task/commit/a1aca81fc41cef73c85d8f7168bfaf2a422f9529)] 599 | - Merge pull request [#57](https://github.com/Tomas2D/promise-based-task/issues/57) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.38.1 [[1d31db4](https://github.com/Tomas2D/promise-based-task/commit/1d31db4a4c918b132271abb18345928440a61a58)] 600 | - Bump @typescript-eslint/parser from 5.38.0 to 5.38.1 [[7e04ba4](https://github.com/Tomas2D/promise-based-task/commit/7e04ba474bbfb054e954f46617c9bbda23ddbb25)] 601 | - Merge pull request [#56](https://github.com/Tomas2D/promise-based-task/issues/56) from Tomas2D/dependabot/npm_and_yarn/eslint-8.24.0 [[cb93743](https://github.com/Tomas2D/promise-based-task/commit/cb9374330beab8ad1d3c5b972eed33d734b6a109)] 602 | - Merge pull request [#59](https://github.com/Tomas2D/promise-based-task/issues/59) from Tomas2D/dependabot/npm_and_yarn/types/node-16.11.62 [[22c4394](https://github.com/Tomas2D/promise-based-task/commit/22c4394fee41c75ecd2bdde8fba70cc5640de1e0)] 603 | - Bump @types/node from 16.11.59 to 16.11.62 [[9324654](https://github.com/Tomas2D/promise-based-task/commit/9324654f424d1f56fa2d001ddb8595eb51aa825f)] 604 | - Bump @typescript-eslint/eslint-plugin from 5.38.0 to 5.38.1 [[3e32579](https://github.com/Tomas2D/promise-based-task/commit/3e32579d1e68e82bc58f2b67f619c832e7537674)] 605 | - Bump eslint from 8.23.1 to 8.24.0 [[19124c0](https://github.com/Tomas2D/promise-based-task/commit/19124c03ddc354ebc717d1bb084c39477f27a33f)] 606 | - Merge pull request [#53](https://github.com/Tomas2D/promise-based-task/issues/53) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.38.0 [[5d53c1e](https://github.com/Tomas2D/promise-based-task/commit/5d53c1ec653c587a11979dd54e45e4c8dd2aef3a)] 607 | - Merge pull request [#54](https://github.com/Tomas2D/promise-based-task/issues/54) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.38.0 [[42da42b](https://github.com/Tomas2D/promise-based-task/commit/42da42b1631e85d06c691c935ed1f74d8dd8d065)] 608 | - Bump @typescript-eslint/parser from 5.37.0 to 5.38.0 [[b42e83c](https://github.com/Tomas2D/promise-based-task/commit/b42e83c5f3e8702feda61c694af22e9223111690)] 609 | - Bump @typescript-eslint/eslint-plugin from 5.37.0 to 5.38.0 [[ec6e53a](https://github.com/Tomas2D/promise-based-task/commit/ec6e53a596638e21d51afbb2a344290ccbfff297)] 610 | - Merge pull request [#50](https://github.com/Tomas2D/promise-based-task/issues/50) from Tomas2D/dependabot/npm_and_yarn/eslint-8.23.1 [[c0b3801](https://github.com/Tomas2D/promise-based-task/commit/c0b3801f5a60bfaac90667a38ad35fe111525259)] 611 | - Merge pull request [#52](https://github.com/Tomas2D/promise-based-task/issues/52) from Tomas2D/dependabot/npm_and_yarn/types/node-16.11.59 [[4659218](https://github.com/Tomas2D/promise-based-task/commit/4659218adea36c5f72598f49638ffda4a49679e1)] 612 | - Bump @types/node from 16.11.58 to 16.11.59 [[2561367](https://github.com/Tomas2D/promise-based-task/commit/2561367d66944fe48fa3c2b480c44e422d648c35)] 613 | - Merge pull request [#49](https://github.com/Tomas2D/promise-based-task/issues/49) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.37.0 [[53f7991](https://github.com/Tomas2D/promise-based-task/commit/53f7991fa5bdfa45932a2523a38f77051a1d7d25)] 614 | - Merge pull request [#51](https://github.com/Tomas2D/promise-based-task/issues/51) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.37.0 [[526e9e8](https://github.com/Tomas2D/promise-based-task/commit/526e9e88337b69d0f2ee84b49c1775e1666ac225)] 615 | - Bump eslint from 8.22.0 to 8.23.1 [[06b929b](https://github.com/Tomas2D/promise-based-task/commit/06b929bebfc5bf0a8757aa536f173ec1debef58b)] 616 | - Bump @typescript-eslint/eslint-plugin from 5.36.2 to 5.37.0 [[73f1b23](https://github.com/Tomas2D/promise-based-task/commit/73f1b23de2e76f65524f6163ff736ed896abdff7)] 617 | - Bump @typescript-eslint/parser from 5.36.2 to 5.37.0 [[117ee51](https://github.com/Tomas2D/promise-based-task/commit/117ee51523c52b03bcea4743c7a7d86c73ec776e)] 618 | - Merge pull request [#48](https://github.com/Tomas2D/promise-based-task/issues/48) from Tomas2D/dependabot/npm_and_yarn/typescript-4.8.3 [[77c9428](https://github.com/Tomas2D/promise-based-task/commit/77c9428a8feaa15328e07e9573fa72f369a27078)] 619 | - Bump typescript from 4.8.2 to 4.8.3 [[4f212d4](https://github.com/Tomas2D/promise-based-task/commit/4f212d495c6f5e4a4aff49f8e8427b2507d0e434)] 620 | - Merge pull request [#47](https://github.com/Tomas2D/promise-based-task/issues/47) from Tomas2D/dependabot/npm_and_yarn/types/node-16.11.58 [[925ba98](https://github.com/Tomas2D/promise-based-task/commit/925ba989a3320872200a7642dca6ae749507df2c)] 621 | - Bump @types/node from 16.11.56 to 16.11.58 [[a6b62b6](https://github.com/Tomas2D/promise-based-task/commit/a6b62b6126acf765f0ec7f2f8015eb017fd51827)] 622 | - Merge pull request [#46](https://github.com/Tomas2D/promise-based-task/issues/46) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.36.2 [[64017cb](https://github.com/Tomas2D/promise-based-task/commit/64017cb6dbde6aeb691535e00639bb413d3401ce)] 623 | - Merge pull request [#45](https://github.com/Tomas2D/promise-based-task/issues/45) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.36.2 [[60e8cfe](https://github.com/Tomas2D/promise-based-task/commit/60e8cfeb789e4c2826831e321f3f2a430a06b088)] 624 | - Bump @typescript-eslint/parser from 5.36.1 to 5.36.2 [[5a03766](https://github.com/Tomas2D/promise-based-task/commit/5a0376687e03747d89dfb2b33acabe55818f2cbd)] 625 | - Bump @typescript-eslint/eslint-plugin from 5.36.1 to 5.36.2 [[0bf0e60](https://github.com/Tomas2D/promise-based-task/commit/0bf0e608bc90b91d4ebf098ef1a1f86597844a2b)] 626 | - Merge pull request [#42](https://github.com/Tomas2D/promise-based-task/issues/42) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.36.1 [[02a1a27](https://github.com/Tomas2D/promise-based-task/commit/02a1a274391c049e847ebc26c9b33df75d34cab0)] 627 | - Bump @typescript-eslint/parser from 5.35.1 to 5.36.1 [[3dae1aa](https://github.com/Tomas2D/promise-based-task/commit/3dae1aa0a66d17c047fa3cf457df9ebff065b739)] 628 | - Merge pull request [#43](https://github.com/Tomas2D/promise-based-task/issues/43) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.36.1 [[3d0f2e7](https://github.com/Tomas2D/promise-based-task/commit/3d0f2e79506cb16379883040ccc2fca8a1ebd2bb)] 629 | - Bump @typescript-eslint/eslint-plugin from 5.35.1 to 5.36.1 [[082be73](https://github.com/Tomas2D/promise-based-task/commit/082be7327c9ecd2ea2127bcae3346d7c2c98c194)] 630 | - Merge pull request [#27](https://github.com/Tomas2D/promise-based-task/issues/27) from Tomas2D/dependabot/npm_and_yarn/eslint-8.22.0 [[68f73e8](https://github.com/Tomas2D/promise-based-task/commit/68f73e86055f970d99c405ec9ebf036cc025e256)] 631 | - Merge pull request [#40](https://github.com/Tomas2D/promise-based-task/issues/40) from Tomas2D/dependabot/npm_and_yarn/typescript-4.8.2 [[4b2078e](https://github.com/Tomas2D/promise-based-task/commit/4b2078edf98a3420ffcd15780651adb6943298d8)] 632 | - Merge pull request [#37](https://github.com/Tomas2D/promise-based-task/issues/37) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.35.1 [[3d6268b](https://github.com/Tomas2D/promise-based-task/commit/3d6268ba15a74ee88799852050d9f385febd1e53)] 633 | - Merge pull request [#38](https://github.com/Tomas2D/promise-based-task/issues/38) from Tomas2D/dependabot/npm_and_yarn/types/node-16.11.56 [[59d5ce1](https://github.com/Tomas2D/promise-based-task/commit/59d5ce125c6fd4454b871e3d5e6de159c6c9cdf0)] 634 | - Merge pull request [#39](https://github.com/Tomas2D/promise-based-task/issues/39) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.35.1 [[1dac525](https://github.com/Tomas2D/promise-based-task/commit/1dac525a5b1d143489bdc1e980be8d1779914888)] 635 | - Bump eslint from 8.21.0 to 8.22.0 [[0566827](https://github.com/Tomas2D/promise-based-task/commit/05668272e490bb2cf210c708d837d727c40bb940)] 636 | - Bump @typescript-eslint/parser from 5.33.1 to 5.35.1 [[1433c7b](https://github.com/Tomas2D/promise-based-task/commit/1433c7bbef3299d1e36f82c2a5c2b845679a98ef)] 637 | - Bump typescript from 4.7.4 to 4.8.2 [[be458d1](https://github.com/Tomas2D/promise-based-task/commit/be458d1d3d8891e00caf932872e9b170794a7b03)] 638 | - Bump @typescript-eslint/eslint-plugin from 5.34.0 to 5.35.1 [[9b74a9a](https://github.com/Tomas2D/promise-based-task/commit/9b74a9af8ba6c4cbaec2290008ac247478343003)] 639 | - Bump @types/node from 16.11.55 to 16.11.56 [[bc53406](https://github.com/Tomas2D/promise-based-task/commit/bc534061db65e28e2f5bb85fc5745880e17e1d25)] 640 | - Merge pull request [#36](https://github.com/Tomas2D/promise-based-task/issues/36) from Tomas2D/dependabot/npm_and_yarn/types/node-16.11.55 [[9359d69](https://github.com/Tomas2D/promise-based-task/commit/9359d699c723128985d4d456992a81a06086d243)] 641 | - Merge pull request [#34](https://github.com/Tomas2D/promise-based-task/issues/34) from Tomas2D/dependabot/npm_and_yarn/types/node-16.11.53 [[0406d5d](https://github.com/Tomas2D/promise-based-task/commit/0406d5da8fd6ee03a07f17e82fad8ef770768738)] 642 | - Bump @types/node from 16.11.53 to 16.11.55 [[fba41b6](https://github.com/Tomas2D/promise-based-task/commit/fba41b6b76dc97e541281017ad0f986cea933fd4)] 643 | - Merge pull request [#35](https://github.com/Tomas2D/promise-based-task/issues/35) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.34.0 [[927ed82](https://github.com/Tomas2D/promise-based-task/commit/927ed82907f7190bea627c4a906c6b0157fcf99b)] 644 | - Bump @typescript-eslint/eslint-plugin from 5.33.1 to 5.34.0 [[20cd546](https://github.com/Tomas2D/promise-based-task/commit/20cd5467497bec361046143580d145d5e75be49e)] 645 | - Bump @types/node from 16.11.49 to 16.11.53 [[8399a42](https://github.com/Tomas2D/promise-based-task/commit/8399a42e41c4164119bdcb9e53b0a3933faf1218)] 646 | - Merge pull request [#29](https://github.com/Tomas2D/promise-based-task/issues/29) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.33.1 [[0e4a976](https://github.com/Tomas2D/promise-based-task/commit/0e4a976c78e82f5fd486f110f44b6d6fc9a898a2)] 647 | - Merge pull request [#31](https://github.com/Tomas2D/promise-based-task/issues/31) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.33.1 [[29e9e2d](https://github.com/Tomas2D/promise-based-task/commit/29e9e2dcd202ad2304674729e6fab4b43f329992)] 648 | - Bump @typescript-eslint/parser from 5.33.0 to 5.33.1 [[3a89df9](https://github.com/Tomas2D/promise-based-task/commit/3a89df9442774e025fed9b341870e437e786c207)] 649 | - Merge pull request [#30](https://github.com/Tomas2D/promise-based-task/issues/30) from Tomas2D/dependabot/npm_and_yarn/types/node-16.11.49 [[4f7b242](https://github.com/Tomas2D/promise-based-task/commit/4f7b2420d547294e43fbdccc3da2f6514887d23e)] 650 | - Bump @typescript-eslint/eslint-plugin from 5.33.0 to 5.33.1 [[49aa705](https://github.com/Tomas2D/promise-based-task/commit/49aa705d0c68b4115fd896b4cf5e89dc86541c73)] 651 | - Bump @types/node from 16.11.47 to 16.11.49 [[5b21add](https://github.com/Tomas2D/promise-based-task/commit/5b21add77d6aac6efd0cfe8cd1ead83c13c96fd6)] 652 | - Merge pull request [#26](https://github.com/Tomas2D/promise-based-task/issues/26) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.33.0 [[d0a0ffb](https://github.com/Tomas2D/promise-based-task/commit/d0a0ffb23a812ee14e3974afd573acee4eef8323)] 653 | - Merge pull request [#25](https://github.com/Tomas2D/promise-based-task/issues/25) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.33.0 [[37fca3b](https://github.com/Tomas2D/promise-based-task/commit/37fca3bdefdf2861450eddc205f38ad3d48766e5)] 654 | - Bump @typescript-eslint/eslint-plugin from 5.32.0 to 5.33.0 [[e12459e](https://github.com/Tomas2D/promise-based-task/commit/e12459e4341b3ae0f30afb3766d8ff44b61ea3e1)] 655 | - Bump @typescript-eslint/parser from 5.32.0 to 5.33.0 [[39ed6fa](https://github.com/Tomas2D/promise-based-task/commit/39ed6fa5cb6498bba080e508fa55bd7fb5708a69)] 656 | - Merge pull request [#23](https://github.com/Tomas2D/promise-based-task/issues/23) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.32.0 [[7d9c954](https://github.com/Tomas2D/promise-based-task/commit/7d9c95459a5d993fc7f154ecce343016cbd32cb9)] 657 | - Merge pull request [#22](https://github.com/Tomas2D/promise-based-task/issues/22) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.32.0 [[a9a702d](https://github.com/Tomas2D/promise-based-task/commit/a9a702d78bcbf317c1389b0a97cdaf75b4091e4f)] 658 | - Merge pull request [#24](https://github.com/Tomas2D/promise-based-task/issues/24) from Tomas2D/dependabot/npm_and_yarn/eslint-8.21.0 [[e1c4892](https://github.com/Tomas2D/promise-based-task/commit/e1c4892171843d1cae81b58ed733893267e91a58)] 659 | - Bump @typescript-eslint/parser from 5.31.0 to 5.32.0 [[5bcf2b9](https://github.com/Tomas2D/promise-based-task/commit/5bcf2b962ff3a07e7a65c9ad1942c5c6aee158ca)] 660 | - Bump eslint from 8.20.0 to 8.21.0 [[5df5872](https://github.com/Tomas2D/promise-based-task/commit/5df58726db4ba0e22cfe171693946941b7b3a833)] 661 | - Bump @typescript-eslint/eslint-plugin from 5.31.0 to 5.32.0 [[b2aa33a](https://github.com/Tomas2D/promise-based-task/commit/b2aa33a94fab89cd4d6511117b17bc1b78a345fa)] 662 | - Merge pull request [#21](https://github.com/Tomas2D/promise-based-task/issues/21) from Tomas2D/dependabot/npm_and_yarn/types/node-16.11.47 [[b9ed7c7](https://github.com/Tomas2D/promise-based-task/commit/b9ed7c78ee9e835d5062cf5ce3c24a454ebd1b11)] 663 | - Bump @types/node from 16.11.46 to 16.11.47 [[7991bb6](https://github.com/Tomas2D/promise-based-task/commit/7991bb653dcfc3a2f400636e80ac9afd3ff18525)] 664 | - Merge pull request [#20](https://github.com/Tomas2D/promise-based-task/issues/20) from Tomas2D/dependabot/npm_and_yarn/types/node-16.11.46 [[633e3b5](https://github.com/Tomas2D/promise-based-task/commit/633e3b573786a0317fe95cd2470dac4122b104e3)] 665 | - Bump @types/node from 16.11.45 to 16.11.46 [[ec91e1c](https://github.com/Tomas2D/promise-based-task/commit/ec91e1cd2f4f4fcd60bd7d4e84fd1dc42ccdc9e1)] 666 | - Merge pull request [#18](https://github.com/Tomas2D/promise-based-task/issues/18) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.31.0 [[4d1aef9](https://github.com/Tomas2D/promise-based-task/commit/4d1aef9d7a5f596b6b4b0d94e54e2336f9cd2078)] 667 | - Merge pull request [#19](https://github.com/Tomas2D/promise-based-task/issues/19) from Tomas2D/dependabot/npm_and_yarn/types/node-16.11.45 [[183b017](https://github.com/Tomas2D/promise-based-task/commit/183b0178ca22ee5bf66598c34b845706890c73e3)] 668 | - Bump @types/node from 16.11.17 to 16.11.45 [[27f08b6](https://github.com/Tomas2D/promise-based-task/commit/27f08b627e098c77e4c3c4b646d7f752b2943f05)] 669 | - Merge pull request [#17](https://github.com/Tomas2D/promise-based-task/issues/17) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.31.0 [[5795771](https://github.com/Tomas2D/promise-based-task/commit/5795771761858df7d590a78a23a2ef799d817557)] 670 | - Bump @typescript-eslint/eslint-plugin from 5.30.7 to 5.31.0 [[12eb33b](https://github.com/Tomas2D/promise-based-task/commit/12eb33bae63a231d9dcda62867e4c15751a3ae61)] 671 | - Bump @typescript-eslint/parser from 5.30.7 to 5.31.0 [[a4cb06a](https://github.com/Tomas2D/promise-based-task/commit/a4cb06a8d9437b663085887d4cc76c809c6ec03e)] 672 | - Merge pull request [#14](https://github.com/Tomas2D/promise-based-task/issues/14) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.30.7 [[7d35b91](https://github.com/Tomas2D/promise-based-task/commit/7d35b9142ba783885dd58ddc584656deeea0caeb)] 673 | - Bump @typescript-eslint/eslint-plugin from 5.30.6 to 5.30.7 [[4188957](https://github.com/Tomas2D/promise-based-task/commit/4188957464cd974f7db6fcdc519dc6ad68ec40a3)] 674 | 675 | 676 | 677 | ## 1.3.2 (2022-07-19) 678 | 679 | ### Added 680 | 681 | - ✨ Add information about internal promise state [[18c7590](https://github.com/Tomas2D/promise-based-task/commit/18c7590636b3e82a28091c67751ab2de722ad495)] 682 | 683 | ### Changed 684 | 685 | - 🔧 Setup Dependabot auto updates [[1df1086](https://github.com/Tomas2D/promise-based-task/commit/1df10865ea71efbec9a0ed4608ee50916904adcc)] 686 | 687 | ### Fixed 688 | 689 | - 🐛 Handle "undefined" as immediately resolve value [[6dae07c](https://github.com/Tomas2D/promise-based-task/commit/6dae07cb8305d02f31ec52d5255622579176ef3c)] 690 | - 🐛 Add missing implementation for [Symbol.toStringTag] [[2440489](https://github.com/Tomas2D/promise-based-task/commit/2440489fd5a6123569959c27ff84799f8ad53f66)] 691 | 692 | ### Miscellaneous 693 | 694 | - Merge pull request [#13](https://github.com/Tomas2D/promise-based-task/issues/13) from Tomas2D/dependabot/npm_and_yarn/eslint-8.20.0 [[fcfbb35](https://github.com/Tomas2D/promise-based-task/commit/fcfbb355b5a700bdf0d057dd7472376d141e94c9)] 695 | - Merge pull request [#15](https://github.com/Tomas2D/promise-based-task/issues/15) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.30.7 [[0f94879](https://github.com/Tomas2D/promise-based-task/commit/0f94879b971ff71ada410b77c0cb8b86fbf6307f)] 696 | - Bump @typescript-eslint/parser from 5.30.6 to 5.30.7 [[f9b5cc1](https://github.com/Tomas2D/promise-based-task/commit/f9b5cc1428e1a2fd2f27d5100a348b5623b3a22e)] 697 | - Bump eslint from 8.5.0 to 8.20.0 [[b69f521](https://github.com/Tomas2D/promise-based-task/commit/b69f521376461bbaf52c388581b94af933d84043)] 698 | - Merge pull request [#5](https://github.com/Tomas2D/promise-based-task/issues/5) from Tomas2D/dependabot/npm_and_yarn/typescript-4.7.4 [[1d73b2b](https://github.com/Tomas2D/promise-based-task/commit/1d73b2b019cd3b3366f440e345851bdc564863b6)] 699 | - Merge pull request [#4](https://github.com/Tomas2D/promise-based-task/issues/4) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/parser-5.30.6 [[a4650d5](https://github.com/Tomas2D/promise-based-task/commit/a4650d52b53867d19afa3460c9b3d499f5a9eea6)] 700 | - Bump typescript from 4.5.4 to 4.7.4 [[7ce9c1d](https://github.com/Tomas2D/promise-based-task/commit/7ce9c1d291f1c3fe94814f269cb4bc7093265571)] 701 | - Merge pull request [#10](https://github.com/Tomas2D/promise-based-task/issues/10) from Tomas2D/dependabot/npm_and_yarn/lint-staged-13.0.3 [[640da7c](https://github.com/Tomas2D/promise-based-task/commit/640da7c2468a988a320e2a74173513b6e06510ac)] 702 | - Merge pull request [#7](https://github.com/Tomas2D/promise-based-task/issues/7) from Tomas2D/dependabot/npm_and_yarn/eslint-config-prettier-8.5.0 [[b1ef6f3](https://github.com/Tomas2D/promise-based-task/commit/b1ef6f334464cb9e3401f9533919c2053be37d34)] 703 | - Merge pull request [#8](https://github.com/Tomas2D/promise-based-task/issues/8) from Tomas2D/dependabot/npm_and_yarn/prettier-2.7.1 [[0604515](https://github.com/Tomas2D/promise-based-task/commit/060451517c544112789660214522e1a3b2ecc528)] 704 | - Bump lint-staged from 12.1.4 to 13.0.3 [[2b68563](https://github.com/Tomas2D/promise-based-task/commit/2b68563542980559f59d50ecb96279d9a7609ecd)] 705 | - Bump prettier from 2.5.1 to 2.7.1 [[95e0cf6](https://github.com/Tomas2D/promise-based-task/commit/95e0cf6a4ac97c0d6517ad2c55f01415a70d128d)] 706 | - Bump eslint-config-prettier from 8.3.0 to 8.5.0 [[77cfb3e](https://github.com/Tomas2D/promise-based-task/commit/77cfb3e4170eb93a17c74cd5b4c4c878610bff21)] 707 | - Merge pull request [#3](https://github.com/Tomas2D/promise-based-task/issues/3) from Tomas2D/dependabot/npm_and_yarn/husky-8.0.1 [[6f68d6e](https://github.com/Tomas2D/promise-based-task/commit/6f68d6edd4acec4cfc0b57da8c12a6abae5ace07)] 708 | - Merge pull request [#6](https://github.com/Tomas2D/promise-based-task/issues/6) from Tomas2D/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-5.30.6 [[b0e38fc](https://github.com/Tomas2D/promise-based-task/commit/b0e38fc2dc17923a596c1a98b0c728fd30ab0d06)] 709 | - Bump @typescript-eslint/parser from 5.8.1 to 5.30.6 [[4166ffe](https://github.com/Tomas2D/promise-based-task/commit/4166ffe1bb729e83ec651e784c36941e5bdadf63)] 710 | - Bump @typescript-eslint/eslint-plugin from 5.8.1 to 5.30.6 [[0e14283](https://github.com/Tomas2D/promise-based-task/commit/0e1428308dbca16e7652ab3a55e12805a44ae3eb)] 711 | - Bump husky from 7.0.4 to 8.0.1 [[7c465ba](https://github.com/Tomas2D/promise-based-task/commit/7c465ba747e83b66cf053ab22de8a81d315a144d)] 712 | 713 | 714 | 715 | ## 1.3.1 (2022-07-04) 716 | 717 | ### Changed 718 | 719 | - 🔧 Update repository info in package.json [[a302856](https://github.com/Tomas2D/promise-based-task/commit/a302856c6d9e3538fce334ad7b7fdb6e414bfd79)] 720 | 721 | ### Miscellaneous 722 | 723 | - Merge pull request [#1](https://github.com/Tomas2D/promise-based-task/issues/1) from Tomas2D/dependabot/npm_and_yarn/minimist-1.2.6 [[608eda5](https://github.com/Tomas2D/promise-based-task/commit/608eda561dfe2832c4dc6f5b20365076d638ca5c)] 724 | - Bump minimist from 1.2.5 to 1.2.6 [[8b0e70b](https://github.com/Tomas2D/promise-based-task/commit/8b0e70b88bc4ba400459db06d1d9edd50ec90826)] 725 | 726 | 727 | 728 | ## 1.3.0 (2022-02-05) 729 | 730 | ### Added 731 | 732 | - ✅ Add test cases for TTL in sliding task map [[9cddb22](https://github.com/Tomas2D/promise-based-task/commit/9cddb22f28cc9f4758056562db5c21f1e9724197)] 733 | - ✨ Add support for TTL in sliding task map [[7162501](https://github.com/Tomas2D/promise-based-task/commit/71625019b90325c6d23d10714914bd669188cb37)] 734 | 735 | ### Miscellaneous 736 | 737 | - 📝 Mention about TTL in SlidingTaskMap [[60388cf](https://github.com/Tomas2D/promise-based-task/commit/60388cfae00a79d089ff2c7a6b2c6f96a2e638c5)] 738 | - 📝 Update README.md [[021ce29](https://github.com/Tomas2D/promise-based-task/commit/021ce29e5f520bc64b54849a65060eb2f1258e11)] 739 | 740 | 741 | 742 | ## 1.2.0 (2022-01-31) 743 | 744 | ### Added 745 | 746 | - ✨ Add pop/shift methods for SlidingTaskMap [[2fb3682](https://github.com/Tomas2D/promise-based-task/commit/2fb368235bfb9aa28bc6d3755709e58982fd5cb3)] 747 | 748 | ### Changed 749 | 750 | - ♻️ Improve typing [[b051f5b](https://github.com/Tomas2D/promise-based-task/commit/b051f5b8b20e7b4155feb0728b1c66a1d01608c7)] 751 | 752 | ### Miscellaneous 753 | 754 | - 📝 Mention SlidingTaskMap type definition in README [[4245168](https://github.com/Tomas2D/promise-based-task/commit/42451688fe7c7ec367bb751ad0af2069aa258d98)] 755 | 756 | 757 | 758 | ## 1.1.0 (2022-01-18) 759 | 760 | ### Added 761 | 762 | - ✨ Add SlidingTaskMap [[f89b0a8](https://github.com/Tomas2D/promise-based-task/commit/f89b0a81048c8385cacd04d268cc6c8e81fd5ac1)] 763 | 764 | ### Miscellaneous 765 | 766 | - Update README.md [[b65526b](https://github.com/Tomas2D/promise-based-task/commit/b65526b636c535a6383930b094346f46ffb3a600)] 767 | 768 | 769 | 770 | ## 1.0.0 (2021-12-27) 771 | 772 | ### Added 773 | 774 | - 🎉 Init a project [[90322d7](https://github.com/Tomas2D/promise-based-task/commit/90322d74685608142aaeeadadc44288cc433bb88)] 775 | 776 | 777 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) [year] [fullname] 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 🛤 promise-based-task 2 | 3 | [![CI](https://github.com/Tomas2D/promise-based-task/actions/workflows/node.js.yml/badge.svg?branch=main)](https://github.com/Tomas2D/promise-based-task/actions/workflows/node.js.yml) 4 | [![codecov](https://codecov.io/gh/Tomas2D/promise-based-task/branch/main/graph/badge.svg?token=SQA7VM6XIV)](https://codecov.io/gh/Tomas2D/promise-based-task) 5 | 6 | With this tiny library, you will be able to solve situations where you want to prevent 7 | multiple requests to do time-consuming operations simultaneously. 8 | With this approach, one request will take care of creating the final data and other processes 9 | will asynchronously wait for the completion. 10 | 11 | **NOTE:** This library is useful if you need a lightweight solution without an extra service like Redis / PubSub etc. 12 | 13 | Does this library help you? Please give it a ⭐️! 14 | 15 | ## ✨️ Features 16 | 17 | - Later resolving of a task in a `Promise` way 18 | - Auto rejecting promises removed from the shared data structure (`TaskMap`, which is an extension of a `Map` data structure) 19 | - Zero dependencies 20 | - Map with limited space (sliding-window) 21 | - Task Queue mechanism 22 | 23 | ## 🚀 Installation 24 | 25 | ``` 26 | yarn add promise-based-task 27 | ``` 28 | ``` 29 | npm install promise-based-task 30 | ``` 31 | 32 | ## 🤘🏻 Usage 33 | 34 | **Single task** 35 | ```typescript 36 | import { Task } from 'promise-based-task' 37 | 38 | let pricesTask: Task | null = null 39 | 40 | app.get('/prices', async function (req, res) { 41 | if (pricesTask === null) { 42 | pricesTask = new Task(); 43 | 44 | const result = await longRunningTask() 45 | pricesTask.resolve(result) 46 | } 47 | 48 | const prices = await pricesTask 49 | res.json(prices) 50 | }) 51 | ``` 52 | 53 | **Multiple tasks (without removing)** 54 | 55 | This type is useful when you want to cache data that are not so huge, but 56 | their creation is expensive. Following code prevents multiple requests to react the 57 | critical section of generating the data. 58 | 59 | ```typescript 60 | import { Task, TaskMap } from 'promise-based-task' 61 | 62 | let pricesTasks: TaskMap = new TaskMap() 63 | 64 | app.get('/prices/:date', async function (req, res) { 65 | const date = req.params.date 66 | 67 | if (!pricesTasks.has(date)) { 68 | const task = new Task(); 69 | pricesTasks.set(date, task) 70 | 71 | const result = await longRunningTask(date) 72 | task.resolve(result) 73 | } 74 | 75 | const prices = await pricesTasks.get(date) 76 | res.json(prices) 77 | }) 78 | ``` 79 | 80 | **Multiple tasks (with removing)** 81 | 82 | Sometimes you do not want to store results in memory because results can be enormous in size 83 | and thus, your server can run out of his memory pretty fast. 84 | 85 | Following code prevents multiple requests to trigger the process of transforming data to 86 | desired shape and uploading them to S3. 87 | 88 | ```typescript 89 | import { Task, TaskMap } from 'promise-based-task' 90 | 91 | const tasks: TaskMap = new TaskMap() 92 | 93 | app.get('/observations/:date', async function (req, res) { 94 | const date = req.params.date 95 | 96 | if (tasks.has(date)) { 97 | await tasks.get(date) 98 | } else { 99 | const task = new Task() 100 | tasks.set(date, task) 101 | 102 | const rawData = await fetchData(date) 103 | const data = await analyzeData(rawData) 104 | await uploadDataToS3(data) 105 | 106 | task.resolve() 107 | tasks.delete(date) 108 | } 109 | 110 | downloadDataFromS3(date).pipe(res) 111 | }) 112 | ``` 113 | 114 | **Task Queue** 115 | 116 | ```typescript 117 | // Type Definition 118 | declare class TaskQueue { 119 | constructor(queueSize?: number); // default is 1 120 | clear(): Promise; 121 | execute(fn: () => Promise): Promise; 122 | getStats(): { 123 | processingCount: number; 124 | waitingCount: number; 125 | }; 126 | } 127 | ``` 128 | 129 | You want to use the Task Queue when you want to throttle requests/executions of given part of your system. 130 | 131 | ```typescript 132 | const queue = new TaskQueue(5) 133 | 134 | app.get('/scrape/:source', async function (req, res) { 135 | const source = req.params.source 136 | const response = await queue.execute(async () => { 137 | // this function will run by the queue mechanism 138 | return service.scrape(source) 139 | }) 140 | 141 | res.json(response) 142 | }) 143 | 144 | app.get('/scrape/status', async function (req, res) { 145 | const { processingCount, waitingCount } = queue.getStats() 146 | 147 | return res.json({ 148 | processingCount, 149 | waitingCount, 150 | }) 151 | }) 152 | ``` 153 | 154 | **Sliding window** 155 | ```typescript 156 | // Type Definition 157 | declare class SlidingTaskMap extends TaskMap { 158 | constructor(windowSize: number, ttl?: number); 159 | set(key: K, value: V, customTTL?: number): this; // create/override 160 | delete(key: K): boolean; // remove single entry 161 | clear(): void; // removes all entries 162 | pop(): boolean; // removes oldest entry, false for an empty window 163 | shift(): boolean; // removes newest entry, false for an empty window 164 | } 165 | ``` 166 | 167 | When your map size reaches a specified threshold, the oldest values will be 168 | removed. You can be then sure that the size of the map will never overflow your memory. 169 | 170 | ```typescript 171 | import { Task, SlidingTaskMap } from 'promise-based-task' 172 | 173 | const WINDOW_SIZE = 10 174 | const TTL = 60 * 1000 // data will persist 60 seconds in a cache 175 | const tasks = new SlidingTaskMap(WINDOW_SIZE, TTL) 176 | 177 | app.get('/calculation/:date', async function () { 178 | const date = req.params.date 179 | 180 | if (!tasks.has(date)) { 181 | const task = new Task() 182 | tasks.set(date, task) 183 | 184 | const data = await fetchData(date) 185 | task.resolve(data) 186 | } 187 | 188 | return tasks.get(date) 189 | }) 190 | ``` 191 | 192 | When your map size reaches a specified threshold, the oldest values will be 193 | removed. You can be then sure that the size of the map will never overflow your memory. 194 | 195 | ```typescript 196 | import { Task, SlidingTaskMap } from 'promise-based-task' 197 | 198 | const WINDOW_SIZE = 10 199 | const TTL = 60 * 1000 // data will persist 60 seconds in a cache 200 | const tasks = new SlidingTaskMap(WINDOW_SIZE, TTL) 201 | 202 | app.get('/calculation/:date', async function () { 203 | const date = req.params.date 204 | 205 | if (!tasks.has(date)) { 206 | const task = new Task() 207 | tasks.set(date, task) 208 | 209 | const data = await fetchData(date) 210 | task.resolve(data) 211 | } 212 | 213 | return tasks.get(date) 214 | }) 215 | ``` 216 | -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | fixes: 2 | - "/home/runner/work/Tomas2D/promise-based-task/::" 3 | -------------------------------------------------------------------------------- /jest.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "preset": "ts-jest", 3 | "moduleFileExtensions": [ 4 | "js", 5 | "json", 6 | "ts" 7 | ], 8 | "testTimeout": 15000, 9 | "testRegex": ".test.ts$", 10 | "transform": { 11 | "^.+\\.(t|j)s$": "ts-jest" 12 | }, 13 | "testEnvironment": "node", 14 | "globals": { 15 | "ts-jest": { 16 | "tsconfig": "tsconfig.test.json" 17 | } 18 | }, 19 | "collectCoverageFrom": [ 20 | "**/*.ts", 21 | "!**/node_modules/**" 22 | ], 23 | "coveragePathIgnorePatterns": [ 24 | "/node_modules", 25 | "/lib", 26 | "/tsup.config.ts" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "promise-based-task", 3 | "description": "Create a task and resolve it later via a Promise approach. Run time-consuming processes only once.", 4 | "keywords": [ 5 | "promise", 6 | "promise task", 7 | "promise based task", 8 | "promise task map" 9 | ], 10 | "version": "3.1.1", 11 | "type": "module", 12 | "main": "./lib/index.cjs", 13 | "module": "./lib/index.js", 14 | "types": "./lib/index.d.ts", 15 | "exports": { 16 | ".": { 17 | "require": "./lib/index.cjs", 18 | "import": "./lib/index.js", 19 | "default": "./lib/index.js" 20 | } 21 | }, 22 | "files": [ 23 | "lib" 24 | ], 25 | "homepage": "https://github.com/Tomas2D/promise-based-task#readme", 26 | "repository": { 27 | "type": "git", 28 | "url": "git+https://github.com/Tomas2D/promise-based-task.git" 29 | }, 30 | "bugs": { 31 | "url": "https://github.com/Tomas2D/promise-based-task/issues" 32 | }, 33 | "author": "Tomáš Dvořák ", 34 | "license": "MIT", 35 | "private": false, 36 | "scripts": { 37 | "build": "rimraf lib && tsc --noEmit --project tsconfig.build.json && tsup", 38 | "lint": "eslint \"{src,test}/**/*.ts\" --fix", 39 | "prettier": "prettier \"{src,test}/**/*.ts\" --write", 40 | "format": "prettier --write \"src/**/*.ts\"", 41 | "changelog": "npx gitmoji-changelog", 42 | "release": "yarn version", 43 | "version": "yarn changelog && code --wait CHANGELOG.md && git add README.md CHANGELOG.md", 44 | "prepublishOnly": "yarn build", 45 | "test": "jest", 46 | "test:coverage": "jest --coverage" 47 | }, 48 | "devDependencies": { 49 | "@types/jest": "^27.0.3", 50 | "@types/node": "^22.7.5", 51 | "@typescript-eslint/eslint-plugin": "^5.8.1", 52 | "@typescript-eslint/parser": "^5.8.1", 53 | "eslint": "^8.5.0", 54 | "eslint-config-prettier": "^10.1.1", 55 | "husky": "^8.0.1", 56 | "jest": "^27.4.5", 57 | "lint-staged": "^14.0.0", 58 | "prettier": "^3.0.0", 59 | "rimraf": "^5.0.5", 60 | "ts-jest": "^27.1.2", 61 | "tsup": "^7.1.0", 62 | "typescript": "^4.5.4" 63 | }, 64 | "husky": { 65 | "hooks": { 66 | "pre-commit": "lint-staged" 67 | } 68 | }, 69 | "lint-staged": { 70 | "*.{js,ts,tsx}": [ 71 | "eslint --fix", 72 | "prettier --write" 73 | ] 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src/SlidingTaskMap.ts: -------------------------------------------------------------------------------- 1 | import { TaskMap } from './TaskMap'; 2 | 3 | export class SlidingTaskMap extends TaskMap { 4 | private readonly keysByTime: K[] = []; 5 | private readonly ttlMap: Map = new Map(); 6 | 7 | constructor(public readonly windowSize: number, public readonly ttl?: number) { 8 | super(); 9 | 10 | if (windowSize < 1 || isNaN(windowSize)) { 11 | throw new TypeError(`windowSize cannot be less than 1!`); 12 | } 13 | this.windowSize = Number(windowSize); 14 | 15 | if (ttl !== undefined && ttl !== Number.POSITIVE_INFINITY) { 16 | if (isNaN(ttl) || ttl < 1) { 17 | throw new TypeError(`ttl cannot be less than 1!`); 18 | } else { 19 | this.ttl = Number(ttl); 20 | } 21 | } 22 | } 23 | 24 | private clearTimeout(key: K) { 25 | if (this.ttlMap.has(key)) { 26 | clearTimeout(this.ttlMap.get(key)!); 27 | this.ttlMap.delete(key); 28 | } 29 | } 30 | 31 | private setTimeout(key: K, customTTL?: number) { 32 | const ttl = Number(customTTL ?? this.ttl); 33 | 34 | if (ttl > 0 && ttl !== Number.POSITIVE_INFINITY) { 35 | const timeoutId = setTimeout(() => { 36 | this.delete(key); 37 | }, ttl).unref(); 38 | 39 | this.ttlMap.set(key, timeoutId); 40 | } 41 | } 42 | 43 | set(key: K, value: V, customTTL?: number): this { 44 | if (this.has(key)) { 45 | super.set(key, value); 46 | } else { 47 | if (this.size + 1 > this.windowSize) { 48 | this.shift(); 49 | } 50 | 51 | this.keysByTime.push(key); 52 | super.set(key, value); 53 | } 54 | 55 | this.setTimeout(key, customTTL); 56 | return this; 57 | } 58 | 59 | delete(key: K): boolean { 60 | const didDelete = super.delete(key); 61 | if (didDelete) { 62 | this.clearTimeout(key); 63 | const deleteIndex = this.keysByTime.indexOf(key); 64 | this.keysByTime.splice(deleteIndex, 1); 65 | } 66 | return didDelete; 67 | } 68 | 69 | clear(): void { 70 | super.clear(); 71 | this.keysByTime.length = 0; 72 | this.ttlMap.clear(); 73 | } 74 | 75 | pop() { 76 | const key = this.keysByTime.at(-1); 77 | if (key !== undefined) { 78 | const item = this.get(key) 79 | this.delete(key); 80 | return item 81 | } 82 | } 83 | 84 | shift() { 85 | const key = this.keysByTime.at(0); 86 | if (key !== undefined) { 87 | const item = this.get(key) 88 | this.delete(key); 89 | return item 90 | } 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /src/Task.ts: -------------------------------------------------------------------------------- 1 | import type { Deletable } from './types'; 2 | import { TaskDestroyedException } from './error'; 3 | 4 | export enum TaskState { 5 | PENDING = 'pending', 6 | RESOLVED = 'resolved', 7 | REJECTED = 'rejected' 8 | } 9 | 10 | export interface TaskInput { 11 | signal?: AbortSignal 12 | } 13 | 14 | export class Task implements Promise, Deletable { 15 | private _promise: Promise; 16 | private _resolve!: (value: T) => void 17 | private _reject!: (error: E) => void 18 | 19 | private _state: TaskState = TaskState.PENDING 20 | private _resolvedValue: Readonly | undefined 21 | private _rejectedValue: E | undefined 22 | 23 | constructor(input?: TaskInput) { 24 | this._promise = new Promise((_resolve, _reject) => { 25 | this._resolve = (...args) => { 26 | if (this.state === TaskState.PENDING) { 27 | this._state = TaskState.RESOLVED 28 | this._resolvedValue = args.at(0) 29 | _resolve(...args); 30 | } 31 | } 32 | this._reject = (...args) => { 33 | if (this.state === TaskState.PENDING) { 34 | this._state = TaskState.REJECTED 35 | this._rejectedValue = args.at(0) 36 | _reject(...args); 37 | } 38 | } 39 | }); 40 | 41 | this._promise.catch(() => { 42 | /* Prevent "UnhandledPromiseRejectionWarning" */ 43 | }); 44 | 45 | input?.signal?.addEventListener?.("abort", () => { 46 | this.reject(new TaskDestroyedException("Task has been aborted!") as E) 47 | }, { 48 | once: true, 49 | }) 50 | } 51 | 52 | static resolve(value: A) { 53 | const instance = new Task() 54 | instance.resolve(value) 55 | return instance 56 | } 57 | 58 | resolve(value: T) { 59 | this._resolve(value) 60 | } 61 | 62 | reject(reason: E) { 63 | this._reject(reason) 64 | } 65 | 66 | destructor(): void { 67 | this.reject(new TaskDestroyedException('Object already destroyed') as E); 68 | } 69 | 70 | then( 71 | onfulfilled?: ((value: T) => PromiseLike | TResult1) | undefined | null, 72 | onrejected?: ((reason: any) => PromiseLike | TResult2) | undefined | null, 73 | ): Promise { 74 | return this._promise.then(onfulfilled).catch(onrejected); 75 | } 76 | 77 | catch( 78 | onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null, 79 | ): Promise { 80 | return this._promise.catch(onrejected); 81 | } 82 | 83 | finally(onfinally?: (() => void) | undefined | null): Promise { 84 | return this._promise.finally(onfinally); 85 | } 86 | 87 | get state(): TaskState { 88 | return this._state 89 | } 90 | 91 | resolvedValue(): Readonly | undefined { 92 | return this._resolvedValue 93 | } 94 | 95 | rejectedValue(): E | undefined { 96 | return this._rejectedValue 97 | } 98 | 99 | get [Symbol.toStringTag]() { 100 | return Task.name 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /src/TaskMap.ts: -------------------------------------------------------------------------------- 1 | import { isDeletable } from './types'; 2 | 3 | export class TaskMap extends Map { 4 | delete(key: K): boolean { 5 | if (this.has(key)) { 6 | const target = this.get(key); 7 | if (isDeletable(target)) { 8 | target.destructor(); 9 | } 10 | return super.delete(key); 11 | } 12 | return false; 13 | } 14 | 15 | set(key: K, value: V): this { 16 | this.delete(key); 17 | 18 | return super.set(key, value); 19 | } 20 | 21 | clear(): void { 22 | for (const key of this.keys()) { 23 | this.delete(key); 24 | } 25 | 26 | super.clear(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/TaskQueue.ts: -------------------------------------------------------------------------------- 1 | import { Task } from './Task' 2 | import { TaskDestroyedException } from './error'; 3 | 4 | interface IWaitingTask { 5 | task: Task 6 | resolver: () => Promise 7 | } 8 | 9 | export class TaskQueue { 10 | private _waitingQueue: Array> = [] 11 | private _unlockQueue: Array> = [] 12 | 13 | 14 | private readonly _queueSize: number 15 | private _processingCount = 0 16 | 17 | constructor(queueSize?: number) { 18 | this._queueSize = Math.max(Number(queueSize), 1) 19 | } 20 | 21 | private async _internalSync() { 22 | if (this._processingCount >= this._queueSize) { 23 | const waitForUnlockTask = new Task() 24 | this._unlockQueue.push(waitForUnlockTask) 25 | await waitForUnlockTask 26 | } 27 | 28 | const task = this._waitingQueue.shift() 29 | if (task) { 30 | await task.resolver() 31 | } 32 | } 33 | 34 | async clear() { 35 | this._waitingQueue.forEach(item => item.task.reject(new TaskDestroyedException())) 36 | this._unlockQueue.forEach(item => item.reject(new TaskDestroyedException())) 37 | 38 | this._unlockQueue.length = 0 39 | this._waitingQueue.length = 0 40 | this._processingCount = 0 41 | } 42 | 43 | async execute(fn: () => Promise): Promise { 44 | const task = new Task() 45 | this._waitingQueue.push({ 46 | task, 47 | resolver: async () => { 48 | this._processingCount++ 49 | 50 | const cleanup = () => { 51 | this._processingCount-- 52 | const unlockTask = this._unlockQueue.shift() 53 | unlockTask?.resolve() 54 | } 55 | 56 | return fn() 57 | .then((res) => { 58 | cleanup(); 59 | task.resolve(res); 60 | }) 61 | .catch(e => { 62 | cleanup(); 63 | task.reject(e); 64 | }) 65 | } 66 | }) 67 | 68 | this._internalSync().catch(() => {}) 69 | 70 | return task 71 | } 72 | 73 | getStats() { 74 | return { 75 | processingCount: this._processingCount, 76 | waitingCount: this._waitingQueue.length, 77 | } 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /src/error.ts: -------------------------------------------------------------------------------- 1 | export class TaskDestroyedException extends Error {} 2 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Task'; 2 | export * from './TaskMap'; 3 | export * from './SlidingTaskMap'; 4 | export * from './TaskQueue'; 5 | export * from './types'; 6 | export * from './error'; 7 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | export interface Deletable { 2 | destructor: () => void; 3 | } 4 | 5 | export function isDeletable(value: unknown): value is Deletable { 6 | return typeof value === 'object' && value !== null && 'destructor' in value && typeof (value as Deletable).destructor === 'function'; 7 | } 8 | -------------------------------------------------------------------------------- /test/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../.eslintrc.json"], 3 | "root": false, 4 | "parserOptions": { 5 | "project": ["../tsconfig.json", "../tsconfig.test.json"], 6 | "sourceType": "module" 7 | }, 8 | "rules": { 9 | "@typescript-eslint/no-non-null-assertion": "off" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /test/SlidingTaskMap.test.ts: -------------------------------------------------------------------------------- 1 | import { Task, SlidingTaskMap } from '../src'; 2 | 3 | describe('SlidingTaskMap', () => { 4 | beforeEach(() => { 5 | jest.useFakeTimers(); 6 | }); 7 | 8 | it('Counts', async () => { 9 | const map = new SlidingTaskMap>(5); 10 | 11 | expect(map.size).toBe(0); 12 | map.set('1', Task.resolve(1)); 13 | expect(map.size).toBe(1); 14 | map.delete('1'); 15 | expect(map.size).toBe(0); 16 | map.set('2', Task.resolve(2)); 17 | expect(map.size).toBe(1); 18 | map.set('2', Task.resolve(2)); 19 | expect(map.size).toBe(1); 20 | map.clear(); 21 | expect(map.size).toBe(0); 22 | }); 23 | 24 | it('Slides', async () => { 25 | const WINDOW_SIZE = 5; 26 | const map = new SlidingTaskMap>(WINDOW_SIZE); 27 | 28 | const keys = Array.from({ length: 50 }).map((_, i) => String(i + 1)); 29 | for (const key of keys) { 30 | const prevSize = Number(map.size); 31 | 32 | const task = Task.resolve(key); 33 | map.set(key, task); 34 | 35 | expect(map.has(key)).toBe(true); 36 | expect(map.get(key)).toEqual(task); 37 | expect(prevSize).toBeLessThanOrEqual(map.size); 38 | expect(map.size).toBeLessThanOrEqual(WINDOW_SIZE); 39 | } 40 | 41 | const resolvedValues = await Promise.all(Array.from(map.values())); 42 | expect(resolvedValues).toEqual(keys.slice(-WINDOW_SIZE)); 43 | }); 44 | 45 | it('Throws with invalid window size', async () => { 46 | expect(() => new SlidingTaskMap(0)).toThrow(); 47 | 48 | // @ts-expect-error simulating no type safety env 49 | expect(() => new SlidingTaskMap()).toThrow(); 50 | 51 | // @ts-expect-error simulating no type safety env 52 | expect(() => new SlidingTaskMap([])).toThrow(); 53 | 54 | // @ts-expect-error simulating no type safety env 55 | expect(() => new SlidingTaskMap('x')).toThrow(); 56 | }); 57 | 58 | it('Removes element from front (shift)', async () => { 59 | const map = new SlidingTaskMap>(5); 60 | expect(map.pop()).toBe(undefined); 61 | expect(map.shift()).toBe(undefined); 62 | 63 | const tasks = [new Task(), new Task(), new Task()]; 64 | 65 | map.set('1', tasks[0]); 66 | map.set('2', tasks[1]); 67 | map.set('3', tasks[2]); 68 | 69 | expect(map.size).toBe(3); 70 | 71 | expect(map.pop()).toBeTruthy(); 72 | expect(map.size).toBe(2); 73 | expect(map.has('1')).toBe(true); 74 | expect(map.has('2')).toBe(true); 75 | expect(map.has('3')).toBe(false); 76 | 77 | expect(map.shift()).toBeTruthy(); 78 | expect(map.size).toBe(1); 79 | expect(map.has('1')).toBe(false); 80 | expect(map.has('2')).toBe(true); 81 | expect(map.has('3')).toBe(false); 82 | 83 | expect(map.pop()).toBeTruthy(); 84 | expect(map.size).toBe(0); 85 | expect(map.has('1')).toBe(false); 86 | expect(map.shift()).toBe(undefined); 87 | }); 88 | 89 | it('Throws with invalid TTL', () => { 90 | expect(() => new SlidingTaskMap(5, 0)).toThrow(); 91 | expect(() => new SlidingTaskMap(5, -1)).toThrow(); 92 | expect(() => new SlidingTaskMap(5, null)).toThrow(); 93 | expect(() => new SlidingTaskMap(5, undefined)).not.toThrow(); 94 | expect(() => new SlidingTaskMap(5, 10)).not.toThrow(); 95 | }); 96 | 97 | it('Deletes a task after TTL some period', () => { 98 | jest.useFakeTimers(); 99 | 100 | const setTimeoutSpy = jest.spyOn(global, 'setTimeout'); 101 | const clearTimeoutSpy = jest.spyOn(global, 'clearTimeout'); 102 | 103 | const ttl = 500; 104 | const map = new SlidingTaskMap>(5, ttl); 105 | map.set('1', Task.resolve(1)); 106 | expect(setTimeoutSpy).toBeCalledTimes(1); 107 | expect(map.size).toBe(1); 108 | 109 | map.set('2', Task.resolve(2), ttl * 2); 110 | expect(setTimeoutSpy).toBeCalledTimes(2); 111 | expect(map.size).toBe(2); 112 | 113 | map.set('3', Task.resolve(3), ttl * 3); 114 | expect(setTimeoutSpy).toBeCalledTimes(3); 115 | expect(map.size).toBe(3); 116 | 117 | jest.advanceTimersByTime(ttl); 118 | expect(map.size).toBe(2); 119 | expect(clearTimeoutSpy).toBeCalledTimes(1); 120 | 121 | jest.advanceTimersByTime(ttl); 122 | expect(map.size).toBe(1); 123 | expect(clearTimeoutSpy).toBeCalledTimes(2); 124 | 125 | jest.advanceTimersByTime(ttl); 126 | expect(map.size).toBe(0); 127 | expect(clearTimeoutSpy).toBeCalledTimes(3); 128 | 129 | map.set('4', Task.resolve(4), ttl); 130 | expect(clearTimeoutSpy).toBeCalledTimes(3); 131 | expect(setTimeoutSpy).toBeCalledTimes(4); 132 | expect(map.size).toBe(1); 133 | map.set('4', Task.resolve(4), ttl); 134 | expect(setTimeoutSpy).toBeCalledTimes(5); 135 | expect(clearTimeoutSpy).toBeCalledTimes(4); 136 | expect(map.size).toBe(1); 137 | 138 | jest.advanceTimersByTime(ttl); 139 | expect(clearTimeoutSpy).toBeCalledTimes(5); 140 | expect(setTimeoutSpy).toBeCalledTimes(5); 141 | expect(map.size).toBe(0); 142 | 143 | setTimeoutSpy.mockReset(); 144 | clearTimeoutSpy.mockReset(); 145 | }); 146 | }); 147 | -------------------------------------------------------------------------------- /test/Task.test.ts: -------------------------------------------------------------------------------- 1 | import { Task } from '../src'; 2 | 3 | const noop = () => {}; 4 | const identity = (x: T): T => x; 5 | 6 | describe('Task', () => { 7 | it('Behaves like a promise', async () => { 8 | const task = new Task(); 9 | task.resolve(42); 10 | 11 | const errCallback = jest.fn(); 12 | const finallyCallback = jest.fn(); 13 | 14 | task.catch(errCallback); 15 | task.finally(finallyCallback); 16 | 17 | await expect(errCallback).not.toHaveBeenCalled(); 18 | await expect(finallyCallback).toBeCalledTimes(1); 19 | await expect(task).resolves.toBe(42); 20 | }); 21 | 22 | it('Can access to a resolved value', async () => { 23 | const task = new Task(); 24 | task.resolve(42); 25 | 26 | await expect(task).resolves.toBe(42) 27 | await expect(task).resolves.toBe(task.resolvedValue()) 28 | }) 29 | 30 | it('Can access to a rejected value', async () => { 31 | const task = new Task(); 32 | 33 | const err = new Error('Fail') 34 | task.reject(err); 35 | 36 | await expect(task).rejects.toBe(err) 37 | await expect(task).rejects.toBe(task.rejectedValue()) 38 | }) 39 | 40 | it('Contains information about internal promise state', async () => { 41 | const task = new Task() 42 | expect(task.state).toBe('pending') 43 | task.resolve(42) 44 | expect(task.state).toBe('resolved') 45 | 46 | const taskErr = new Task() 47 | expect(taskErr.state).toBe('pending') 48 | taskErr.reject(new Error('duno')) 49 | expect(taskErr.state).toBe('rejected') 50 | 51 | const taskImmediately = Task.resolve(42) 52 | expect(taskImmediately.state).toBe('resolved') 53 | }) 54 | 55 | it('Resolves immediately with undefined', async () => { 56 | const task = new Task() 57 | expect(task.state).toBe('pending') 58 | 59 | const taskUndefined = Task.resolve(undefined) 60 | expect(taskUndefined.state).toBe('resolved') 61 | await expect(taskUndefined).resolves.toBe(undefined) 62 | }); 63 | 64 | it('Catch on reject', async () => { 65 | const task = new Task(); 66 | task.reject('err'); 67 | await expect(task).rejects.toBe('err'); 68 | }); 69 | 70 | it('Allow create instance with immediately resolve value', async () => { 71 | const task = Task.resolve(42); 72 | await expect(task).resolves.toBe(42); 73 | }); 74 | 75 | it('Ignores double resolve', async () => { 76 | const task = new Task(); 77 | task.resolve(42); 78 | task.resolve(100); 79 | await expect(task).resolves.toBe(42); 80 | }); 81 | 82 | it('Ignores double reject', async () => { 83 | const task = new Task(); 84 | task.reject('nah'); 85 | task.reject(100); 86 | await expect(task).rejects.toBe('nah'); 87 | }); 88 | 89 | it('Will throw if there are some not served observers', async () => { 90 | const task: Task = new Task(); 91 | 92 | const observers = [task.then(noop), task.then(noop), task.then(noop)]; 93 | task.destructor?.(); 94 | for (const observer of observers) { 95 | await expect(observer).rejects.toBeInstanceOf(Error); 96 | } 97 | }); 98 | 99 | it('Will not reject if already resolved', async () => { 100 | const task: Task = new Task(); 101 | const observers = [task.then(identity), task.then(identity), task.then(identity)]; 102 | 103 | task.resolve(42); 104 | 105 | task.reject(new Error()); 106 | task.destructor?.(); 107 | 108 | for (const observer of observers) { 109 | await expect(observer).resolves.toBe(42); 110 | } 111 | }); 112 | 113 | it('Will not throw if there are no observers', () => { 114 | const task: Task = new Task(); 115 | expect(() => { 116 | task.destructor?.(); 117 | }).not.toThrow(); 118 | }); 119 | 120 | it('Prints valid name', () => { 121 | const task = Task.resolve(42) 122 | expect(task.toString()).toBe(`[object ${Task.name}]`) 123 | }) 124 | }); 125 | -------------------------------------------------------------------------------- /test/TaskMap.test.ts: -------------------------------------------------------------------------------- 1 | import { Task, TaskMap } from '../src'; 2 | import { TaskDestroyedException } from '../src/error'; 3 | 4 | describe('TaskMap', () => { 5 | it('Support single task', async () => { 6 | const map = new TaskMap(); 7 | 8 | const taskA = new Task(); 9 | map.set('2021-12-23', taskA); 10 | taskA.resolve(42); 11 | 12 | await expect(map.get('2021-12-23')).resolves.toBe(42); 13 | }); 14 | 15 | it('Throw when task is deleted from map and accessed directly later', async () => { 16 | const map = new TaskMap(); 17 | await expect(() => { 18 | const taskA = new Task(); 19 | map.set('2021-12-23', taskA); 20 | map.delete('2021-12-23'); 21 | return taskA; 22 | }).rejects.toThrow(); 23 | }); 24 | 25 | it('Throw when replaced from map and accessed again', async () => { 26 | const map = new TaskMap(); 27 | await expect(() => { 28 | const taskA = new Task(); 29 | const taskB = new Task(); 30 | 31 | map.set('2021-12-23', taskA); 32 | 33 | taskB.resolve(42); 34 | map.set('2021-12-23', taskB); 35 | 36 | return taskA; 37 | }).rejects.toThrow(); 38 | 39 | await expect(map.get('2021-12-23')!).resolves.toBe(42); 40 | }); 41 | 42 | it('Complex workflow (happy path)', async () => { 43 | const map = new TaskMap>(); 44 | map.set('2021-01-01', new Task()); 45 | 46 | // Work on a task 47 | setTimeout(() => { 48 | expect(map.size).toBe(1); 49 | map.get('2021-01-01').resolve(42); 50 | map.delete('2021-01-01'); 51 | expect(map.size).toBe(0); 52 | }, 1000); 53 | 54 | // Concurrent wait for finish 55 | setTimeout(async () => { 56 | await expect(map.get('2021-01-01')).resolves.toEqual(42); 57 | }, 0); 58 | setTimeout(async () => { 59 | await expect(map.get('2021-01-01')).resolves.toEqual(42); 60 | }, 200); 61 | setTimeout(async () => { 62 | await expect(map.get('2021-01-01')).resolves.toEqual(42); 63 | }, 500); 64 | 65 | // Access later -> fail, because reference from map destroyed 66 | setTimeout(async () => { 67 | const task = map.get('2021-01-01'); 68 | setTimeout(async () => { 69 | await expect(map.size).toBe(0); 70 | await expect(task).rejects.toThrow(); 71 | }, 1500); 72 | }, 0); 73 | 74 | await new Promise((res) => setTimeout(res, 2000)); 75 | await expect.assertions(7); 76 | }); 77 | 78 | it('Complex workflow (not happy path)', async () => { 79 | const map = new TaskMap>(); 80 | map.set('2021-01-01', new Task()); 81 | map.set('2021-02-01', new Task()); 82 | 83 | // Work on a first task 84 | setTimeout(() => { 85 | map.get('2021-01-01')!.resolve(42); 86 | map.delete('2021-01-01'); 87 | }, 250); 88 | 89 | // Work on a second task 90 | setTimeout(() => { 91 | map.get('2021-02-01')!.reject(new Error('Server down')); 92 | map.delete('2021-02-01'); 93 | }, 500); 94 | 95 | // Concurrent wait for finish 96 | setTimeout(async () => { 97 | await Promise.all([ 98 | expect(map.get('2021-02-01')).rejects.toThrow(), 99 | expect(map.get('2021-01-01')).resolves.toEqual(42), 100 | ]); 101 | }, 0); 102 | 103 | await new Promise((res) => setTimeout(res, 1000)); 104 | await expect.assertions(2); 105 | }); 106 | 107 | it('Calls destructor on items removal', () => { 108 | const taskMap = new TaskMap([ 109 | [1, new Task()], 110 | [2, new Task()], 111 | [3, new Task()], 112 | ]); 113 | expect(taskMap.size).toBe(3); 114 | 115 | // Extract tasks 116 | const tasks = Array.from(taskMap.values()); 117 | tasks.forEach((task) => { 118 | jest.spyOn(task, 'destructor'); 119 | }); 120 | 121 | taskMap.clear(); 122 | expect(taskMap.size).toBe(0); 123 | 124 | for (const task of tasks) { 125 | expect(task.destructor).toBeCalledTimes(1); 126 | expect(task).rejects.toThrow(TaskDestroyedException); 127 | } 128 | }); 129 | }); 130 | -------------------------------------------------------------------------------- /test/TaskQueue.test.ts: -------------------------------------------------------------------------------- 1 | import { TaskQueue } from '../src'; 2 | 3 | describe('TaskQueue', () => { 4 | const sleepFactory = (ms: number, res?: T) => { 5 | return () => new Promise((resolve) => setTimeout(() => resolve(res), ms)); 6 | }; 7 | 8 | beforeEach(() => { 9 | jest.useRealTimers(); 10 | }); 11 | 12 | it('Can process single item', async () => { 13 | const queue = new TaskQueue(1); 14 | expect(queue.getStats().processingCount).toBe(0); 15 | expect(queue.getStats().waitingCount).toBe(0); 16 | 17 | const result = queue.execute(sleepFactory(100, 42)); 18 | expect(queue.getStats().processingCount).toBe(1); 19 | expect(queue.getStats().waitingCount).toBe(0); 20 | await expect(result).resolves.toBe(42); 21 | expect(queue.getStats().processingCount).toBe(0); 22 | expect(queue.getStats().waitingCount).toBe(0); 23 | }); 24 | 25 | it('Can process multiple items', async () => { 26 | const queue = new TaskQueue(3); 27 | const results = Promise.all([ 28 | queue.execute(sleepFactory(100, 1)), 29 | queue.execute(sleepFactory(100, 2)), 30 | queue.execute(sleepFactory(100, 3)), 31 | queue.execute(sleepFactory(100, 4)), 32 | queue.execute(sleepFactory(100, 5)), 33 | ]); 34 | const preStats = queue.getStats(); 35 | expect(preStats.processingCount).toBe(3); 36 | expect(preStats.waitingCount).toBe(2); 37 | 38 | await expect(results).resolves.toStrictEqual([1, 2, 3, 4, 5]); 39 | 40 | const postStats = queue.getStats(); 41 | expect(postStats.processingCount).toBe(0); 42 | expect(postStats.waitingCount).toBe(0); 43 | }); 44 | 45 | it('Can process multiple items', async () => { 46 | const queue = new TaskQueue(3); 47 | const results = Promise.all([ 48 | queue.execute(sleepFactory(50, 1)), 49 | queue.execute(sleepFactory(50, 2)), 50 | queue.execute(sleepFactory(50, 3)), 51 | queue.execute(sleepFactory(50, 4)), 52 | queue.execute(sleepFactory(50, 5)), 53 | ]); 54 | const preStats = queue.getStats(); 55 | expect(preStats.processingCount).toBe(3); 56 | expect(preStats.waitingCount).toBe(2); 57 | 58 | await expect(results).resolves.toStrictEqual([1, 2, 3, 4, 5]); 59 | 60 | const postStats = queue.getStats(); 61 | expect(postStats.processingCount).toBe(0); 62 | expect(postStats.waitingCount).toBe(0); 63 | }); 64 | 65 | it('Can clear/destroy the queue', async () => { 66 | const queue = new TaskQueue(3); 67 | const results = Promise.allSettled([ 68 | queue.execute(sleepFactory(50, 1)), 69 | queue.execute(sleepFactory(50, 2)), 70 | queue.execute(sleepFactory(50, 3)), 71 | queue.execute(sleepFactory(50, 4)), 72 | queue.execute(sleepFactory(50, 5)), 73 | ]).then((results) => results.map((result) => result.status)); 74 | 75 | await sleepFactory(0)(); 76 | await queue.clear(); 77 | 78 | await expect(results).resolves.toMatchInlineSnapshot(` 79 | Array [ 80 | "fulfilled", 81 | "fulfilled", 82 | "fulfilled", 83 | "rejected", 84 | "rejected", 85 | ] 86 | `); 87 | }); 88 | 89 | 90 | it('Will resolve in correct order', async () => { 91 | const queue = new TaskQueue(1); 92 | const result = Promise.race([ 93 | queue.execute(sleepFactory(500, 1)), 94 | queue.execute(sleepFactory(50, 2)), 95 | ]) 96 | 97 | await expect(result).resolves.toBe(1) 98 | }); 99 | }); 100 | -------------------------------------------------------------------------------- /tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "exclude": ["test"] 4 | } 5 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2020", 4 | "module": "commonjs", 5 | "lib": [ 6 | "es2020", 7 | "dom", 8 | "dom.iterable" 9 | ], 10 | "declaration": true, 11 | "declarationMap": true, 12 | "sourceMap": true, 13 | "outDir": "lib", 14 | "strict": true, 15 | "allowSyntheticDefaultImports": true, 16 | "esModuleInterop": true, 17 | "skipLibCheck": true, 18 | "forceConsistentCasingInFileNames": true 19 | }, 20 | "include": ["src"] 21 | } 22 | -------------------------------------------------------------------------------- /tsconfig.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "strictNullChecks": false 5 | }, 6 | "include": [ 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsup'; 2 | 3 | export default defineConfig({ 4 | entry: ['src/index.ts'], 5 | outDir: 'lib', 6 | sourcemap: true, 7 | dts: true, 8 | format: ['esm', 'cjs'], 9 | treeshake: true, 10 | shims: true, 11 | legacyOutput: false, 12 | bundle: true, 13 | splitting: true, 14 | tsconfig: 'tsconfig.build.json' 15 | }); 16 | --------------------------------------------------------------------------------