@zerooneit/expressive-tea 1.3.0-beta.2 → 1.3.0-beta.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/classes/Boot.d.ts +1 -1
- package/classes/Boot.js +1 -1
- package/classes/Settings.d.ts +1 -1
- package/classes/Settings.js +9 -9
- package/decorators/annotations.d.ts +1 -1
- package/decorators/annotations.js +4 -4
- package/decorators/module.d.ts +1 -1
- package/decorators/proxy.d.ts +1 -1
- package/decorators/proxy.js +10 -10
- package/decorators/router.d.ts +2 -2
- package/decorators/router.js +8 -8
- package/decorators/server.d.ts +2 -2
- package/decorators/server.js +20 -20
- package/engines/http/index.d.ts +1 -1
- package/engines/http/index.js +4 -4
- package/engines/teacup/index.js +19 -19
- package/engines/teapot/index.js +23 -24
- package/helpers/boot-helper.d.ts +1 -1
- package/helpers/boot-helper.js +7 -7
- package/helpers/decorators.js +4 -4
- package/helpers/server.d.ts +1 -1
- package/helpers/server.js +5 -5
- package/package.json +25 -24
- package/classes/MetaData.d.ts +0 -17
- package/classes/MetaData.js +0 -68
- package/helpers/object-helper.d.ts +0 -167
- package/helpers/object-helper.js +0 -292
- package/libs/constants.d.ts +0 -92
- package/libs/constants.js +0 -128
- package/libs/interfaces.d.ts +0 -140
- package/libs/interfaces.js +0 -2
- package/libs/types.d.ts +0 -14
- package/libs/types.js +0 -2
package/helpers/server.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fileSettings = exports.router = exports.generateRoute = exports.extractParameters = exports.mapArguments = exports.executeRequest = exports.autoResponse = void 0;
|
|
4
4
|
const lodash_1 = require("lodash");
|
|
5
|
-
const
|
|
6
|
-
const constants_1 = require("
|
|
5
|
+
const Metadata_1 = require("@expressive-tea/commons/classes/Metadata");
|
|
6
|
+
const constants_1 = require("@expressive-tea/commons/constants");
|
|
7
7
|
const RequestExceptions_1 = require("../exceptions/RequestExceptions");
|
|
8
|
-
const object_helper_1 = require("
|
|
8
|
+
const object_helper_1 = require("@expressive-tea/commons/helpers/object-helper");
|
|
9
9
|
const fs = require("fs");
|
|
10
10
|
function autoResponse(request, response, annotations, responseResult) {
|
|
11
11
|
const view = (0, lodash_1.find)(annotations, { type: 'view' });
|
|
@@ -82,9 +82,9 @@ function generateRoute(route, verb, ...settings) {
|
|
|
82
82
|
}
|
|
83
83
|
exports.generateRoute = generateRoute;
|
|
84
84
|
function router(verb, route, target, handler, propertyKey, settings) {
|
|
85
|
-
const existedRoutesHandlers =
|
|
85
|
+
const existedRoutesHandlers = Metadata_1.default.get(constants_1.ROUTER_HANDLERS_KEY, target) || [];
|
|
86
86
|
existedRoutesHandlers.unshift({ verb, route, handler, target, propertyKey, settings });
|
|
87
|
-
|
|
87
|
+
Metadata_1.default.set(constants_1.ROUTER_HANDLERS_KEY, existedRoutesHandlers, target);
|
|
88
88
|
}
|
|
89
89
|
exports.router = router;
|
|
90
90
|
function fileSettings() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zerooneit/expressive-tea",
|
|
3
|
-
"version": "1.3.0-beta.
|
|
3
|
+
"version": "1.3.0-beta.4",
|
|
4
4
|
"description": "A REST API over Express and Typescript",
|
|
5
5
|
"main": "classes/Boot.js",
|
|
6
6
|
"engines": {
|
|
@@ -25,44 +25,45 @@
|
|
|
25
25
|
],
|
|
26
26
|
"license": "Apache-2.0",
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@expressive-tea/
|
|
29
|
-
"@
|
|
30
|
-
"@types/
|
|
28
|
+
"@expressive-tea/commons": "^1.0.1",
|
|
29
|
+
"@expressive-tea/plugin": "1.0.2",
|
|
30
|
+
"@types/bluebird": "3.5.38",
|
|
31
|
+
"@types/express": "4.17.15",
|
|
31
32
|
"@types/express-http-proxy": "1.6.3",
|
|
32
|
-
"@types/express-serve-static-core": "4.17.
|
|
33
|
-
"@types/jest": "
|
|
34
|
-
"@types/lodash": "4.14.
|
|
35
|
-
"@types/node": "
|
|
33
|
+
"@types/express-serve-static-core": "4.17.32",
|
|
34
|
+
"@types/jest": "29.2.5",
|
|
35
|
+
"@types/lodash": "4.14.191",
|
|
36
|
+
"@types/node": "18.11.18",
|
|
36
37
|
"@types/reflect-metadata": "0.1.0",
|
|
37
38
|
"@types/socket.io": "3.0.2",
|
|
38
39
|
"@types/socket.io-client": "3.0.0",
|
|
39
|
-
"@types/ws": "8.5.
|
|
40
|
-
"trash-cli":"5.0.0",
|
|
40
|
+
"@types/ws": "8.5.4",
|
|
41
41
|
"http-terminator": "3.2.0",
|
|
42
|
-
"jest": "
|
|
42
|
+
"jest": "29.3.1",
|
|
43
43
|
"jest-express": "1.12.0",
|
|
44
|
-
"jest-junit": "
|
|
44
|
+
"jest-junit": "15.0.0",
|
|
45
45
|
"reflect-metadata": "0.1.13",
|
|
46
|
-
"rimraf": "
|
|
47
|
-
"supertest": "6.
|
|
46
|
+
"rimraf": "4.0.5",
|
|
47
|
+
"supertest": "6.3.3",
|
|
48
48
|
"toast-jsdoc": "1.0.2",
|
|
49
|
-
"
|
|
50
|
-
"ts-
|
|
49
|
+
"trash-cli": "5.0.0",
|
|
50
|
+
"ts-jest": "29.0.5",
|
|
51
|
+
"ts-node": "10.9.1",
|
|
51
52
|
"tslint": "6.1.3",
|
|
52
|
-
"typescript": "4.
|
|
53
|
+
"typescript": "4.9.4"
|
|
53
54
|
},
|
|
54
55
|
"dependencies": {
|
|
55
56
|
"bluebird": "3.7.2",
|
|
56
|
-
"eiows": "4.1.2",
|
|
57
|
-
"express": "4.18.
|
|
57
|
+
"eiows": "^4.1.2",
|
|
58
|
+
"express": "4.18.2",
|
|
58
59
|
"express-http-proxy": "1.6.3",
|
|
59
60
|
"inversify": "6.0.1",
|
|
60
61
|
"inversify-inject-decorators": "3.1.0",
|
|
61
62
|
"lodash": "4.17.21",
|
|
62
|
-
"socket.io": "4.5.
|
|
63
|
-
"socket.io-client": "4.5.
|
|
63
|
+
"socket.io": "4.5.4",
|
|
64
|
+
"socket.io-client": "4.5.4",
|
|
64
65
|
"url-scheme": "1.0.5",
|
|
65
|
-
"ws": "8.
|
|
66
|
+
"ws": "8.12.0"
|
|
66
67
|
},
|
|
67
68
|
"repository": {
|
|
68
69
|
"type": "git",
|
|
@@ -105,8 +106,8 @@
|
|
|
105
106
|
},
|
|
106
107
|
"homepage": "https://github.com/Expressive-Tea/expresive-tea#readme",
|
|
107
108
|
"optionalDependencies": {
|
|
108
|
-
"bufferutil": "4.0.
|
|
109
|
-
"utf-8-validate": "^
|
|
109
|
+
"bufferutil": "4.0.7",
|
|
110
|
+
"utf-8-validate": "^6.0.0"
|
|
110
111
|
},
|
|
111
112
|
"resolutions": {
|
|
112
113
|
"set-value": "4.1.0",
|
package/classes/MetaData.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import 'reflect-metadata';
|
|
2
|
-
export default class Metadata {
|
|
3
|
-
static get(key: string, target: any, propertyKey?: string | symbol): any;
|
|
4
|
-
static getOwn(key: string, target: any, propertyKey?: string | symbol): any;
|
|
5
|
-
static getType(target: any, propertyKey?: string | symbol): any;
|
|
6
|
-
static getOwnType(target: any, propertyKey?: string | symbol): any;
|
|
7
|
-
static getReturnType(target: any, propertyKey?: string | symbol): any;
|
|
8
|
-
static getOwnReturnType(target: any, propertyKey?: string | symbol): any;
|
|
9
|
-
static has(key: string, target: any, propertyKey?: string | symbol): boolean;
|
|
10
|
-
static hasOwn(key: string, target: any, propertyKey?: string | symbol): boolean;
|
|
11
|
-
static setParamTypes(target: any, propertyKey: string | symbol, value: any): void;
|
|
12
|
-
static delete(key: string, target: any, propertyKey?: string | symbol): boolean;
|
|
13
|
-
static getTargetsFromPropertyKey: (metadataKey: string | symbol) => any[];
|
|
14
|
-
static set(key: string, value: any, target: any, propertyKey?: string | symbol): void;
|
|
15
|
-
static getParamTypes(targetPrototype: any, propertyKey?: string | symbol): any[];
|
|
16
|
-
static getOwnParamTypes(target: any, propertyKey?: string | symbol): any[];
|
|
17
|
-
}
|
package/classes/MetaData.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/* istanbul ignore file */
|
|
4
|
-
require("reflect-metadata");
|
|
5
|
-
const object_helper_1 = require("../helpers/object-helper");
|
|
6
|
-
function get(key, target, propertyKey, own = false) {
|
|
7
|
-
return own ?
|
|
8
|
-
Reflect.getOwnMetadata(key, (0, object_helper_1.getClass)(target), propertyKey) :
|
|
9
|
-
Reflect.getMetadata(key, (0, object_helper_1.getClass)(target), propertyKey);
|
|
10
|
-
}
|
|
11
|
-
class Metadata {
|
|
12
|
-
static get(key, target, propertyKey) {
|
|
13
|
-
return get(key, (0, object_helper_1.getClass)(target), propertyKey);
|
|
14
|
-
}
|
|
15
|
-
static getOwn(key, target, propertyKey) {
|
|
16
|
-
return get(key, (0, object_helper_1.getClass)(target), propertyKey, true);
|
|
17
|
-
}
|
|
18
|
-
static getType(target, propertyKey) {
|
|
19
|
-
return Reflect.getMetadata(DESIGN_TYPE, target, propertyKey);
|
|
20
|
-
}
|
|
21
|
-
static getOwnType(target, propertyKey) {
|
|
22
|
-
return Reflect.getMetadata(DESIGN_TYPE, target, propertyKey);
|
|
23
|
-
}
|
|
24
|
-
static getReturnType(target, propertyKey) {
|
|
25
|
-
return Reflect.getMetadata(DESIGN_RETURN_TYPE, target, propertyKey);
|
|
26
|
-
}
|
|
27
|
-
static getOwnReturnType(target, propertyKey) {
|
|
28
|
-
return Reflect.getOwnMetadata(DESIGN_RETURN_TYPE, target, propertyKey);
|
|
29
|
-
}
|
|
30
|
-
static has(key, target, propertyKey) {
|
|
31
|
-
try {
|
|
32
|
-
return Reflect.hasMetadata(key, (0, object_helper_1.getClass)(target), propertyKey);
|
|
33
|
-
}
|
|
34
|
-
catch (er) {
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
static hasOwn(key, target, propertyKey) {
|
|
39
|
-
return Reflect.hasOwnMetadata(key, (0, object_helper_1.getClass)(target), propertyKey);
|
|
40
|
-
}
|
|
41
|
-
static setParamTypes(target, propertyKey, value) {
|
|
42
|
-
return this.set(DESIGN_PARAM_TYPES, value, target.prototype, propertyKey);
|
|
43
|
-
}
|
|
44
|
-
static delete(key, target, propertyKey) {
|
|
45
|
-
return Reflect.deleteMetadata(key, (0, object_helper_1.getClass)(target), propertyKey);
|
|
46
|
-
}
|
|
47
|
-
static set(key, value, target, propertyKey) {
|
|
48
|
-
const targets = PROPERTIES.has(key) ? PROPERTIES.get(key) || [] : [];
|
|
49
|
-
const classConstructor = (0, object_helper_1.getClass)(target);
|
|
50
|
-
if (targets.indexOf(classConstructor) === -1) {
|
|
51
|
-
targets.push(classConstructor);
|
|
52
|
-
PROPERTIES.set(key, targets);
|
|
53
|
-
}
|
|
54
|
-
Reflect.defineMetadata(key, value, (0, object_helper_1.getClass)(target), propertyKey);
|
|
55
|
-
}
|
|
56
|
-
static getParamTypes(targetPrototype, propertyKey) {
|
|
57
|
-
return get(DESIGN_PARAM_TYPES, targetPrototype, propertyKey) || [];
|
|
58
|
-
}
|
|
59
|
-
static getOwnParamTypes(target, propertyKey) {
|
|
60
|
-
return get(DESIGN_PARAM_TYPES, target, propertyKey, true) || [];
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
exports.default = Metadata;
|
|
64
|
-
Metadata.getTargetsFromPropertyKey = (metadataKey) => PROPERTIES.has(metadataKey) ? PROPERTIES.get(metadataKey) || [] : [];
|
|
65
|
-
const DESIGN_PARAM_TYPES = 'design:paramtypes';
|
|
66
|
-
const DESIGN_TYPE = 'design:type';
|
|
67
|
-
const DESIGN_RETURN_TYPE = 'design:returntype';
|
|
68
|
-
const PROPERTIES = new Map();
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Get the provide constructor.
|
|
3
|
-
* @param targetClass
|
|
4
|
-
* @ignore
|
|
5
|
-
*/
|
|
6
|
-
export declare const getConstructor: (targetClass: any) => any;
|
|
7
|
-
/**
|
|
8
|
-
* Get the provide constructor if target is an instance.
|
|
9
|
-
* @param target
|
|
10
|
-
* @returns {*}
|
|
11
|
-
* @ignore
|
|
12
|
-
*/
|
|
13
|
-
export declare function getClass(target: any): any;
|
|
14
|
-
/**
|
|
15
|
-
* Get the provide constructor if target is an instance.
|
|
16
|
-
* @param target
|
|
17
|
-
* @returns {*}
|
|
18
|
-
* @alias getClass
|
|
19
|
-
* @ignore
|
|
20
|
-
*/
|
|
21
|
-
export declare function classOf(target: any): any;
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
* @param target
|
|
25
|
-
* @returns {symbol}
|
|
26
|
-
* @ignore
|
|
27
|
-
*/
|
|
28
|
-
export declare function getClassOrSymbol(target: any): any;
|
|
29
|
-
/**
|
|
30
|
-
* Return true if the given obj is a primitive.
|
|
31
|
-
* @param target
|
|
32
|
-
* @returns {boolean}
|
|
33
|
-
* @ignore
|
|
34
|
-
*/
|
|
35
|
-
export declare function isPrimitiveOrPrimitiveClass(target: any): boolean;
|
|
36
|
-
/**
|
|
37
|
-
*
|
|
38
|
-
* @param target
|
|
39
|
-
* @returns {"string" | "number" | "boolean" | "any"}
|
|
40
|
-
* @ignore
|
|
41
|
-
*/
|
|
42
|
-
export declare function primitiveOf(target: any): 'string' | 'number' | 'boolean' | 'any';
|
|
43
|
-
/**
|
|
44
|
-
*
|
|
45
|
-
* @param target
|
|
46
|
-
* @returns {boolean}
|
|
47
|
-
* @ignore
|
|
48
|
-
*/
|
|
49
|
-
export declare function isString(target: any): boolean;
|
|
50
|
-
/**
|
|
51
|
-
*
|
|
52
|
-
* @param target
|
|
53
|
-
* @returns {boolean}
|
|
54
|
-
* @ignore
|
|
55
|
-
*/
|
|
56
|
-
export declare function isNumber(target: any): boolean;
|
|
57
|
-
/**
|
|
58
|
-
*
|
|
59
|
-
* @param target
|
|
60
|
-
* @returns {boolean}
|
|
61
|
-
* @ignore
|
|
62
|
-
*/
|
|
63
|
-
export declare function isBoolean(target: any): boolean;
|
|
64
|
-
/**
|
|
65
|
-
*
|
|
66
|
-
* @param target
|
|
67
|
-
* @returns {Boolean}
|
|
68
|
-
* @ignore
|
|
69
|
-
*/
|
|
70
|
-
export declare function isArray(target: any): boolean;
|
|
71
|
-
/**
|
|
72
|
-
* Return true if the clazz is an array.
|
|
73
|
-
* @param target
|
|
74
|
-
* @returns {boolean}
|
|
75
|
-
* @ignore
|
|
76
|
-
*/
|
|
77
|
-
export declare function isArrayOrArrayClass(target: any): boolean;
|
|
78
|
-
/**
|
|
79
|
-
* Return true if the target.
|
|
80
|
-
* @param target
|
|
81
|
-
* @returns {boolean}
|
|
82
|
-
* @ignore
|
|
83
|
-
*/
|
|
84
|
-
export declare function isCollection(target: any): boolean;
|
|
85
|
-
/**
|
|
86
|
-
*
|
|
87
|
-
* @param target
|
|
88
|
-
* @returns {boolean}
|
|
89
|
-
* @ignore
|
|
90
|
-
*/
|
|
91
|
-
export declare function isDate(target: any): boolean;
|
|
92
|
-
/**
|
|
93
|
-
*
|
|
94
|
-
* @param target
|
|
95
|
-
* @returns {boolean}
|
|
96
|
-
* @ignore
|
|
97
|
-
*/
|
|
98
|
-
export declare function isObject(target: any): boolean;
|
|
99
|
-
/**
|
|
100
|
-
*
|
|
101
|
-
* @param target
|
|
102
|
-
* @returns {boolean}
|
|
103
|
-
* @ignore
|
|
104
|
-
*/
|
|
105
|
-
export declare function isClass(target: any): boolean;
|
|
106
|
-
/**
|
|
107
|
-
* Return true if the value is an empty string, null or undefined.
|
|
108
|
-
* @param value
|
|
109
|
-
* @returns {boolean}
|
|
110
|
-
* @ignore
|
|
111
|
-
*/
|
|
112
|
-
export declare function isEmpty(value: any): boolean;
|
|
113
|
-
/**
|
|
114
|
-
*
|
|
115
|
-
* @param target
|
|
116
|
-
* @returns {boolean}
|
|
117
|
-
* @ignore
|
|
118
|
-
*/
|
|
119
|
-
export declare function isPromise(target: any): boolean;
|
|
120
|
-
/**
|
|
121
|
-
*
|
|
122
|
-
* @param target
|
|
123
|
-
* @returns {any}
|
|
124
|
-
* @ignore
|
|
125
|
-
*/
|
|
126
|
-
export declare function getInheritedClass(target: any): any;
|
|
127
|
-
/**
|
|
128
|
-
*
|
|
129
|
-
* @param target
|
|
130
|
-
* @returns {Array}
|
|
131
|
-
* @ignore
|
|
132
|
-
*/
|
|
133
|
-
export declare function ancestorsOf(target: any): any[];
|
|
134
|
-
/**
|
|
135
|
-
* Get object name
|
|
136
|
-
* @ignore
|
|
137
|
-
*/
|
|
138
|
-
export declare function nameOf(obj: any): string;
|
|
139
|
-
/**
|
|
140
|
-
* Get the provide name.
|
|
141
|
-
* @param targetClass
|
|
142
|
-
* @ignore
|
|
143
|
-
*/
|
|
144
|
-
export declare function nameOfClass(targetClass: any): string;
|
|
145
|
-
/**
|
|
146
|
-
* Get symbol name.
|
|
147
|
-
* @param sym
|
|
148
|
-
* @ignore
|
|
149
|
-
*/
|
|
150
|
-
export declare const nameOfSymbol: (sym: symbol) => string;
|
|
151
|
-
/**
|
|
152
|
-
*
|
|
153
|
-
* @param target
|
|
154
|
-
* @param {string} propertyKey
|
|
155
|
-
* @returns {PropertyDescriptor}
|
|
156
|
-
* @ignore
|
|
157
|
-
*/
|
|
158
|
-
export declare function descriptorOf(target: any, propertyKey: string): PropertyDescriptor;
|
|
159
|
-
/**
|
|
160
|
-
*
|
|
161
|
-
* @param target
|
|
162
|
-
* @returns {any}
|
|
163
|
-
* @ignore
|
|
164
|
-
*/
|
|
165
|
-
export declare function prototypeOf(target: any): any;
|
|
166
|
-
export declare function getOwnArgumentNames(fn: Function): string[];
|
|
167
|
-
export declare function isAsyncFunction(fn: () => any): boolean;
|
package/helpers/object-helper.js
DELETED
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isAsyncFunction = exports.getOwnArgumentNames = exports.prototypeOf = exports.descriptorOf = exports.nameOfSymbol = exports.nameOfClass = exports.nameOf = exports.ancestorsOf = exports.getInheritedClass = exports.isPromise = exports.isEmpty = exports.isClass = exports.isObject = exports.isDate = exports.isCollection = exports.isArrayOrArrayClass = exports.isArray = exports.isBoolean = exports.isNumber = exports.isString = exports.primitiveOf = exports.isPrimitiveOrPrimitiveClass = exports.getClassOrSymbol = exports.classOf = exports.getClass = exports.getConstructor = void 0;
|
|
4
|
-
/* istanbul ignore file */
|
|
5
|
-
/**
|
|
6
|
-
* Get the provide constructor.
|
|
7
|
-
* @param targetClass
|
|
8
|
-
* @ignore
|
|
9
|
-
*/
|
|
10
|
-
const getConstructor = (targetClass) => typeof targetClass === 'function' ? targetClass : targetClass.constructor;
|
|
11
|
-
exports.getConstructor = getConstructor;
|
|
12
|
-
/**
|
|
13
|
-
* Get the provide constructor if target is an instance.
|
|
14
|
-
* @param target
|
|
15
|
-
* @returns {*}
|
|
16
|
-
* @ignore
|
|
17
|
-
*/
|
|
18
|
-
function getClass(target) {
|
|
19
|
-
return target.prototype ? target : target.constructor;
|
|
20
|
-
}
|
|
21
|
-
exports.getClass = getClass;
|
|
22
|
-
/**
|
|
23
|
-
* Get the provide constructor if target is an instance.
|
|
24
|
-
* @param target
|
|
25
|
-
* @returns {*}
|
|
26
|
-
* @alias getClass
|
|
27
|
-
* @ignore
|
|
28
|
-
*/
|
|
29
|
-
function classOf(target) {
|
|
30
|
-
return getClass(target);
|
|
31
|
-
}
|
|
32
|
-
exports.classOf = classOf;
|
|
33
|
-
/**
|
|
34
|
-
*
|
|
35
|
-
* @param target
|
|
36
|
-
* @returns {symbol}
|
|
37
|
-
* @ignore
|
|
38
|
-
*/
|
|
39
|
-
function getClassOrSymbol(target) {
|
|
40
|
-
return typeof target === 'symbol' ? target : getClass(target);
|
|
41
|
-
}
|
|
42
|
-
exports.getClassOrSymbol = getClassOrSymbol;
|
|
43
|
-
/**
|
|
44
|
-
* Return true if the given obj is a primitive.
|
|
45
|
-
* @param target
|
|
46
|
-
* @returns {boolean}
|
|
47
|
-
* @ignore
|
|
48
|
-
*/
|
|
49
|
-
function isPrimitiveOrPrimitiveClass(target) {
|
|
50
|
-
return isString(target) || isNumber(target) || isBoolean(target);
|
|
51
|
-
}
|
|
52
|
-
exports.isPrimitiveOrPrimitiveClass = isPrimitiveOrPrimitiveClass;
|
|
53
|
-
/**
|
|
54
|
-
*
|
|
55
|
-
* @param target
|
|
56
|
-
* @returns {"string" | "number" | "boolean" | "any"}
|
|
57
|
-
* @ignore
|
|
58
|
-
*/
|
|
59
|
-
function primitiveOf(target) {
|
|
60
|
-
if (isString(target)) {
|
|
61
|
-
return 'string';
|
|
62
|
-
}
|
|
63
|
-
if (isNumber(target)) {
|
|
64
|
-
return 'number';
|
|
65
|
-
}
|
|
66
|
-
if (isBoolean(target)) {
|
|
67
|
-
return 'boolean';
|
|
68
|
-
}
|
|
69
|
-
return 'any';
|
|
70
|
-
}
|
|
71
|
-
exports.primitiveOf = primitiveOf;
|
|
72
|
-
/**
|
|
73
|
-
*
|
|
74
|
-
* @param target
|
|
75
|
-
* @returns {boolean}
|
|
76
|
-
* @ignore
|
|
77
|
-
*/
|
|
78
|
-
function isString(target) {
|
|
79
|
-
return checkType(target, 'string', String);
|
|
80
|
-
}
|
|
81
|
-
exports.isString = isString;
|
|
82
|
-
/**
|
|
83
|
-
*
|
|
84
|
-
* @param target
|
|
85
|
-
* @returns {boolean}
|
|
86
|
-
* @ignore
|
|
87
|
-
*/
|
|
88
|
-
function isNumber(target) {
|
|
89
|
-
return checkType(target, 'number', Number);
|
|
90
|
-
}
|
|
91
|
-
exports.isNumber = isNumber;
|
|
92
|
-
/**
|
|
93
|
-
*
|
|
94
|
-
* @param target
|
|
95
|
-
* @returns {boolean}
|
|
96
|
-
* @ignore
|
|
97
|
-
*/
|
|
98
|
-
function isBoolean(target) {
|
|
99
|
-
return checkType(target, 'boolean', Boolean);
|
|
100
|
-
}
|
|
101
|
-
exports.isBoolean = isBoolean;
|
|
102
|
-
function checkType(target, type, TypeClass) {
|
|
103
|
-
return typeof target === type || target instanceof TypeClass || target === TypeClass;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
*
|
|
107
|
-
* @param target
|
|
108
|
-
* @returns {Boolean}
|
|
109
|
-
* @ignore
|
|
110
|
-
*/
|
|
111
|
-
function isArray(target) {
|
|
112
|
-
return Array.isArray(target);
|
|
113
|
-
}
|
|
114
|
-
exports.isArray = isArray;
|
|
115
|
-
/**
|
|
116
|
-
* Return true if the clazz is an array.
|
|
117
|
-
* @param target
|
|
118
|
-
* @returns {boolean}
|
|
119
|
-
* @ignore
|
|
120
|
-
*/
|
|
121
|
-
function isArrayOrArrayClass(target) {
|
|
122
|
-
if (target === Array) {
|
|
123
|
-
return true;
|
|
124
|
-
}
|
|
125
|
-
return isArray(target);
|
|
126
|
-
}
|
|
127
|
-
exports.isArrayOrArrayClass = isArrayOrArrayClass;
|
|
128
|
-
/**
|
|
129
|
-
* Return true if the target.
|
|
130
|
-
* @param target
|
|
131
|
-
* @returns {boolean}
|
|
132
|
-
* @ignore
|
|
133
|
-
*/
|
|
134
|
-
function isCollection(target) {
|
|
135
|
-
return (isArrayOrArrayClass(target) ||
|
|
136
|
-
target === Map ||
|
|
137
|
-
target instanceof Map ||
|
|
138
|
-
target === Set ||
|
|
139
|
-
target instanceof Set ||
|
|
140
|
-
target === WeakMap ||
|
|
141
|
-
target instanceof WeakMap ||
|
|
142
|
-
target === WeakSet ||
|
|
143
|
-
target instanceof WeakSet);
|
|
144
|
-
}
|
|
145
|
-
exports.isCollection = isCollection;
|
|
146
|
-
/**
|
|
147
|
-
*
|
|
148
|
-
* @param target
|
|
149
|
-
* @returns {boolean}
|
|
150
|
-
* @ignore
|
|
151
|
-
*/
|
|
152
|
-
function isDate(target) {
|
|
153
|
-
return target === Date || target instanceof Date;
|
|
154
|
-
}
|
|
155
|
-
exports.isDate = isDate;
|
|
156
|
-
/**
|
|
157
|
-
*
|
|
158
|
-
* @param target
|
|
159
|
-
* @returns {boolean}
|
|
160
|
-
* @ignore
|
|
161
|
-
*/
|
|
162
|
-
function isObject(target) {
|
|
163
|
-
return target === Object;
|
|
164
|
-
}
|
|
165
|
-
exports.isObject = isObject;
|
|
166
|
-
/**
|
|
167
|
-
*
|
|
168
|
-
* @param target
|
|
169
|
-
* @returns {boolean}
|
|
170
|
-
* @ignore
|
|
171
|
-
*/
|
|
172
|
-
function isClass(target) {
|
|
173
|
-
return (!isPrimitiveOrPrimitiveClass(target) &&
|
|
174
|
-
!isObject(target) &&
|
|
175
|
-
!isDate(target) &&
|
|
176
|
-
target !== undefined &&
|
|
177
|
-
!isPromise(target));
|
|
178
|
-
}
|
|
179
|
-
exports.isClass = isClass;
|
|
180
|
-
/**
|
|
181
|
-
* Return true if the value is an empty string, null or undefined.
|
|
182
|
-
* @param value
|
|
183
|
-
* @returns {boolean}
|
|
184
|
-
* @ignore
|
|
185
|
-
*/
|
|
186
|
-
function isEmpty(value) {
|
|
187
|
-
return value === '' || value === null || value === undefined;
|
|
188
|
-
}
|
|
189
|
-
exports.isEmpty = isEmpty;
|
|
190
|
-
/**
|
|
191
|
-
*
|
|
192
|
-
* @param target
|
|
193
|
-
* @returns {boolean}
|
|
194
|
-
* @ignore
|
|
195
|
-
*/
|
|
196
|
-
function isPromise(target) {
|
|
197
|
-
return target === Promise || target instanceof Promise;
|
|
198
|
-
}
|
|
199
|
-
exports.isPromise = isPromise;
|
|
200
|
-
/**
|
|
201
|
-
*
|
|
202
|
-
* @param target
|
|
203
|
-
* @returns {any}
|
|
204
|
-
* @ignore
|
|
205
|
-
*/
|
|
206
|
-
function getInheritedClass(target) {
|
|
207
|
-
return Object.getPrototypeOf(target);
|
|
208
|
-
}
|
|
209
|
-
exports.getInheritedClass = getInheritedClass;
|
|
210
|
-
/**
|
|
211
|
-
*
|
|
212
|
-
* @param target
|
|
213
|
-
* @returns {Array}
|
|
214
|
-
* @ignore
|
|
215
|
-
*/
|
|
216
|
-
function ancestorsOf(target) {
|
|
217
|
-
const classes = [];
|
|
218
|
-
let currentTarget = getClass(target);
|
|
219
|
-
while (nameOf(currentTarget) !== '') {
|
|
220
|
-
classes.unshift(currentTarget);
|
|
221
|
-
currentTarget = getInheritedClass(currentTarget);
|
|
222
|
-
}
|
|
223
|
-
return classes;
|
|
224
|
-
}
|
|
225
|
-
exports.ancestorsOf = ancestorsOf;
|
|
226
|
-
/**
|
|
227
|
-
* Get object name
|
|
228
|
-
* @ignore
|
|
229
|
-
*/
|
|
230
|
-
function nameOf(obj) {
|
|
231
|
-
switch (typeof obj) {
|
|
232
|
-
default:
|
|
233
|
-
return '' + obj;
|
|
234
|
-
case 'symbol':
|
|
235
|
-
return (0, exports.nameOfSymbol)(obj);
|
|
236
|
-
case 'function':
|
|
237
|
-
return nameOfClass(obj);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
exports.nameOf = nameOf;
|
|
241
|
-
/**
|
|
242
|
-
* Get the provide name.
|
|
243
|
-
* @param targetClass
|
|
244
|
-
* @ignore
|
|
245
|
-
*/
|
|
246
|
-
function nameOfClass(targetClass) {
|
|
247
|
-
return typeof targetClass === 'function' ? targetClass.name : targetClass.constructor.name;
|
|
248
|
-
}
|
|
249
|
-
exports.nameOfClass = nameOfClass;
|
|
250
|
-
/**
|
|
251
|
-
* Get symbol name.
|
|
252
|
-
* @param sym
|
|
253
|
-
* @ignore
|
|
254
|
-
*/
|
|
255
|
-
const nameOfSymbol = (sym) => sym
|
|
256
|
-
.toString()
|
|
257
|
-
.replace('Symbol(', '')
|
|
258
|
-
.replace(')', '');
|
|
259
|
-
exports.nameOfSymbol = nameOfSymbol;
|
|
260
|
-
/**
|
|
261
|
-
*
|
|
262
|
-
* @param target
|
|
263
|
-
* @param {string} propertyKey
|
|
264
|
-
* @returns {PropertyDescriptor}
|
|
265
|
-
* @ignore
|
|
266
|
-
*/
|
|
267
|
-
function descriptorOf(target, propertyKey) {
|
|
268
|
-
return Object.getOwnPropertyDescriptor((target && target.prototype) || target, propertyKey);
|
|
269
|
-
}
|
|
270
|
-
exports.descriptorOf = descriptorOf;
|
|
271
|
-
/**
|
|
272
|
-
*
|
|
273
|
-
* @param target
|
|
274
|
-
* @returns {any}
|
|
275
|
-
* @ignore
|
|
276
|
-
*/
|
|
277
|
-
function prototypeOf(target) {
|
|
278
|
-
return classOf(target) === target ? target.prototype : target;
|
|
279
|
-
}
|
|
280
|
-
exports.prototypeOf = prototypeOf;
|
|
281
|
-
const argumentsRegExp = /\(([\s\S]*?)\)/;
|
|
282
|
-
const replaceRegExp = /[ ,\n\r\t]+/;
|
|
283
|
-
// tslint:disable-next-line:ban-types
|
|
284
|
-
function getOwnArgumentNames(fn) {
|
|
285
|
-
const fnArguments = argumentsRegExp.exec(fn.toString())[1].trim();
|
|
286
|
-
return fnArguments && fnArguments.length ? fnArguments.split(replaceRegExp) : [];
|
|
287
|
-
}
|
|
288
|
-
exports.getOwnArgumentNames = getOwnArgumentNames;
|
|
289
|
-
function isAsyncFunction(fn) {
|
|
290
|
-
return fn.constructor.name === 'AsyncFunction' || fn.constructor.name.includes('__awaiter');
|
|
291
|
-
}
|
|
292
|
-
exports.isAsyncFunction = isAsyncFunction;
|