feat: add weakRef
This commit is contained in:
parent
587afcfd42
commit
58abf2a811
8 changed files with 89 additions and 12 deletions
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
55
.idea/workspace.xml
generated
Normal file
55
.idea/workspace.xml
generated
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ChangeListManager">
|
||||||
|
<list default="true" id="df737647-19a6-4a5f-88a0-8ce9d29a36c8" name="Changes" comment="">
|
||||||
|
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/source/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/source/index.ts" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/test/test.ts" beforeDir="false" afterPath="$PROJECT_DIR$/test/test.ts" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/tsconfig.json" beforeDir="false" afterPath="$PROJECT_DIR$/tsconfig.json" afterDir="false" />
|
||||||
|
</list>
|
||||||
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
|
</component>
|
||||||
|
<component name="Git.Settings">
|
||||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
|
</component>
|
||||||
|
<component name="MacroExpansionManager">
|
||||||
|
<option name="directoryName" value="hl7nkx35" />
|
||||||
|
</component>
|
||||||
|
<component name="MarkdownSettingsMigration">
|
||||||
|
<option name="stateVersion" value="1" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectId" id="25cK4TvoIxGKxbzN8247wytmhpC" />
|
||||||
|
<component name="ProjectViewState">
|
||||||
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
|
<option name="showLibraryContents" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="PropertiesComponent">
|
||||||
|
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
||||||
|
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
||||||
|
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||||
|
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||||
|
<property name="nodejs_package_manager_path" value="npm" />
|
||||||
|
<property name="settings.editor.selected.configurable" value="reference.settingsdialog.IDE.editor.colors.JavaScript" />
|
||||||
|
<property name="ts.external.directory.path" value="$APPLICATION_HOME_DIR$/plugins/JavaScriptLanguage/jsLanguageServicesImpl/external" />
|
||||||
|
<property name="vue.rearranger.settings.migration" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||||
|
<component name="TaskManager">
|
||||||
|
<task active="true" id="Default" summary="Default task">
|
||||||
|
<changelist id="df737647-19a6-4a5f-88a0-8ce9d29a36c8" name="Changes" comment="" />
|
||||||
|
<created>1645820743983</created>
|
||||||
|
<option name="number" value="Default" />
|
||||||
|
<option name="presentableId" value="Default" />
|
||||||
|
<updated>1645820743983</updated>
|
||||||
|
<workItem from="1645820745885" duration="3571000" />
|
||||||
|
<workItem from="1645962952689" duration="7278000" />
|
||||||
|
</task>
|
||||||
|
<servers />
|
||||||
|
</component>
|
||||||
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
|
<option name="version" value="3" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
|
|
@ -56,11 +56,11 @@
|
||||||
"ava": "^3.3.0",
|
"ava": "^3.3.0",
|
||||||
"del-cli": "^2.0.0",
|
"del-cli": "^2.0.0",
|
||||||
"eslint-config-xo-typescript": "^0.26.0",
|
"eslint-config-xo-typescript": "^0.26.0",
|
||||||
"jsdom": "^16.0.1",
|
"jsdom": "^19.0.0",
|
||||||
"rxjs": "^6.4.0",
|
"rxjs": "^6.4.0",
|
||||||
"tempy": "^0.4.0",
|
"tempy": "^0.4.0",
|
||||||
"ts-node": "^8.3.0",
|
"ts-node": "^8.3.0",
|
||||||
"typescript": "~3.8.2",
|
"typescript": "^4.6.2",
|
||||||
"xo": "^0.26.1",
|
"xo": "^0.26.1",
|
||||||
"zen-observable": "^0.8.8"
|
"zen-observable": "^0.8.8"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -198,6 +198,7 @@ is.boundFunction(function () {});
|
||||||
##### .set(value)
|
##### .set(value)
|
||||||
##### .weakMap(value)
|
##### .weakMap(value)
|
||||||
##### .weakSet(value)
|
##### .weakSet(value)
|
||||||
|
##### .weakRef(value)
|
||||||
|
|
||||||
#### Typed arrays
|
#### Typed arrays
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,7 @@ const objectTypeNames = [
|
||||||
'Set',
|
'Set',
|
||||||
'WeakMap',
|
'WeakMap',
|
||||||
'WeakSet',
|
'WeakSet',
|
||||||
|
'WeakRef',
|
||||||
'ArrayBuffer',
|
'ArrayBuffer',
|
||||||
'SharedArrayBuffer',
|
'SharedArrayBuffer',
|
||||||
'DataView',
|
'DataView',
|
||||||
|
|
@ -216,6 +217,7 @@ is.map = <Key = unknown, Value = unknown>(value: unknown): value is Map<Key, Val
|
||||||
is.set = <T = unknown>(value: unknown): value is Set<T> => isObjectOfType<Set<T>>('Set')(value);
|
is.set = <T = unknown>(value: unknown): value is Set<T> => isObjectOfType<Set<T>>('Set')(value);
|
||||||
is.weakMap = <Key extends object = object, Value = unknown>(value: unknown): value is WeakMap<Key, Value> => isObjectOfType<WeakMap<Key, Value>>('WeakMap')(value);
|
is.weakMap = <Key extends object = object, Value = unknown>(value: unknown): value is WeakMap<Key, Value> => isObjectOfType<WeakMap<Key, Value>>('WeakMap')(value);
|
||||||
is.weakSet = (value: unknown): value is WeakSet<object> => isObjectOfType<WeakSet<object>>('WeakSet')(value);
|
is.weakSet = (value: unknown): value is WeakSet<object> => isObjectOfType<WeakSet<object>>('WeakSet')(value);
|
||||||
|
is.weakRef = (value: unknown): value is WeakRef<object> => isObjectOfType<WeakRef<object>>('WeakRef')(value);
|
||||||
|
|
||||||
is.int8Array = isObjectOfType<Int8Array>('Int8Array');
|
is.int8Array = isObjectOfType<Int8Array>('Int8Array');
|
||||||
is.uint8Array = isObjectOfType<Uint8Array>('Uint8Array');
|
is.uint8Array = isObjectOfType<Uint8Array>('Uint8Array');
|
||||||
|
|
@ -494,6 +496,7 @@ interface Assert {
|
||||||
set: <T = unknown>(value: unknown) => asserts value is Set<T>;
|
set: <T = unknown>(value: unknown) => asserts value is Set<T>;
|
||||||
weakMap: <Key extends object = object, Value = unknown>(value: unknown) => asserts value is WeakMap<Key, Value>;
|
weakMap: <Key extends object = object, Value = unknown>(value: unknown) => asserts value is WeakMap<Key, Value>;
|
||||||
weakSet: <T extends object = object>(value: unknown) => asserts value is WeakSet<T>;
|
weakSet: <T extends object = object>(value: unknown) => asserts value is WeakSet<T>;
|
||||||
|
weakRef: <T extends object = object>(value: unknown) => asserts value is WeakRef<T>;
|
||||||
int8Array: (value: unknown) => asserts value is Int8Array;
|
int8Array: (value: unknown) => asserts value is Int8Array;
|
||||||
uint8Array: (value: unknown) => asserts value is Uint8Array;
|
uint8Array: (value: unknown) => asserts value is Uint8Array;
|
||||||
uint8ClampedArray: (value: unknown) => asserts value is Uint8ClampedArray;
|
uint8ClampedArray: (value: unknown) => asserts value is Uint8ClampedArray;
|
||||||
|
|
@ -597,6 +600,7 @@ export const assert: Assert = {
|
||||||
set: <T = unknown>(value: unknown): asserts value is Set<T> => assertType(is.set(value), 'Set', value),
|
set: <T = unknown>(value: unknown): asserts value is Set<T> => assertType(is.set(value), 'Set', value),
|
||||||
weakMap: <Key extends object = object, Value = unknown>(value: unknown): asserts value is WeakMap<Key, Value> => assertType(is.weakMap(value), 'WeakMap', value),
|
weakMap: <Key extends object = object, Value = unknown>(value: unknown): asserts value is WeakMap<Key, Value> => assertType(is.weakMap(value), 'WeakMap', value),
|
||||||
weakSet: <T extends object = object>(value: unknown): asserts value is WeakSet<T> => assertType(is.weakSet(value), 'WeakSet', value),
|
weakSet: <T extends object = object>(value: unknown): asserts value is WeakSet<T> => assertType(is.weakSet(value), 'WeakSet', value),
|
||||||
|
weakRef: <T extends object = object>(value: unknown): asserts value is WeakRef<T> => assertType(is.weakRef(value), 'WeakRef', value),
|
||||||
int8Array: (value: unknown): asserts value is Int8Array => assertType(is.int8Array(value), 'Int8Array', 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),
|
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),
|
uint8ClampedArray: (value: unknown): asserts value is Uint8ClampedArray => assertType(is.uint8ClampedArray(value), 'Uint8ClampedArray', value),
|
||||||
|
|
|
||||||
10
test/test.ts
10
test/test.ts
|
|
@ -343,6 +343,14 @@ const types = new Map<string, Test>([
|
||||||
],
|
],
|
||||||
typename: 'WeakMap'
|
typename: 'WeakMap'
|
||||||
}],
|
}],
|
||||||
|
['weakSet', {
|
||||||
|
is: is.weakRef,
|
||||||
|
assert: assert.weakRef,
|
||||||
|
fixtures: [
|
||||||
|
new window.WeakRef({})
|
||||||
|
],
|
||||||
|
typename: 'WeakRef'
|
||||||
|
}],
|
||||||
['int8Array', {
|
['int8Array', {
|
||||||
is: is.int8Array,
|
is: is.int8Array,
|
||||||
assert: assert.int8Array,
|
assert: assert.int8Array,
|
||||||
|
|
@ -1203,7 +1211,7 @@ test('is.arrayLike', t => {
|
||||||
t.false(is.arrayLike(new Map()));
|
t.false(is.arrayLike(new Map()));
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
t.notThrows(() => {
|
t.notThrows(function () {
|
||||||
assert.arrayLike(arguments); // eslint-disable-line prefer-rest-params
|
assert.arrayLike(arguments); // eslint-disable-line prefer-rest-params
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@
|
||||||
"outDir": "dist",
|
"outDir": "dist",
|
||||||
"target": "es2018",
|
"target": "es2018",
|
||||||
"lib": [
|
"lib": [
|
||||||
"es2018",
|
"ESNext",
|
||||||
"dom"
|
"dom"
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
"include": [
|
"include": [
|
||||||
"source"
|
"source"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
{
|
{
|
||||||
"extends": "./tsconfig.json",
|
"extends": "./tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"downlevelIteration": true
|
||||||
|
},
|
||||||
"include": [
|
"include": [
|
||||||
"test"
|
"test"
|
||||||
]
|
]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue