typescript-class-helpers 21.0.32 → 21.0.35
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/browser/fesm2022/typescript-class-helpers-browser.mjs +119 -559
- package/browser/fesm2022/typescript-class-helpers-browser.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/browser/types/typescript-class-helpers-browser.d.ts +13 -148
- package/browser-prod/fesm2022/typescript-class-helpers-browser.mjs +94 -529
- package/browser-prod/fesm2022/typescript-class-helpers-browser.mjs.map +1 -1
- package/browser-prod/package.json +1 -1
- package/browser-prod/types/typescript-class-helpers-browser.d.ts +12 -139
- package/browser-prod.split-namespaces.json +19 -29
- package/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.js +1 -1
- package/lib/index.d.ts +1 -48
- package/lib/index.js +15 -197
- package/lib/index.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/typescript-class-helpers.d.ts +18 -0
- package/lib/typescript-class-helpers.js +182 -0
- package/lib/typescript-class-helpers.js.map +1 -0
- package/lib-prod/build-info._auto-generated_.d.ts +1 -1
- package/lib-prod/build-info._auto-generated_.js +1 -1
- package/lib-prod/index.d.ts +1 -48
- package/lib-prod/index.js +1 -193
- package/lib-prod/index.js.map +1 -1
- package/lib-prod/package.json +1 -1
- package/lib-prod/typescript-class-helpers.d.ts +16 -0
- package/lib-prod/typescript-class-helpers.js +168 -0
- package/lib-prod/typescript-class-helpers.js.map +1 -0
- package/lib-prod.split-namespaces.json +19 -29
- package/package.json +1 -1
- package/websql/fesm2022/typescript-class-helpers-websql.mjs +119 -558
- package/websql/fesm2022/typescript-class-helpers-websql.mjs.map +1 -1
- package/websql/package.json +1 -1
- package/websql/types/typescript-class-helpers-websql.d.ts +13 -149
- package/websql-prod/fesm2022/typescript-class-helpers-websql.mjs +94 -528
- package/websql-prod/fesm2022/typescript-class-helpers-websql.mjs.map +1 -1
- package/websql-prod/package.json +1 -1
- package/websql-prod/types/typescript-class-helpers-websql.d.ts +12 -140
- package/websql-prod.split-namespaces.json +19 -29
- package/lib/classname.d.ts +0 -16
- package/lib/classname.js +0 -198
- package/lib/classname.js.map +0 -1
- package/lib/describe-class.d.ts +0 -6
- package/lib/describe-class.js +0 -77
- package/lib/describe-class.js.map +0 -1
- package/lib/errors-messages.d.ts +0 -1
- package/lib/errors-messages.js +0 -15
- package/lib/errors-messages.js.map +0 -1
- package/lib/models.d.ts +0 -83
- package/lib/models.js +0 -63
- package/lib/models.js.map +0 -1
- package/lib/registerd-db.d.ts +0 -5
- package/lib/registerd-db.js +0 -8
- package/lib/registerd-db.js.map +0 -1
- package/lib/set-class-name.d.ts +0 -2
- package/lib/set-class-name.js +0 -100
- package/lib/set-class-name.js.map +0 -1
- package/lib/storage.d.ts +0 -1
- package/lib/storage.js +0 -27
- package/lib/storage.js.map +0 -1
- package/lib/symbols.d.ts +0 -7
- package/lib/symbols.js +0 -12
- package/lib/symbols.js.map +0 -1
- package/lib-prod/classname.d.ts +0 -14
- package/lib-prod/classname.js +0 -186
- package/lib-prod/classname.js.map +0 -1
- package/lib-prod/describe-class.d.ts +0 -6
- package/lib-prod/describe-class.js +0 -73
- package/lib-prod/describe-class.js.map +0 -1
- package/lib-prod/errors-messages.d.ts +0 -1
- package/lib-prod/errors-messages.js +0 -12
- package/lib-prod/errors-messages.js.map +0 -1
- package/lib-prod/models.d.ts +0 -81
- package/lib-prod/models.js +0 -55
- package/lib-prod/models.js.map +0 -1
- package/lib-prod/registerd-db.d.ts +0 -5
- package/lib-prod/registerd-db.js +0 -5
- package/lib-prod/registerd-db.js.map +0 -1
- package/lib-prod/set-class-name.d.ts +0 -2
- package/lib-prod/set-class-name.js +0 -97
- package/lib-prod/set-class-name.js.map +0 -1
- package/lib-prod/storage.d.ts +0 -1
- package/lib-prod/storage.js +0 -24
- package/lib-prod/storage.js.map +0 -1
- package/lib-prod/symbols.d.ts +0 -7
- package/lib-prod/symbols.js +0 -9
- package/lib-prod/symbols.js.map +0 -1
package/lib-prod/index.js
CHANGED
|
@@ -1,194 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { CLASSNAME__NS__CLASSNAME, CLASSNAME__NS__getClassBy, CLASSNAME__NS__getClassConfig, CLASSNAME__NS__getClassName, CLASSNAME__NS__getObjectClassFamily, CLASSNAME__NS__getObjectIndexPropertyValue, CLASSNAME__NS__getObjectIndexValue } from './classname';
|
|
3
|
-
import { describeFromClassStringify, describeByDefaultModelsAndMapping } from './describe-class';
|
|
4
|
-
import { setClassName } from './set-class-name';
|
|
5
|
-
export { Models__NS__ClassConfig, Models__NS__MethodConfig, Models__NS__ParamConfig } from './models';
|
|
6
|
-
export { SYMBOL } from './symbols';
|
|
7
|
-
export class TchHelpers {
|
|
8
|
-
static getBy(className) {
|
|
9
|
-
return CLASSNAME__NS__getClassBy(className);
|
|
10
|
-
}
|
|
11
|
-
static getFromObject(o) {
|
|
12
|
-
if (___NS__isUndefined(o) || ___NS__isNull(o)) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
if (o.constructor) {
|
|
16
|
-
return o.constructor;
|
|
17
|
-
}
|
|
18
|
-
const p = Object.getPrototypeOf(o);
|
|
19
|
-
return p && p.constructor;
|
|
20
|
-
}
|
|
21
|
-
static getName(target, production = false) {
|
|
22
|
-
return CLASSNAME__NS__getClassName(target, production);
|
|
23
|
-
}
|
|
24
|
-
static getNameFromObject(o) {
|
|
25
|
-
const fnCLass = this.getFromObject(o);
|
|
26
|
-
return this.getName(fnCLass);
|
|
27
|
-
}
|
|
28
|
-
static getConfigs(target) {
|
|
29
|
-
return CLASSNAME__NS__getClassConfig(target);
|
|
30
|
-
}
|
|
31
|
-
static describeProperites(target) {
|
|
32
|
-
const d1 = describeFromClassStringify(target);
|
|
33
|
-
const d2 = describeByDefaultModelsAndMapping(target);
|
|
34
|
-
let uniq = {};
|
|
35
|
-
// @ts-ignore
|
|
36
|
-
d1.concat(d2).forEach(p => uniq[p] = p);
|
|
37
|
-
return Object.keys(uniq)
|
|
38
|
-
.filter(d => !!d)
|
|
39
|
-
.filter(d => typeof target.prototype[d] !== 'function');
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
const notAllowedAsMethodName = [
|
|
43
|
-
'length', 'name',
|
|
44
|
-
'arguments', 'caller',
|
|
45
|
-
'constructor', 'apply',
|
|
46
|
-
'bind', 'call',
|
|
47
|
-
'toString',
|
|
48
|
-
'__defineGetter__',
|
|
49
|
-
'__defineSetter__', 'hasOwnProperty',
|
|
50
|
-
'__lookupGetter__', '__lookupSetter__',
|
|
51
|
-
'isPrototypeOf', 'propertyIsEnumerable',
|
|
52
|
-
'valueOf', '__proto__', 'toLocaleString',
|
|
53
|
-
];
|
|
54
|
-
const getMethodsNames = (classOrClassInstance, allMethodsNames = []) => {
|
|
55
|
-
if (!classOrClassInstance) {
|
|
56
|
-
return allMethodsNames;
|
|
57
|
-
}
|
|
58
|
-
const isClassFunction = ___NS__isFunction(classOrClassInstance);
|
|
59
|
-
const classFun = (isClassFunction ? classOrClassInstance : Object.getPrototypeOf(classOrClassInstance));
|
|
60
|
-
const objectToCheck = isClassFunction ? classOrClassInstance?.prototype : classOrClassInstance;
|
|
61
|
-
const prototypeObj = Object.getPrototypeOf(objectToCheck || {});
|
|
62
|
-
const properties = ___NS__uniq([
|
|
63
|
-
...Object.getOwnPropertyNames(objectToCheck || {}),
|
|
64
|
-
...Object.getOwnPropertyNames(prototypeObj || {}),
|
|
65
|
-
...Object.keys(objectToCheck || {}),
|
|
66
|
-
...Object.keys(prototypeObj || {}),
|
|
67
|
-
])
|
|
68
|
-
.filter(f => !!f && !notAllowedAsMethodName.includes(f));
|
|
69
|
-
properties.filter((methodName) => typeof objectToCheck[methodName] === 'function').forEach(p => allMethodsNames.push(p));
|
|
70
|
-
if (!classFun || !classFun.constructor || classFun?.constructor?.name === 'Object') {
|
|
71
|
-
return allMethodsNames;
|
|
72
|
-
}
|
|
73
|
-
return getMethodsNames(Object.getPrototypeOf(classFun), allMethodsNames);
|
|
74
|
-
};
|
|
75
|
-
export const CLASS = {
|
|
76
|
-
NAME: CLASSNAME__NS__CLASSNAME,
|
|
77
|
-
setName: setClassName,
|
|
78
|
-
getBy: TchHelpers.getBy,
|
|
79
|
-
/**
|
|
80
|
-
* @deprecated
|
|
81
|
-
*/
|
|
82
|
-
getSingleton(target) {
|
|
83
|
-
if (typeof target !== 'function') {
|
|
84
|
-
console.error(`[typescript-class-helpers][setSingletonObj] Type of target is not a function`);
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
const config = TchHelpers.getConfigs(target)[0];
|
|
88
|
-
// console.log(`getSingleton for ${target.name}: `, config.singleton)
|
|
89
|
-
return config.singleton;
|
|
90
|
-
},
|
|
91
|
-
/**
|
|
92
|
-
* @deprecated
|
|
93
|
-
*/
|
|
94
|
-
setSingletonObj(target, singletonObject) {
|
|
95
|
-
// console.log('SET SINGLETON', singletonObject)
|
|
96
|
-
if (typeof target !== 'function') {
|
|
97
|
-
console.error(`[typescript-class-helpers][setSingletonObj] Type of target is not a function`);
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
if (Array.isArray(singletonObject)) {
|
|
101
|
-
console.error(`[typescript-class-helpers][setSingletonObj] Singleton instance cant be an array`);
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
if (typeof singletonObject !== 'object') {
|
|
105
|
-
console.error(`[typescript-class-helpers][setSingletonObj] Singleton instance cant must be a object`);
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
const className = CLASS.getName(target);
|
|
109
|
-
// console.log(`SINGLETON SET for TARGET ${className}`)
|
|
110
|
-
const config = TchHelpers.getConfigs(target)[0];
|
|
111
|
-
if (config.singleton) {
|
|
112
|
-
console.warn(`[typescript-class-helpers] You are trying to set singleton of "${className}" second time with different object.`);
|
|
113
|
-
}
|
|
114
|
-
config.singleton = singletonObject;
|
|
115
|
-
},
|
|
116
|
-
/**
|
|
117
|
-
* @deprecated
|
|
118
|
-
*/
|
|
119
|
-
getConfigs: TchHelpers.getConfigs,
|
|
120
|
-
/**
|
|
121
|
-
* @deprecated
|
|
122
|
-
*/
|
|
123
|
-
getConfig: (target) => {
|
|
124
|
-
return ___NS__first(TchHelpers.getConfigs(target));
|
|
125
|
-
},
|
|
126
|
-
getMethodsNames(classOrClassInstance) {
|
|
127
|
-
return getMethodsNames(classOrClassInstance);
|
|
128
|
-
},
|
|
129
|
-
getFromObject: TchHelpers.getFromObject,
|
|
130
|
-
getName: TchHelpers.getName,
|
|
131
|
-
getNameFromObject: TchHelpers.getNameFromObject,
|
|
132
|
-
describeProperites: TchHelpers.describeProperites,
|
|
133
|
-
/**
|
|
134
|
-
* @deprecated
|
|
135
|
-
*/
|
|
136
|
-
OBJECT: (obj) => {
|
|
137
|
-
return {
|
|
138
|
-
get indexValue() {
|
|
139
|
-
return CLASSNAME__NS__getObjectIndexValue(obj);
|
|
140
|
-
},
|
|
141
|
-
get indexProperty() {
|
|
142
|
-
return CLASSNAME__NS__getObjectIndexPropertyValue(obj);
|
|
143
|
-
},
|
|
144
|
-
get isClassObject() {
|
|
145
|
-
if (!___NS__isObject(obj) || ___NS__isArray(obj) || ___NS__isRegExp(obj) ||
|
|
146
|
-
___NS__isBuffer(obj) || ___NS__isArrayBuffer(obj)) {
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
if (___NS__isDate(obj)) {
|
|
150
|
-
return true;
|
|
151
|
-
}
|
|
152
|
-
const className = CLASS.getNameFromObject(obj);
|
|
153
|
-
return ___NS__isString(className) && className !== 'Object';
|
|
154
|
-
},
|
|
155
|
-
isEqual: (anotherObj, compareDeep = false) => {
|
|
156
|
-
if (!CLASS.OBJECT(obj).isClassObject || !CLASS.OBJECT(anotherObj).isClassObject) {
|
|
157
|
-
return false;
|
|
158
|
-
}
|
|
159
|
-
if (obj === anotherObj) {
|
|
160
|
-
// console.log(`EQ v1: , v2: - class1 ${CLASS.getNameFromObject(obj)}, class2 ${CLASS.getNameFromObject(anotherObj)}`, obj, anotherObj)
|
|
161
|
-
return true;
|
|
162
|
-
}
|
|
163
|
-
const v1 = CLASSNAME__NS__getObjectIndexValue(obj);
|
|
164
|
-
const v2 = CLASSNAME__NS__getObjectIndexValue(anotherObj);
|
|
165
|
-
const f1 = CLASSNAME__NS__getObjectClassFamily(obj);
|
|
166
|
-
const f2 = CLASSNAME__NS__getObjectClassFamily(anotherObj);
|
|
167
|
-
const isFamilyDiff = (!___NS__isString(f1) || !___NS__isString(f2) || (f1 !== f2));
|
|
168
|
-
// console.log(`DIFF FAMILY ${isFamilyDiff} v1: ${CLASSNAME__NS__getObjectClassFamily(obj)}, v2: ${CLASSNAME__NS__getObjectClassFamily(anotherObj)} - class1 ${CLASS.getNameFromObject(obj)}, class2 ${CLASS.getNameFromObject(anotherObj)}`)
|
|
169
|
-
if (isFamilyDiff) {
|
|
170
|
-
// console.log(`DIFF v1: ${v1}, v2: ${v2} - class1 ${CLASS.getNameFromObject(obj)}, class2 ${CLASS.getNameFromObject(anotherObj)}`)
|
|
171
|
-
return false;
|
|
172
|
-
}
|
|
173
|
-
if (!CLASS.OBJECT(obj).isClassObject || !CLASS.OBJECT(anotherObj).isClassObject) {
|
|
174
|
-
// console.log(`NOT CLASS v1: ${v1}, v2: ${v2} - class1 ${CLASS.getNameFromObject(obj)}, class2 ${CLASS.getNameFromObject(anotherObj)}`)
|
|
175
|
-
return false;
|
|
176
|
-
}
|
|
177
|
-
// console.log(`v1: ${v1} ,class ${CLASS.getNameFromObject(obj)} ,prop: ${CLASS.OBJECT(obj).indexProperty}`)
|
|
178
|
-
// console.log(`v2: ${v2} ,class ${CLASS.getNameFromObject(anotherObj)} ,prop: ${CLASS.OBJECT(anotherObj).indexProperty}`)
|
|
179
|
-
// console.log(`v1: ${v1}, v2: ${v2} - class1 ${CLASS.getNameFromObject(obj)}, class2 ${CLASS.getNameFromObject(anotherObj)}`)
|
|
180
|
-
// console.log('')
|
|
181
|
-
if ((___NS__isNumber(v1) && ___NS__isNumber(v2)) || (___NS__isString(v1) && ___NS__isString(v2))) {
|
|
182
|
-
const res = (v1 === v2);
|
|
183
|
-
// @ts-ignore
|
|
184
|
-
return res;
|
|
185
|
-
}
|
|
186
|
-
if (compareDeep) {
|
|
187
|
-
return ___NS__isEqual(v1, v2);
|
|
188
|
-
}
|
|
189
|
-
return false;
|
|
190
|
-
}
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
};
|
|
1
|
+
export * from './typescript-class-helpers';
|
|
194
2
|
//# sourceMappingURL=index.js.map
|
package/lib-prod/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
|
package/lib-prod/package.json
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare function getClassName(target: Function): string | undefined;
|
|
2
|
+
export declare function getFromObject(o: Object): any;
|
|
3
|
+
/**
|
|
4
|
+
* PLEASE PROVIDE NAME AS TYPED STRING, NOT VARIABLE
|
|
5
|
+
* Decorator requred for production mode
|
|
6
|
+
* @param name Name of class
|
|
7
|
+
*/
|
|
8
|
+
export declare function CLASS__NS__NAME(className: string): any;
|
|
9
|
+
export declare function CLASS__NS__setName(target: Function, className: string): void;
|
|
10
|
+
export declare function CLASS__NS__getClassNameFromObjInstanceOrClassFn(target: any): string | undefined;
|
|
11
|
+
export declare function CLASS__NS__setClassName(target: Function, className: string): void;
|
|
12
|
+
export declare function CLASS__NS__getBy(className: string | Function): Function;
|
|
13
|
+
export declare function CLASS__NS__getFromObject(o: Object): Function | undefined;
|
|
14
|
+
export declare function CLASS__NS__getName(target: Function): string | undefined;
|
|
15
|
+
export declare function CLASS__NS__getNameFromObject(o: Object): string | undefined;
|
|
16
|
+
export declare const CLASS__NS__getMethodsNames: (classOrClassInstance: any, allMethodsNames?: any[]) => string[];
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import * as FormData from 'form-data'; // @backend
|
|
2
|
+
import { ___NS__isFunction, ___NS__isNil, ___NS__isNull, ___NS__isString, ___NS__isUndefined, ___NS__uniq, CoreModels__NS__ClassNameStaticProperty } from 'tnp-core/lib-prod';
|
|
3
|
+
import { Helpers__NS__log } from 'tnp-core/lib-prod';
|
|
4
|
+
const REGISTRY_SYMBOL = Symbol.for('TAON.CLASS_REGISTRY');
|
|
5
|
+
function getRegistry() {
|
|
6
|
+
const g = globalThis;
|
|
7
|
+
if (!g[REGISTRY_SYMBOL]) {
|
|
8
|
+
g[REGISTRY_SYMBOL] = new Map();
|
|
9
|
+
}
|
|
10
|
+
return g[REGISTRY_SYMBOL];
|
|
11
|
+
}
|
|
12
|
+
const classes = getRegistry();
|
|
13
|
+
export function getClassName(target) {
|
|
14
|
+
if (___NS__isNil(target)) {
|
|
15
|
+
return void 0;
|
|
16
|
+
}
|
|
17
|
+
if (___NS__isString(target)) {
|
|
18
|
+
return target;
|
|
19
|
+
}
|
|
20
|
+
if (target === Date) {
|
|
21
|
+
return 'Date';
|
|
22
|
+
}
|
|
23
|
+
if (target === FormData) {
|
|
24
|
+
return 'FormData';
|
|
25
|
+
}
|
|
26
|
+
if (!___NS__isFunction(target)) {
|
|
27
|
+
// console.log(target);
|
|
28
|
+
Helpers__NS__log(`[typescript-class-helpers][getClassName] target is not a class`);
|
|
29
|
+
return void 0;
|
|
30
|
+
}
|
|
31
|
+
if (!___NS__isNil(target[CoreModels__NS__ClassNameStaticProperty])) {
|
|
32
|
+
return target[CoreModels__NS__ClassNameStaticProperty];
|
|
33
|
+
}
|
|
34
|
+
// special thing when cloning classes
|
|
35
|
+
if (target.name?.startsWith('class_')) {
|
|
36
|
+
return '';
|
|
37
|
+
}
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
export function getFromObject(o) {
|
|
41
|
+
if (___NS__isUndefined(o) || ___NS__isNull(o)) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (o.constructor) {
|
|
45
|
+
return o.constructor;
|
|
46
|
+
}
|
|
47
|
+
const p = Object.getPrototypeOf(o);
|
|
48
|
+
return p && p.constructor;
|
|
49
|
+
}
|
|
50
|
+
const notAllowedAsMethodName = [
|
|
51
|
+
'length',
|
|
52
|
+
'name',
|
|
53
|
+
'arguments',
|
|
54
|
+
'caller',
|
|
55
|
+
'constructor',
|
|
56
|
+
'apply',
|
|
57
|
+
'bind',
|
|
58
|
+
'call',
|
|
59
|
+
'toString',
|
|
60
|
+
'__defineGetter__',
|
|
61
|
+
'__defineSetter__',
|
|
62
|
+
'hasOwnProperty',
|
|
63
|
+
'__lookupGetter__',
|
|
64
|
+
'__lookupSetter__',
|
|
65
|
+
'isPrototypeOf',
|
|
66
|
+
'propertyIsEnumerable',
|
|
67
|
+
'valueOf',
|
|
68
|
+
'__proto__',
|
|
69
|
+
'toLocaleString',
|
|
70
|
+
];
|
|
71
|
+
//namespace CLASS
|
|
72
|
+
/**
|
|
73
|
+
* PLEASE PROVIDE NAME AS TYPED STRING, NOT VARIABLE
|
|
74
|
+
* Decorator requred for production mode
|
|
75
|
+
* @param name Name of class
|
|
76
|
+
*/
|
|
77
|
+
export function CLASS__NS__NAME(className) {
|
|
78
|
+
return function (target) {
|
|
79
|
+
return CLASS__NS__setClassName(target, className);
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export function CLASS__NS__setName(target, className) {
|
|
83
|
+
CLASS__NS__setClassName(target, className);
|
|
84
|
+
}
|
|
85
|
+
export function CLASS__NS__getClassNameFromObjInstanceOrClassFn(target) {
|
|
86
|
+
if (typeof target === 'object') {
|
|
87
|
+
return CLASS__NS__getNameFromObject(target);
|
|
88
|
+
}
|
|
89
|
+
return getClassName(target);
|
|
90
|
+
}
|
|
91
|
+
export function CLASS__NS__setClassName(target, className) {
|
|
92
|
+
target[CoreModels__NS__ClassNameStaticProperty] = className;
|
|
93
|
+
classes.set(className, target);
|
|
94
|
+
}
|
|
95
|
+
export function CLASS__NS__getBy(className) {
|
|
96
|
+
let res;
|
|
97
|
+
if (Array.isArray(className)) {
|
|
98
|
+
if (className.length !== 1) {
|
|
99
|
+
throw `Mapping error... please use proper class names:
|
|
100
|
+
{
|
|
101
|
+
propertyObject: 'MyClassName',
|
|
102
|
+
propertyWithArray: ['MyClassName']
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
`;
|
|
106
|
+
}
|
|
107
|
+
className = className[0];
|
|
108
|
+
}
|
|
109
|
+
if (typeof className === 'function') {
|
|
110
|
+
// TODO QUICK_FIX
|
|
111
|
+
res = className;
|
|
112
|
+
}
|
|
113
|
+
if (className === 'Date') {
|
|
114
|
+
res = Date;
|
|
115
|
+
}
|
|
116
|
+
if (className === 'FormData') {
|
|
117
|
+
res = FormData;
|
|
118
|
+
}
|
|
119
|
+
const classFromMap = classes.get(className);
|
|
120
|
+
return classFromMap ? classFromMap : res;
|
|
121
|
+
}
|
|
122
|
+
export function CLASS__NS__getFromObject(o) {
|
|
123
|
+
if (___NS__isUndefined(o) || ___NS__isNull(o)) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (o.constructor) {
|
|
127
|
+
return o.constructor;
|
|
128
|
+
}
|
|
129
|
+
const p = Object.getPrototypeOf(o);
|
|
130
|
+
return p && p.constructor;
|
|
131
|
+
}
|
|
132
|
+
export function CLASS__NS__getName(target) {
|
|
133
|
+
return getClassName(target);
|
|
134
|
+
}
|
|
135
|
+
export function CLASS__NS__getNameFromObject(o) {
|
|
136
|
+
const fnCLass = CLASS__NS__getFromObject(o);
|
|
137
|
+
return CLASS__NS__getName(fnCLass);
|
|
138
|
+
}
|
|
139
|
+
export const CLASS__NS__getMethodsNames = (classOrClassInstance, allMethodsNames = []) => {
|
|
140
|
+
if (!classOrClassInstance) {
|
|
141
|
+
return allMethodsNames;
|
|
142
|
+
}
|
|
143
|
+
const isClassFunction = ___NS__isFunction(classOrClassInstance);
|
|
144
|
+
const classFun = isClassFunction
|
|
145
|
+
? classOrClassInstance
|
|
146
|
+
: Object.getPrototypeOf(classOrClassInstance);
|
|
147
|
+
const objectToCheck = isClassFunction
|
|
148
|
+
? classOrClassInstance?.prototype
|
|
149
|
+
: classOrClassInstance;
|
|
150
|
+
const prototypeObj = Object.getPrototypeOf(objectToCheck || {});
|
|
151
|
+
const properties = ___NS__uniq([
|
|
152
|
+
...Object.getOwnPropertyNames(objectToCheck || {}),
|
|
153
|
+
...Object.getOwnPropertyNames(prototypeObj || {}),
|
|
154
|
+
...Object.keys(objectToCheck || {}),
|
|
155
|
+
...Object.keys(prototypeObj || {}),
|
|
156
|
+
]).filter(f => !!f && !notAllowedAsMethodName.includes(f));
|
|
157
|
+
properties
|
|
158
|
+
.filter(methodName => typeof objectToCheck[methodName] === 'function')
|
|
159
|
+
.forEach(p => allMethodsNames.push(p));
|
|
160
|
+
if (!classFun ||
|
|
161
|
+
!classFun.constructor ||
|
|
162
|
+
classFun?.constructor?.name === 'Object') {
|
|
163
|
+
return allMethodsNames;
|
|
164
|
+
}
|
|
165
|
+
return CLASS__NS__getMethodsNames(Object.getPrototypeOf(classFun), allMethodsNames);
|
|
166
|
+
};
|
|
167
|
+
//end of namespace CLASS
|
|
168
|
+
//# sourceMappingURL=typescript-class-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-class-helpers.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
|
|
@@ -1,36 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"namespacesMapObj": {
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"Models.ParamConfig": "Models__NS__ParamConfig",
|
|
13
|
-
"Models.MethodConfig": "Models__NS__MethodConfig",
|
|
14
|
-
"Models.ClassMeta": "Models__NS__ClassMeta",
|
|
15
|
-
"Models.ClassConfig": "Models__NS__ClassConfig"
|
|
3
|
+
"CLASS.NAME": "CLASS__NS__NAME",
|
|
4
|
+
"CLASS.setName": "CLASS__NS__setName",
|
|
5
|
+
"CLASS.getClassNameFromObjInstanceOrClassFn": "CLASS__NS__getClassNameFromObjInstanceOrClassFn",
|
|
6
|
+
"CLASS.setClassName": "CLASS__NS__setClassName",
|
|
7
|
+
"CLASS.getBy": "CLASS__NS__getBy",
|
|
8
|
+
"CLASS.getFromObject": "CLASS__NS__getFromObject",
|
|
9
|
+
"CLASS.getName": "CLASS__NS__getName",
|
|
10
|
+
"CLASS.getNameFromObject": "CLASS__NS__getNameFromObject",
|
|
11
|
+
"CLASS.getMethodsNames": "CLASS__NS__getMethodsNames"
|
|
16
12
|
},
|
|
17
13
|
"namespacesReplace": {
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
"Models": [
|
|
29
|
-
"Models__NS__CLASSNAMEOptions",
|
|
30
|
-
"Models__NS__ClassConfig",
|
|
31
|
-
"Models__NS__ClassMeta",
|
|
32
|
-
"Models__NS__MethodConfig",
|
|
33
|
-
"Models__NS__ParamConfig"
|
|
14
|
+
"CLASS": [
|
|
15
|
+
"CLASS__NS__NAME",
|
|
16
|
+
"CLASS__NS__getBy",
|
|
17
|
+
"CLASS__NS__getClassNameFromObjInstanceOrClassFn",
|
|
18
|
+
"CLASS__NS__getFromObject",
|
|
19
|
+
"CLASS__NS__getMethodsNames",
|
|
20
|
+
"CLASS__NS__getName",
|
|
21
|
+
"CLASS__NS__getNameFromObject",
|
|
22
|
+
"CLASS__NS__setClassName",
|
|
23
|
+
"CLASS__NS__setName"
|
|
34
24
|
]
|
|
35
25
|
}
|
|
36
26
|
}
|
package/package.json
CHANGED