is-what 4.0.0 → 4.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/test/ava.ts DELETED
@@ -1,408 +0,0 @@
1
- import test from 'ava'
2
-
3
- import {
4
- isError,
5
- isEmptyArray,
6
- isObject,
7
- isPlainObject,
8
- isAnyObject,
9
- isUndefined,
10
- isNull,
11
- isNullOrUndefined,
12
- isFunction,
13
- isArray,
14
- isString,
15
- isEmptyString,
16
- isFullString,
17
- isBoolean,
18
- isRegExp,
19
- isNumber,
20
- isDate,
21
- isSymbol,
22
- isPrimitive,
23
- isType,
24
- isMap,
25
- isWeakMap,
26
- isSet,
27
- isWeakSet,
28
- isFullArray,
29
- // isBlob,
30
- // isFile,
31
- isPromise,
32
- isNaNValue,
33
- isEmptyObject,
34
- isOneOf,
35
- isFullObject,
36
- } from '../src/index.js'
37
-
38
- // TODO: test isBlob
39
- // test('isBlob', () => {
40
- // expect(isBlob(Blob)).toBe(false)
41
- // expect(isBlob(new Blob())).toBe(true)
42
- // })
43
-
44
- // TODO: test isFile
45
- // test('isFile', () => {
46
- // expect(isFile(File)).toBe(false)
47
- // expect(isFile(new File([''], '', { type: 'text/html' }))).toBe(true)
48
- // })
49
-
50
- test('Basic true tests', (t: any) => {
51
- t.is(isError(new Error('')), true)
52
- t.is(isUndefined(undefined), true)
53
- t.is(isNull(null), true)
54
- t.is(isNullOrUndefined(null), true)
55
- t.is(isNullOrUndefined(undefined), true)
56
- t.is(isObject({}), true)
57
- t.is(isEmptyObject({}), true)
58
- t.is(isFullObject({ 0: '' }), true)
59
- t.is(isFullObject({ '': '' }), true)
60
- t.is(isObject(new Object()), true)
61
- t.is(isArray([]), true)
62
- t.is(isEmptyArray([]), true)
63
- t.is(isFullArray(['']), true)
64
- t.is(isArray(new Array()), true)
65
- t.is(isString(''), true)
66
- t.is(isString('_'), true)
67
- t.is(isEmptyString(''), true)
68
- t.is(isFullString(' '), true)
69
- t.is(isBoolean(true), true)
70
- t.is(isBoolean(false), true)
71
- t.is(isRegExp(/./), true)
72
- t.is(isRegExp(/./gi), true)
73
- t.is(isNumber(0), true)
74
- t.is(isNumber(1), true)
75
- t.is(isDate(new Date()), true)
76
- t.is(isSymbol(Symbol()), true)
77
- t.is(isMap(new Map()), true)
78
- t.is(isWeakMap(new WeakMap()), true)
79
- t.is(isSet(new Set()), true)
80
- t.is(isWeakSet(new WeakSet()), true)
81
- // t.is(isBlob(blob), true)
82
- // t.is(isFile(new File([''], '', { type: 'text/html' })), true)
83
- t.is(isPromise(new Promise((resolve, reject) => {})), true)
84
- })
85
-
86
- test('Basic false tests', (t: any) => {
87
- t.is(isError({}), false)
88
- t.is(isNumber(NaN), false)
89
- t.is(isDate(new Date('_')), false)
90
- t.is(isDate(NaN), false)
91
- t.is(isUndefined(NaN), false)
92
- t.is(isNull(NaN), false)
93
- t.is(isObject(NaN), false)
94
- t.is(isArray(NaN), false)
95
- t.is(isString(NaN), false)
96
- t.is(isEmptyString(' '), false)
97
- t.is(isFullString(''), false)
98
- t.is(isBoolean(NaN), false)
99
- t.is(isRegExp(NaN), false)
100
- t.is(isSymbol(NaN), false)
101
- t.is(isMap(new WeakMap()), false)
102
- t.is(isWeakMap(new Map()), false)
103
- t.is(isSet(new WeakSet()), false)
104
- t.is(isWeakSet(new Set()), false)
105
- t.is(isNullOrUndefined(NaN), false)
106
- })
107
-
108
- test('isFunction', (t: any) => {
109
- t.is(isFunction(NaN), false)
110
- t.is(
111
- isFunction(() => {}),
112
- true
113
- )
114
- t.is(
115
- isFunction(function () {}),
116
- true
117
- )
118
- t.is(
119
- isFunction(async () => {}),
120
- true
121
- )
122
- t.is(
123
- isFunction(async function () {}),
124
- true
125
- )
126
- t.is(
127
- isFunction(function* () {}),
128
- true
129
- )
130
- t.is(
131
- isFunction(async function* () {}),
132
- true
133
- )
134
- const _ = { fn: () => {}, method() {} }
135
- t.is(isFunction(_.fn), true)
136
- t.is(isFunction(_.method), true)
137
- })
138
-
139
- test('isEmptyObject', (t: any) => {
140
- t.is(isEmptyObject({}), true)
141
- t.is(isEmptyObject(new Object()), true)
142
-
143
- t.is(isEmptyObject('{}'), false)
144
- t.is(isEmptyObject('{}'), false)
145
- t.is(isEmptyObject(null), false)
146
- t.is(isEmptyObject(new Date()), false)
147
- t.is(isEmptyObject(new Error('')), false)
148
- t.is(isEmptyObject(new Date()), false)
149
- t.is(isEmptyObject(Symbol()), false)
150
- t.is(isEmptyObject(new Map()), false)
151
- t.is(isEmptyObject(new WeakMap()), false)
152
- t.is(isEmptyObject(new Set()), false)
153
- t.is(isEmptyObject(new WeakSet()), false)
154
- })
155
-
156
- test('isEmptyArray', (t: any) => {
157
- t.is(isEmptyArray([]), true)
158
- t.is(isEmptyArray(new Array()), true)
159
- t.is(isEmptyArray(new Array(0)), true)
160
-
161
- t.is(isEmptyArray(new Array(1)), false)
162
- t.is(isEmptyArray([undefined]), false)
163
- t.is(isEmptyArray(null), false)
164
- t.is(isEmptyArray(new Date()), false)
165
- t.is(isEmptyArray(new Error('')), false)
166
- t.is(isEmptyArray(new Date()), false)
167
- t.is(isEmptyArray(Symbol()), false)
168
- t.is(isEmptyArray(new Map()), false)
169
- t.is(isEmptyArray(new WeakMap()), false)
170
- t.is(isEmptyArray(new Set()), false)
171
- t.is(isEmptyArray(new WeakSet()), false)
172
- })
173
-
174
- test('isFullArray', (t: any) => {
175
- t.is(isFullArray(new Array(1)), true)
176
- t.is(isFullArray([undefined]), true)
177
- t.is(isFullArray([null]), true)
178
- t.is(isFullArray(['']), true)
179
-
180
- t.is(isFullArray([]), false)
181
- t.is(isFullArray(new Array()), false)
182
- t.is(isFullArray(new Array(0)), false)
183
-
184
- t.is(isFullArray(null), false)
185
- t.is(isFullArray(new Date()), false)
186
- t.is(isFullArray(new Error('')), false)
187
- t.is(isFullArray(new Date()), false)
188
- t.is(isFullArray(Symbol()), false)
189
- t.is(isFullArray(new Map()), false)
190
- t.is(isFullArray(new WeakMap()), false)
191
- t.is(isFullArray(new Set()), false)
192
- t.is(isFullArray(new WeakSet()), false)
193
- })
194
-
195
- test('NaN tests', (t: any) => {
196
- t.is(isNaNValue(NaN), true)
197
- t.is(isNaNValue(new Error('')), false)
198
- t.is(isNaNValue(undefined), false)
199
- t.is(isNaNValue(null), false)
200
- t.is(isNaNValue(undefined), false)
201
- t.is(isNaNValue({}), false)
202
- t.is(isNaNValue(new Object()), false)
203
- t.is(
204
- isNaNValue(() => {}),
205
- false
206
- )
207
- t.is(isNaNValue([]), false)
208
- t.is(isNaNValue(new Array()), false)
209
- t.is(isNaNValue(''), false)
210
- t.is(isNaNValue('_'), false)
211
- t.is(isNaNValue(''), false)
212
- t.is(isNaNValue(' '), false)
213
- t.is(isNaNValue(true), false)
214
- t.is(isNaNValue(false), false)
215
- t.is(isNaNValue(/./), false)
216
- t.is(isNaNValue(/./gi), false)
217
- t.is(isNaNValue(0), false)
218
- t.is(isNaNValue(1), false)
219
- t.is(isNaNValue(new Date()), false)
220
- t.is(isNaNValue(Symbol()), false)
221
- t.is(isNaNValue(new Map()), false)
222
- t.is(isNaNValue(new WeakMap()), false)
223
- t.is(isNaNValue(new Set()), false)
224
- t.is(isNaNValue(new WeakSet()), false)
225
- t.is(isNaNValue(new Promise((resolve, reject) => {})), false)
226
- })
227
-
228
- test('Primitive tests', (t: any) => {
229
- // true
230
- t.is(isPrimitive(0), true)
231
- t.is(isPrimitive(''), true)
232
- t.is(isPrimitive('str'), true)
233
- t.is(isPrimitive(Symbol()), true)
234
- t.is(isPrimitive(true), true)
235
- t.is(isPrimitive(false), true)
236
- t.is(isPrimitive(null), true)
237
- t.is(isPrimitive(undefined), true)
238
- // false
239
- t.is(isPrimitive(NaN), false)
240
- t.is(isPrimitive([]), false)
241
- t.is(isPrimitive(new Array()), false)
242
- t.is(isPrimitive({}), false)
243
- t.is(isPrimitive(new Object()), false)
244
- t.is(isPrimitive(new Date()), false)
245
- t.is(
246
- isPrimitive(() => {}),
247
- false
248
- )
249
- })
250
-
251
- test('Date exception', (t: any) => {
252
- t.is(isDate(new Date('_')), false)
253
- })
254
-
255
- test('Generic isType', (t: any) => {
256
- // -----------------------------
257
- // This is correct old fashion syntax for classes, if this is missing
258
- function MyClass() {}
259
- MyClass.prototype.constructor = MyClass
260
- // @ts-ignore
261
- const myClass = new MyClass()
262
- // -----------------------------
263
- class MyOtherClass {
264
- constructor() {}
265
- }
266
- // this is expected behaviour
267
- t.is(isType('', String), true)
268
- t.is(isType('_', String), true)
269
- t.is(isType('Hello World', String), true)
270
- t.is(isType(NaN, Number), true)
271
- t.is(isType(0, Number), true)
272
- t.is(isType(1, Number), true)
273
- t.is(isType({}, Object), true)
274
- t.is(isType(new Object(), Object), true)
275
- t.is(isType([], Array), true)
276
- t.is(isType(new Array(), Array), true)
277
- t.is(
278
- isType(() => {}, Function),
279
- true
280
- )
281
- t.is(isType(true, Boolean), true)
282
- t.is(isType(false, Boolean), true)
283
- t.is(isType(new Date('_'), Date), true)
284
- t.is(isType(new Date(), Date), true)
285
- t.is(isType(/./, RegExp), true)
286
- t.is(isType(/./gi, RegExp), true)
287
- t.is(isType(myClass, MyClass), true)
288
- t.is(isType(new MyOtherClass(), MyOtherClass), true)
289
- t.is(isType(myClass, MyOtherClass), false)
290
- t.is(isType(Symbol(), Symbol), true)
291
- // t.is(isType(null, Null), true)
292
- // t.is(isType(undefined, Undefined), true)
293
- // It SHOULD fail
294
- t.is(isType(5, String), false)
295
- t.is(isType(null, Object), false)
296
- // Not sure if this would be the expected behaviour but everything is an object
297
- // so I would say so
298
- t.is(isType(myClass, Object), true)
299
- })
300
-
301
- test('isObject vs isAnyObject', (t: any) => {
302
- // -----------------------------
303
- // This is correct old fashion syntax for classes, if this is missing
304
- function MyClass() {}
305
- MyClass.prototype.constructor = MyClass
306
- // @ts-ignore
307
- const myClass = new MyClass()
308
- // -----------------------------
309
- class MyClass2 {
310
- constructor() {}
311
- }
312
- const myClass2 = new MyClass2()
313
- const mySpecialObject = {}
314
- Object.setPrototypeOf(mySpecialObject, {
315
- toDate: function () {
316
- return new Date()
317
- },
318
- })
319
- // IS OBJECT
320
- // plain object
321
- t.is(isObject({}), true)
322
- t.is(isObject(new Object()), true)
323
- t.is(isPlainObject({}), true)
324
- t.is(isPlainObject(new Object()), true)
325
- // classes & prototypes
326
- t.is(isObject(myClass), false)
327
- t.is(isObject(myClass2), false)
328
- t.is(isObject(mySpecialObject), false)
329
- t.is(isPlainObject(myClass), false)
330
- t.is(isPlainObject(myClass2), false)
331
- t.is(isPlainObject(mySpecialObject), false)
332
- // arrays and dates
333
- t.is(isObject([]), false)
334
- t.is(isObject(new Array()), false)
335
- t.is(isObject(new Date('_')), false)
336
- t.is(isObject(new Date()), false)
337
- t.is(isPlainObject([]), false)
338
- t.is(isPlainObject(new Array()), false)
339
- t.is(isPlainObject(new Date('_')), false)
340
- t.is(isPlainObject(new Date()), false)
341
- // IS ANY OBJECT
342
- // plain object
343
- t.is(isAnyObject({}), true)
344
- t.is(isAnyObject(new Object()), true)
345
- // classes & prototypes
346
- t.is(isAnyObject(myClass), true)
347
- t.is(isAnyObject(myClass2), true)
348
- t.is(isAnyObject(mySpecialObject), true)
349
- // arrays and dates
350
- t.is(isAnyObject([]), false)
351
- t.is(isAnyObject(new Array()), false)
352
- t.is(isAnyObject(new Date('_')), false)
353
- t.is(isAnyObject(new Date()), false)
354
- })
355
-
356
- test('isOneOf', (t: any) => {
357
- t.is(isOneOf(isString, isNumber)('_'), true)
358
- t.is(isOneOf(isString, isNumber)(1), true)
359
- t.is(isOneOf(isString, isNumber)(undefined), false)
360
-
361
- t.is(isOneOf(isString, isNumber, isBoolean)('_'), true)
362
- t.is(isOneOf(isString, isNumber, isBoolean)(1), true)
363
- t.is(isOneOf(isString, isNumber, isBoolean)(true), true)
364
- t.is(isOneOf(isString, isNumber, isBoolean)(undefined), false)
365
-
366
- t.is(isOneOf(isString, isNumber, isBoolean, isArray)('_'), true)
367
- t.is(isOneOf(isString, isNumber, isBoolean, isArray)(1), true)
368
- t.is(isOneOf(isString, isNumber, isBoolean, isArray)(true), true)
369
- t.is(isOneOf(isString, isNumber, isBoolean, isArray)([]), true)
370
- t.is(isOneOf(isString, isNumber, isBoolean, isArray)(undefined), false)
371
-
372
- t.is(isOneOf(isString, isNumber, isBoolean, isArray, isPlainObject)('_'), true)
373
- t.is(isOneOf(isString, isNumber, isBoolean, isArray, isPlainObject)(1), true)
374
- t.is(isOneOf(isString, isNumber, isBoolean, isArray, isPlainObject)(true), true)
375
- t.is(isOneOf(isString, isNumber, isBoolean, isArray, isPlainObject)([]), true)
376
- t.is(isOneOf(isString, isNumber, isBoolean, isArray, isPlainObject)({}), true)
377
- t.is(isOneOf(isString, isNumber, isBoolean, isArray, isPlainObject)(undefined), false)
378
- })
379
-
380
- test('type related tests', (t: any) => {
381
- t.pass()
382
- // const fn: string | ((k: number) => string) = (p) => 'a'
383
- // if (!isFunction(fn)) {
384
- // fn
385
- // }
386
-
387
- // const a: Record<string, number> = {}
388
-
389
- // a[fn(1)] = fn(2)
390
-
391
- // const myArray: string | string[] = ['a', 'b']
392
- // if (!isArray(myArray)) {
393
- // myArray
394
- // }
395
-
396
- // const a: Record<string, number> = {}
397
-
398
- // a[myArray[1]] = myArray[0]
399
-
400
- // const myArray: string | any[] = [1, 2, 'a', 'b']
401
- // if (!isArray(myArray)) {
402
- // myArray
403
- // }
404
-
405
- // const a: Record<string, number> = {}
406
-
407
- // a[myArray[1]] = myArray[0]
408
- })
package/tsconfig.json DELETED
@@ -1,15 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "baseUrl": ".",
4
- "module": "ES2020",
5
- "target": "ES2019",
6
- "lib": ["ES2020", "DOM"],
7
- "strict": true,
8
- "moduleResolution": "node",
9
- "isolatedModules": true,
10
- "esModuleInterop": true,
11
- "declaration": true,
12
- "declarationDir": "./types/"
13
- },
14
- "include": ["src/**/*", "test/**/*"]
15
- }