is-what 4.1.0 → 4.1.4

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