├── .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 | [](https://github.com/Tomas2D/promise-based-task/actions/workflows/node.js.yml)
4 | [](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 |
--------------------------------------------------------------------------------