From 9d2121e436aae5cff4aa0dab7b56588b3428c80a Mon Sep 17 00:00:00 2001 From: eric_wang Date: Wed, 2 Mar 2022 21:59:19 +0800 Subject: [PATCH] feat: add .isWeakRef --- package.json | 4 ++-- readme.md | 1 + source/index.ts | 4 ++++ test/test.ts | 14 +++++++++++++- tsconfig.json | 4 ++-- 5 files changed, 22 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 8052a87..0fffec9 100644 --- a/package.json +++ b/package.json @@ -56,11 +56,11 @@ "ava": "^3.3.0", "del-cli": "^2.0.0", "eslint-config-xo-typescript": "^0.26.0", - "jsdom": "^16.0.1", + "jsdom": "^19.0.0", "rxjs": "^6.4.0", "tempy": "^0.4.0", "ts-node": "^8.3.0", - "typescript": "~3.8.2", + "typescript": "^4.6.2", "xo": "^0.26.1", "zen-observable": "^0.8.8" }, diff --git a/readme.md b/readme.md index 05a291a..b816b8a 100644 --- a/readme.md +++ b/readme.md @@ -198,6 +198,7 @@ is.boundFunction(function () {}); ##### .set(value) ##### .weakMap(value) ##### .weakSet(value) +##### .weakRef(value) #### Typed arrays diff --git a/source/index.ts b/source/index.ts index 5ce333d..cdf757a 100644 --- a/source/index.ts +++ b/source/index.ts @@ -43,6 +43,7 @@ const objectTypeNames = [ 'Set', 'WeakMap', 'WeakSet', + 'WeakRef', 'ArrayBuffer', 'SharedArrayBuffer', 'DataView', @@ -216,6 +217,7 @@ is.map = (value: unknown): value is Map(value: unknown): value is Set => isObjectOfType>('Set')(value); is.weakMap = (value: unknown): value is WeakMap => isObjectOfType>('WeakMap')(value); is.weakSet = (value: unknown): value is WeakSet => isObjectOfType>('WeakSet')(value); +is.weakRef = (value: unknown): value is WeakRef => isObjectOfType>('WeakRef')(value); is.int8Array = isObjectOfType('Int8Array'); is.uint8Array = isObjectOfType('Uint8Array'); @@ -494,6 +496,7 @@ interface Assert { set: (value: unknown) => asserts value is Set; weakMap: (value: unknown) => asserts value is WeakMap; weakSet: (value: unknown) => asserts value is WeakSet; + weakRef: (value: unknown) => asserts value is WeakRef; int8Array: (value: unknown) => asserts value is Int8Array; uint8Array: (value: unknown) => asserts value is Uint8Array; uint8ClampedArray: (value: unknown) => asserts value is Uint8ClampedArray; @@ -597,6 +600,7 @@ export const assert: Assert = { set: (value: unknown): asserts value is Set => assertType(is.set(value), 'Set', value), weakMap: (value: unknown): asserts value is WeakMap => assertType(is.weakMap(value), 'WeakMap', value), weakSet: (value: unknown): asserts value is WeakSet => assertType(is.weakSet(value), 'WeakSet', value), + weakRef: (value: unknown): asserts value is WeakRef => assertType(is.weakRef(value), 'WeakRef', value), int8Array: (value: unknown): asserts value is Int8Array => assertType(is.int8Array(value), 'Int8Array', value), uint8Array: (value: unknown): asserts value is Uint8Array => assertType(is.uint8Array(value), 'Uint8Array', value), uint8ClampedArray: (value: unknown): asserts value is Uint8ClampedArray => assertType(is.uint8ClampedArray(value), 'Uint8ClampedArray', value), diff --git a/test/test.ts b/test/test.ts index 71a4a9d..113be26 100644 --- a/test/test.ts +++ b/test/test.ts @@ -335,6 +335,14 @@ const types = new Map([ ], typename: 'WeakSet' }], + ['weakRef', { + is: is.weakRef, + assert: assert.weakRef, + fixtures: [ + new window.WeakRef({}) + ], + typename: 'WeakRef' + }], ['weakMap', { is: is.weakMap, assert: assert.weakMap, @@ -792,6 +800,10 @@ test('is.weakSet', t => { testType(t, 'weakSet'); }); +test('is.weakRef', t => { + testType(t, 'weakRef'); +}); + test('is.int8Array', t => { testType(t, 'int8Array'); }); @@ -1203,7 +1215,7 @@ test('is.arrayLike', t => { t.false(is.arrayLike(new Map())); (function () { - t.notThrows(() => { + t.notThrows(function () { assert.arrayLike(arguments); // eslint-disable-line prefer-rest-params }); })(); diff --git a/tsconfig.json b/tsconfig.json index d1f6382..63c5d06 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,9 +2,9 @@ "extends": "@sindresorhus/tsconfig", "compilerOptions": { "outDir": "dist", - "target": "es2018", + "target": "ESNext", "lib": [ - "es2018", + "ESNext", "dom" ] },