1 | ;
|
2 | // Javascript Standard Object
|
3 | Object.defineProperty(exports, "__esModule", { value: true });
|
4 | exports.isPromiseLike = exports.isPromise = exports.isGenerator = exports.isError = exports.isDate = exports.isRegExp = exports.isClass = exports.isObject = exports.isAsyncGeneratorFunction = exports.isAsyncFunction = exports.isGeneratorFunction = exports.isFunction = exports.isArray = void 0;
|
5 | const node_util_1 = require("node:util");
|
6 | const util_1 = require("./util");
|
7 | const debug = (0, node_util_1.debuglog)('is-type-of:std');
|
8 | // Array
|
9 | /**
|
10 | * returns true if val is array, it won't check items of array
|
11 | */
|
12 | function isArray(val) {
|
13 | return Array.isArray(val);
|
14 | }
|
15 | exports.isArray = isArray;
|
16 | // Function
|
17 | /**
|
18 | * returns true if val is function
|
19 | */
|
20 | function isFunction(val) {
|
21 | return typeof val === 'function';
|
22 | }
|
23 | exports.isFunction = isFunction;
|
24 | /**
|
25 | * returns true if val is generator function
|
26 | */
|
27 | function isGeneratorFunction(val) {
|
28 | return node_util_1.types.isGeneratorFunction(val);
|
29 | }
|
30 | exports.isGeneratorFunction = isGeneratorFunction;
|
31 | /**
|
32 | * returns true if val is async function
|
33 | */
|
34 | function isAsyncFunction(val) {
|
35 | return node_util_1.types.isAsyncFunction(val);
|
36 | }
|
37 | exports.isAsyncFunction = isAsyncFunction;
|
38 | /**
|
39 | * returns true if val is async generator function
|
40 | */
|
41 | function isAsyncGeneratorFunction(val) {
|
42 | if (!isFunction(val))
|
43 | return false;
|
44 | return val.constructor && val.constructor.name === 'AsyncGeneratorFunction';
|
45 | }
|
46 | exports.isAsyncGeneratorFunction = isAsyncGeneratorFunction;
|
47 | // Object
|
48 | /**
|
49 | * returns true if val is object
|
50 | */
|
51 | function isObject(val) {
|
52 | return typeof val === 'object' && val !== null;
|
53 | }
|
54 | exports.isObject = isObject;
|
55 | /**
|
56 | * returns true if val is class
|
57 | * *Note:* "class" is supported in ECMAScript 6, and if the code is using some compiler or transpiler, the checking might fail
|
58 | */
|
59 | function isClass(val) {
|
60 | if (!isFunction(val))
|
61 | return false;
|
62 | const fnStr = Function.prototype.toString.call(val);
|
63 | if (/^class[\s{]/.test(fnStr))
|
64 | return true;
|
65 | debug('[isClass] fnStr: %s', fnStr);
|
66 | const fnBody = fnStr.replace(/^[^{]*{\s*/, '').replace(/\s*}[^}]*$/, '');
|
67 | debug('[isClass] fnBody: %s', fnBody);
|
68 | return (/classCallCheck\(/.test(fnBody) || /TypeError\("Cannot call a class as a function"\)/.test(fnBody));
|
69 | }
|
70 | exports.isClass = isClass;
|
71 | /**
|
72 | * returns true if val is regular expression
|
73 | */
|
74 | function isRegExp(val) {
|
75 | return (0, util_1.isInstanceOf)(val, RegExp);
|
76 | }
|
77 | exports.isRegExp = isRegExp;
|
78 | /**
|
79 | * returns true if val is instance of Date
|
80 | */
|
81 | function isDate(val) {
|
82 | return (0, util_1.isInstanceOf)(val, Date);
|
83 | }
|
84 | exports.isDate = isDate;
|
85 | /**
|
86 | * returns true if val is instance of Error
|
87 | */
|
88 | function isError(val) {
|
89 | return (0, util_1.isInstanceOf)(val, Error);
|
90 | }
|
91 | exports.isError = isError;
|
92 | /**
|
93 | * returns true if val is generator
|
94 | */
|
95 | function isGenerator(val) {
|
96 | return node_util_1.types.isGeneratorObject(val);
|
97 | }
|
98 | exports.isGenerator = isGenerator;
|
99 | /**
|
100 | * returns true if val is promise
|
101 | */
|
102 | function isPromise(val) {
|
103 | return node_util_1.types.isPromise(val);
|
104 | }
|
105 | exports.isPromise = isPromise;
|
106 | /**
|
107 | * returns true if val is like promise, if the object has `then` property, the checking will pass.
|
108 | */
|
109 | function isPromiseLike(val) {
|
110 | if (isPromise(val))
|
111 | return true;
|
112 | if (!isObject(val))
|
113 | return false;
|
114 | return (0, util_1.hasOwnProperty)(val, 'then') && typeof val.then === 'function';
|
115 | }
|
116 | exports.isPromiseLike = isPromiseLike;
|
117 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL3N0ZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNkJBQTZCOzs7QUFFN0IseUNBQTRDO0FBQzVDLGlDQUFzRDtBQUd0RCxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUV6QyxRQUFRO0FBRVI7O0dBRUc7QUFDSCxTQUFnQixPQUFPLENBQVUsR0FBYTtJQUM1QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUZELDBCQUVDO0FBRUQsV0FBVztBQUVYOztHQUVHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFxQixHQUFhO0lBQzFELE9BQU8sT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDO0FBQ25DLENBQUM7QUFGRCxnQ0FFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsR0FBYTtJQUMvQyxPQUFPLGlCQUFLLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUZELGtEQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixlQUFlLENBQUMsR0FBYTtJQUMzQyxPQUFPLGlCQUFLLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFGRCwwQ0FFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsR0FBYTtJQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ25DLE9BQU8sR0FBRyxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyx3QkFBd0IsQ0FBQztBQUM5RSxDQUFDO0FBSEQsNERBR0M7QUFFRCxTQUFTO0FBRVQ7O0dBRUc7QUFDSCxTQUFnQixRQUFRLENBQUMsR0FBYTtJQUNwQyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDO0FBQ2pELENBQUM7QUFGRCw0QkFFQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLE9BQU8sQ0FBa0IsR0FBYTtJQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ25DLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwRCxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDM0MsS0FBSyxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDekUsS0FBSyxDQUFDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksa0RBQWtELENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDOUcsQ0FBQztBQVJELDBCQVFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixRQUFRLENBQUMsR0FBYTtJQUNwQyxPQUFPLElBQUEsbUJBQVksRUFBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUZELDRCQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixNQUFNLENBQUMsR0FBYTtJQUNsQyxPQUFPLElBQUEsbUJBQVksRUFBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUZELHdCQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixPQUFPLENBQUMsR0FBYTtJQUNuQyxPQUFPLElBQUEsbUJBQVksRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUZELDBCQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixXQUFXLENBQUMsR0FBYTtJQUN2QyxPQUFPLGlCQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUZELGtDQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixTQUFTLENBQVUsR0FBYTtJQUM5QyxPQUFPLGlCQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFGRCw4QkFFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFVLEdBQWE7SUFDbEQsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNqQyxPQUFPLElBQUEscUJBQWMsRUFBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztBQUN2RSxDQUFDO0FBSkQsc0NBSUMifQ== |
\ | No newline at end of file |