is-what 3.14.0 → 4.1.1

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