diff --git a/docs/api/js-utils.defer.md b/docs/api/js-utils.defer.md
index ba49c63..ab22c28 100644
--- a/docs/api/js-utils.defer.md
+++ b/docs/api/js-utils.defer.md
@@ -9,7 +9,7 @@ Resolve after a set amount of time.
Signature:
```typescript
-export declare function defer(ms: number, val?: T): Promise;
+export declare function defer(ms: number): Promise;
```
## Parameters
@@ -17,9 +17,8 @@ export declare function defer(ms: number, val?: T): Promise;
| Parameter | Type | Description |
| --- | --- | --- |
| ms | number | |
-| val | T | |
Returns:
-Promise<T>
+Promise<void>
diff --git a/docs/api/js-utils.md b/docs/api/js-utils.md
index f15610f..6173c05 100644
--- a/docs/api/js-utils.md
+++ b/docs/api/js-utils.md
@@ -31,7 +31,7 @@
| [constructorName(val)](./js-utils.constructorname.md) | Get the constructor name from an instance. |
| [countOf(val)](./js-utils.countof.md) | Calculate the "length" of an array or value.Arrays return their length, single values return 1, and nil values return 0. This counts the number of elements that setOrPush would add. |
| [defaultWhen(condition, items)](./js-utils.defaultwhen.md) | Return the first element when condition
is true and the second element when condition
is false. |
-| [defer(ms, val)](./js-utils.defer.md) | Resolve after a set amount of time. |
+| [defer(ms)](./js-utils.defer.md) | Resolve after a set amount of time. |
| [doesExist(val)](./js-utils.doesexist.md) | Check if a variable is not nil. |
| [encode(chunks, encoding)](./js-utils.encode.md) | Concatenate then encode a list of buffers. |
| [ensureArray(val)](./js-utils.ensurearray.md) | |
diff --git a/package.json b/package.json
index dc9d4c5..c213cb5 100644
--- a/package.json
+++ b/package.json
@@ -32,9 +32,9 @@
"@types/node": "14.14.6",
"@types/sinon-chai": "3.2.5",
"@types/source-map-support": "0.5.3",
- "@typescript-eslint/eslint-plugin": "4.6.0",
- "@typescript-eslint/eslint-plugin-tslint": "4.6.0",
- "@typescript-eslint/parser": "4.6.0",
+ "@typescript-eslint/eslint-plugin": "4.11.1",
+ "@typescript-eslint/eslint-plugin-tslint": "4.11.1",
+ "@typescript-eslint/parser": "4.11.1",
"chai": "4.2.0",
"chai-as-promised": "7.1.1",
"eslint": "7.12.1",
@@ -70,10 +70,10 @@
"tslint": "6.1.3",
"tslint-clean-code": "0.2.10",
"tslint-consistent-codestyle": "1.16.0",
- "tslint-etc": "1.13.7",
+ "tslint-etc": "1.13.9",
"tslint-microsoft-contrib": "6.2.0",
"tslint-sonarts": "1.9.0",
- "typescript": "4.0.5"
+ "typescript": "4.1.3"
},
"nyc": {
"extends": "@istanbuljs/nyc-config-typescript"
diff --git a/src/Async.ts b/src/Async.ts
index ead005f..304bd15 100644
--- a/src/Async.ts
+++ b/src/Async.ts
@@ -5,7 +5,15 @@ import { PredicateC0 } from './Predicate';
* Resolve after a set amount of time.
* @public
*/
-export function defer(ms: number, val?: T): Promise {
+export function defer(ms: number): Promise {
+ return new Promise((res, rej) => {
+ setTimeout(() => {
+ res();
+ }, ms);
+ });
+}
+
+export function deferValue(ms: number, val: T): Promise {
return new Promise((res, rej) => {
setTimeout(() => {
res(val);
diff --git a/src/Rollup.ts b/src/Rollup.ts
new file mode 100644
index 0000000..65eca73
--- /dev/null
+++ b/src/Rollup.ts
@@ -0,0 +1,34 @@
+import { sep } from 'path';
+
+export interface ChunkMatch {
+ includes: Array;
+ match: Array;
+}
+
+export type ChunkMap = Record;
+
+export function fixPath(name: string): string {
+ return name.replace('/', sep);
+}
+
+export function chunkMap(map: ChunkMap, name: string): string {
+ for (const [chunk, def] of Object.entries(map)) {
+ for (const include of def.includes) {
+ if (name.includes(include)) {
+ return chunk;
+ }
+ }
+
+ for (const match of def.match) {
+ if (name.match(match)) {
+ return chunk;
+ }
+ }
+ }
+
+ if (name.length === 30 && name.match(/^[a-f0-9]+$/)) {
+ return 'vendor';
+ }
+
+ return 'unknown';
+}
diff --git a/test/utils/TestAsync.ts b/test/utils/TestAsync.ts
index 2abeffc..6515181 100644
--- a/test/utils/TestAsync.ts
+++ b/test/utils/TestAsync.ts
@@ -1,14 +1,21 @@
import { expect } from 'chai';
-import { defer, timeout } from '../../src/Async';
+import { defer, deferValue, timeout } from '../../src/Async';
import { TimeoutError } from '../../src/error/TimeoutError';
+const TEST_DEFER = 10;
+const TEST_TOO_LONG = 25;
+
describe('async utils', async () => {
describe('defer', async () => {
- it('should resolve', async () => expect(defer(10, true)).to.eventually.equal(true));
+ it('should resolve', async () => expect(defer(TEST_DEFER)).to.eventually.equal(undefined));
+ });
+
+ describe('defer value', async () => {
+ it('should resolve to the given value', async () => expect(deferValue(TEST_DEFER, true)).to.eventually.equal(true));
});
describe('timeout', async () => {
- it('should reject slow promises', async () => expect(timeout(10, defer(20))).to.eventually.be.rejectedWith(TimeoutError));
+ it('should reject slow promises', async () => expect(timeout(TEST_DEFER, defer(TEST_TOO_LONG))).to.eventually.be.rejectedWith(TimeoutError));
});
});
diff --git a/yarn.lock b/yarn.lock
index 1d76a64..ec3476d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -466,69 +466,69 @@
dependencies:
source-map "^0.6.0"
-"@typescript-eslint/eslint-plugin-tslint@4.6.0":
- version "4.6.0"
- resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-4.6.0.tgz#aad2ed5a1b242f738711412e4ad4dcb0be3e21a6"
- integrity sha512-3ba/AAcufH6Gd2UB4Qzsx0PoxzALiad5sulv82kshNJju1bWcvFa3EKdleGwBjEkaK8pvo1bE3n4wZFP2p6Y3g==
+"@typescript-eslint/eslint-plugin-tslint@4.11.1":
+ version "4.11.1"
+ resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-4.11.1.tgz#1cc9d7d8a3bc3ba4ffb75b90377ebd4c466f5f79"
+ integrity sha512-jkfv3a1w/wG09G7BZv/TH0S4XXDxa2uBt7TDz9I+bmVGis+jKy7zbA3CDi8d8AGA7IGLAdBZObGwf80s3AQWLQ==
dependencies:
- "@typescript-eslint/experimental-utils" "4.6.0"
+ "@typescript-eslint/experimental-utils" "4.11.1"
lodash "^4.17.15"
-"@typescript-eslint/eslint-plugin@4.6.0":
- version "4.6.0"
- resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.6.0.tgz#210cd538bb703f883aff81d3996961f5dba31fdb"
- integrity sha512-1+419X+Ynijytr1iWI+/IcX/kJryc78YNpdaXR1aRO1sU3bC0vZrIAF1tIX7rudVI84W7o7M4zo5p1aVt70fAg==
+"@typescript-eslint/eslint-plugin@4.11.1":
+ version "4.11.1"
+ resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.11.1.tgz#7579c6d17ad862154c10bc14b40e5427b729e209"
+ integrity sha512-fABclAX2QIEDmTMk6Yd7Muv1CzFLwWM4505nETzRHpP3br6jfahD9UUJkhnJ/g2m7lwfz8IlswcwGGPGiq9exw==
dependencies:
- "@typescript-eslint/experimental-utils" "4.6.0"
- "@typescript-eslint/scope-manager" "4.6.0"
+ "@typescript-eslint/experimental-utils" "4.11.1"
+ "@typescript-eslint/scope-manager" "4.11.1"
debug "^4.1.1"
functional-red-black-tree "^1.0.1"
regexpp "^3.0.0"
semver "^7.3.2"
tsutils "^3.17.1"
-"@typescript-eslint/experimental-utils@4.6.0":
- version "4.6.0"
- resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/experimental-utils/-/experimental-utils-4.6.0.tgz#f750aef4dd8e5970b5c36084f0a5ca2f0db309a4"
- integrity sha512-pnh6Beh2/4xjJVNL+keP49DFHk3orDHHFylSp3WEjtgW3y1U+6l+jNnJrGlbs6qhAz5z96aFmmbUyKhunXKvKw==
+"@typescript-eslint/experimental-utils@4.11.1":
+ version "4.11.1"
+ resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/experimental-utils/-/experimental-utils-4.11.1.tgz#2dad3535b878c25c7424e40bfa79d899f3f485bc"
+ integrity sha512-mAlWowT4A6h0TC9F+J5pdbEhjNiEMO+kqPKQ4sc3fVieKL71dEqfkKgtcFVSX3cjSBwYwhImaQ/mXQF0oaI38g==
dependencies:
"@types/json-schema" "^7.0.3"
- "@typescript-eslint/scope-manager" "4.6.0"
- "@typescript-eslint/types" "4.6.0"
- "@typescript-eslint/typescript-estree" "4.6.0"
+ "@typescript-eslint/scope-manager" "4.11.1"
+ "@typescript-eslint/types" "4.11.1"
+ "@typescript-eslint/typescript-estree" "4.11.1"
eslint-scope "^5.0.0"
eslint-utils "^2.0.0"
-"@typescript-eslint/parser@4.6.0":
- version "4.6.0"
- resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/parser/-/parser-4.6.0.tgz#7e9ff7df2f21d5c8f65f17add3b99eeeec33199d"
- integrity sha512-Dj6NJxBhbdbPSZ5DYsQqpR32MwujF772F2H3VojWU6iT4AqL4BKuoNWOPFCoSZvCcADDvQjDpa6OLDAaiZPz2Q==
+"@typescript-eslint/parser@4.11.1":
+ version "4.11.1"
+ resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/parser/-/parser-4.11.1.tgz#981e18de2e019d6ca312596615f92e8f6f6598ed"
+ integrity sha512-BJ3jwPQu1jeynJ5BrjLuGfK/UJu6uwHxJ/di7sanqmUmxzmyIcd3vz58PMR7wpi8k3iWq2Q11KMYgZbUpRoIPw==
dependencies:
- "@typescript-eslint/scope-manager" "4.6.0"
- "@typescript-eslint/types" "4.6.0"
- "@typescript-eslint/typescript-estree" "4.6.0"
+ "@typescript-eslint/scope-manager" "4.11.1"
+ "@typescript-eslint/types" "4.11.1"
+ "@typescript-eslint/typescript-estree" "4.11.1"
debug "^4.1.1"
-"@typescript-eslint/scope-manager@4.6.0":
- version "4.6.0"
- resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/scope-manager/-/scope-manager-4.6.0.tgz#b7d8b57fe354047a72dfb31881d9643092838662"
- integrity sha512-uZx5KvStXP/lwrMrfQQwDNvh2ppiXzz5TmyTVHb+5TfZ3sUP7U1onlz3pjoWrK9konRyFe1czyxObWTly27Ang==
+"@typescript-eslint/scope-manager@4.11.1":
+ version "4.11.1"
+ resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/scope-manager/-/scope-manager-4.11.1.tgz#72dc2b60b0029ab0888479b12bf83034920b4b69"
+ integrity sha512-Al2P394dx+kXCl61fhrrZ1FTI7qsRDIUiVSuN6rTwss6lUn8uVO2+nnF4AvO0ug8vMsy3ShkbxLu/uWZdTtJMQ==
dependencies:
- "@typescript-eslint/types" "4.6.0"
- "@typescript-eslint/visitor-keys" "4.6.0"
+ "@typescript-eslint/types" "4.11.1"
+ "@typescript-eslint/visitor-keys" "4.11.1"
-"@typescript-eslint/types@4.6.0":
- version "4.6.0"
- resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/types/-/types-4.6.0.tgz#157ca925637fd53c193c6bf226a6c02b752dde2f"
- integrity sha512-5FAgjqH68SfFG4UTtIFv+rqYJg0nLjfkjD0iv+5O27a0xEeNZ5rZNDvFGZDizlCD1Ifj7MAbSW2DPMrf0E9zjA==
+"@typescript-eslint/types@4.11.1":
+ version "4.11.1"
+ resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/types/-/types-4.11.1.tgz#3ba30c965963ef9f8ced5a29938dd0c465bd3e05"
+ integrity sha512-5kvd38wZpqGY4yP/6W3qhYX6Hz0NwUbijVsX2rxczpY6OXaMxh0+5E5uLJKVFwaBM7PJe1wnMym85NfKYIh6CA==
-"@typescript-eslint/typescript-estree@4.6.0":
- version "4.6.0"
- resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/typescript-estree/-/typescript-estree-4.6.0.tgz#85bd98dcc8280511cfc5b2ce7b03a9ffa1732b08"
- integrity sha512-s4Z9qubMrAo/tw0CbN0IN4AtfwuehGXVZM0CHNMdfYMGBDhPdwTEpBrecwhP7dRJu6d9tT9ECYNaWDHvlFSngA==
+"@typescript-eslint/typescript-estree@4.11.1":
+ version "4.11.1"
+ resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/typescript-estree/-/typescript-estree-4.11.1.tgz#a4416b4a65872a48773b9e47afabdf7519eb10bc"
+ integrity sha512-tC7MKZIMRTYxQhrVAFoJq/DlRwv1bnqA4/S2r3+HuHibqvbrPcyf858lNzU7bFmy4mLeIHFYr34ar/1KumwyRw==
dependencies:
- "@typescript-eslint/types" "4.6.0"
- "@typescript-eslint/visitor-keys" "4.6.0"
+ "@typescript-eslint/types" "4.11.1"
+ "@typescript-eslint/visitor-keys" "4.11.1"
debug "^4.1.1"
globby "^11.0.1"
is-glob "^4.0.1"
@@ -536,12 +536,12 @@
semver "^7.3.2"
tsutils "^3.17.1"
-"@typescript-eslint/visitor-keys@4.6.0":
- version "4.6.0"
- resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/visitor-keys/-/visitor-keys-4.6.0.tgz#fb05d6393891b0a089b243fc8f9fb8039383d5da"
- integrity sha512-38Aa9Ztl0XyFPVzmutHXqDMCu15Xx8yKvUo38Gu3GhsuckCh3StPI5t2WIO9LHEsOH7MLmlGfKUisU8eW1Sjhg==
+"@typescript-eslint/visitor-keys@4.11.1":
+ version "4.11.1"
+ resolved "https://artifacts.apextoaster.com/repository/group-npm/@typescript-eslint/visitor-keys/-/visitor-keys-4.11.1.tgz#4c050a4c1f7239786e2dd4e69691436143024e05"
+ integrity sha512-IrlBhD9bm4bdYcS8xpWarazkKXlE7iYb1HzRuyBP114mIaj5DJPo11Us1HgH60dTt41TCZXMaTCAW+OILIYPOg==
dependencies:
- "@typescript-eslint/types" "4.6.0"
+ "@typescript-eslint/types" "4.11.1"
eslint-visitor-keys "^2.0.0"
"@ungap/promise-all-settled@1.1.2":
@@ -4415,10 +4415,10 @@ tslint-consistent-codestyle@1.16.0:
tslib "^1.7.1"
tsutils "^2.29.0"
-tslint-etc@1.13.7:
- version "1.13.7"
- resolved "https://artifacts.apextoaster.com/repository/group-npm/tslint-etc/-/tslint-etc-1.13.7.tgz#3fc6dacc21b3ffa2e727398b7a8d7099dbb95942"
- integrity sha512-v66dIwtWwc1epHH/KjrUnl97oMRwuoSOYdh0YNHGKwZvtxJzM1Afb23ugfrj028+DZoR1vCxb4/YV7eXgTn2nw==
+tslint-etc@1.13.9:
+ version "1.13.9"
+ resolved "https://artifacts.apextoaster.com/repository/group-npm/tslint-etc/-/tslint-etc-1.13.9.tgz#46464af0f03efb6d4b2c71b9b4adce41a2b2ed71"
+ integrity sha512-plelxI+RH0w1irVPxOX7REqnwaAM1FJcgoe12UU1Ft3zIvGx9VX4BNf9jRLAt2wd00TJPpCb0ACumaDoCXp7hA==
dependencies:
"@phenomnomnominal/tsquery" "^4.0.0"
tslib "^2.0.0"
@@ -4561,16 +4561,21 @@ typedarray@^0.0.6:
resolved "https://artifacts.apextoaster.com/repository/group-npm/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-typescript@4.0.5, typescript@~4.0.5:
- version "4.0.5"
- resolved "https://artifacts.apextoaster.com/repository/group-npm/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389"
- integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==
+typescript@4.1.3:
+ version "4.1.3"
+ resolved "https://artifacts.apextoaster.com/repository/group-npm/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7"
+ integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==
typescript@^3.0.0:
version "3.6.3"
resolved "https://artifacts.apextoaster.com/repository/group-npm/typescript/-/typescript-3.6.3.tgz#fea942fabb20f7e1ca7164ff626f1a9f3f70b4da"
integrity sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw==
+typescript@~4.0.5:
+ version "4.0.5"
+ resolved "https://artifacts.apextoaster.com/repository/group-npm/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389"
+ integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==
+
uglify-js@^3.1.4:
version "3.6.0"
resolved "https://artifacts.apextoaster.com/repository/group-npm/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5"