typescript-class-helpers 1.0.42 → 1.0.49

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.
Files changed (139) hide show
  1. package/app.d.ts +0 -0
  2. package/app.js +2 -0
  3. package/app.js.map +1 -0
  4. package/browser/README.md +24 -0
  5. package/browser/esm2020/lib/classname.mjs +164 -0
  6. package/browser/esm2020/lib/describe-class.mjs +64 -0
  7. package/browser/esm2020/lib/index.mjs +141 -0
  8. package/browser/esm2020/lib/models.mjs +23 -0
  9. package/browser/esm2020/lib/set-class-name.mjs +96 -0
  10. package/browser/esm2020/lib/storage.mjs +18 -0
  11. package/browser/esm2020/lib/symbols.mjs +11 -0
  12. package/browser/esm2020/public-api.mjs +2 -0
  13. package/browser/esm2020/typescript-class-helpers.mjs +5 -0
  14. package/browser/fesm2015/typescript-class-helpers.mjs +503 -0
  15. package/browser/fesm2015/typescript-class-helpers.mjs.map +1 -0
  16. package/browser/fesm2020/typescript-class-helpers.mjs +503 -0
  17. package/browser/fesm2020/typescript-class-helpers.mjs.map +1 -0
  18. package/{classname.d.ts → browser/lib/classname.d.ts} +3 -3
  19. package/browser/{describe-class.d.ts → lib/describe-class.d.ts} +0 -0
  20. package/{client → browser/lib}/index.d.ts +2 -2
  21. package/browser/{models.d.ts → lib/models.d.ts} +0 -0
  22. package/{client → browser/lib}/set-class-name.d.ts +1 -1
  23. package/browser/{storage.d.ts → lib/storage.d.ts} +0 -0
  24. package/browser/{symbols.d.ts → lib/symbols.d.ts} +0 -0
  25. package/browser/package.json +31 -0
  26. package/browser/public-api.d.ts +1 -0
  27. package/browser/typescript-class-helpers.d.ts +5 -0
  28. package/client/README.md +24 -0
  29. package/client/esm2020/lib/classname.mjs +164 -0
  30. package/client/esm2020/lib/describe-class.mjs +64 -0
  31. package/client/esm2020/lib/index.mjs +141 -0
  32. package/client/esm2020/lib/models.mjs +23 -0
  33. package/client/esm2020/lib/set-class-name.mjs +96 -0
  34. package/client/esm2020/lib/storage.mjs +18 -0
  35. package/client/esm2020/lib/symbols.mjs +11 -0
  36. package/client/esm2020/public-api.mjs +2 -0
  37. package/client/esm2020/typescript-class-helpers.mjs +5 -0
  38. package/client/fesm2015/typescript-class-helpers.mjs +503 -0
  39. package/client/fesm2015/typescript-class-helpers.mjs.map +1 -0
  40. package/client/fesm2020/typescript-class-helpers.mjs +503 -0
  41. package/client/fesm2020/typescript-class-helpers.mjs.map +1 -0
  42. package/client/{classname.d.ts → lib/classname.d.ts} +3 -3
  43. package/client/{describe-class.d.ts → lib/describe-class.d.ts} +0 -0
  44. package/client/lib/index.d.ts +32 -0
  45. package/client/{models.d.ts → lib/models.d.ts} +0 -0
  46. package/{set-class-name.d.ts → client/lib/set-class-name.d.ts} +1 -1
  47. package/client/{storage.d.ts → lib/storage.d.ts} +0 -0
  48. package/client/{symbols.d.ts → lib/symbols.d.ts} +0 -0
  49. package/client/package.json +25 -24
  50. package/client/public-api.d.ts +1 -0
  51. package/client/typescript-class-helpers.d.ts +5 -0
  52. package/index.d.ts +1 -32
  53. package/index.js +3 -148
  54. package/index.js.map +1 -1
  55. package/{browser → lib}/classname.d.ts +0 -0
  56. package/{classname.js → lib/classname.js} +18 -5
  57. package/lib/classname.js.map +1 -0
  58. package/{describe-class.d.ts → lib/describe-class.d.ts} +0 -0
  59. package/{describe-class.js → lib/describe-class.js} +17 -3
  60. package/lib/describe-class.js.map +1 -0
  61. package/{helpers-messages.d.ts → lib/helpers-messages.d.ts} +0 -0
  62. package/{helpers-messages.js → lib/helpers-messages.js} +2 -1
  63. package/lib/helpers-messages.js.map +1 -0
  64. package/{browser → lib}/index.d.ts +0 -0
  65. package/lib/index.js +154 -0
  66. package/lib/index.js.map +1 -0
  67. package/{models.d.ts → lib/models.d.ts} +0 -0
  68. package/{models.js → lib/models.js} +3 -1
  69. package/lib/models.js.map +1 -0
  70. package/{browser → lib}/set-class-name.d.ts +0 -0
  71. package/{set-class-name.js → lib/set-class-name.js} +8 -2
  72. package/lib/set-class-name.js.map +1 -0
  73. package/{storage.d.ts → lib/storage.d.ts} +0 -0
  74. package/{storage.js → lib/storage.js} +2 -1
  75. package/lib/storage.js.map +1 -0
  76. package/{symbols.d.ts → lib/symbols.d.ts} +0 -0
  77. package/{symbols.js → lib/symbols.js} +2 -1
  78. package/lib/symbols.js.map +1 -0
  79. package/package.json +4 -4
  80. package/package.json_tnp.json +2 -1
  81. package/package.json_tnp.json5 +37 -0
  82. package/tmp-environment.json +79 -112
  83. package/browser/classname.js +0 -152
  84. package/browser/classname.js.map +0 -1
  85. package/browser/describe-class.js +0 -51
  86. package/browser/describe-class.js.map +0 -1
  87. package/browser/es5/classname.js +0 -162
  88. package/browser/es5/describe-class.js +0 -66
  89. package/browser/es5/helpers-messages.js +0 -42
  90. package/browser/es5/index.js +0 -211
  91. package/browser/es5/models.js +0 -36
  92. package/browser/es5/set-class-name.js +0 -112
  93. package/browser/es5/storage.js +0 -27
  94. package/browser/es5/symbols.js +0 -16
  95. package/browser/helpers-messages.d.ts +0 -18
  96. package/browser/helpers-messages.js +0 -26
  97. package/browser/helpers-messages.js.map +0 -1
  98. package/browser/index.js +0 -139
  99. package/browser/index.js.map +0 -1
  100. package/browser/models.js +0 -22
  101. package/browser/models.js.map +0 -1
  102. package/browser/set-class-name.js +0 -91
  103. package/browser/set-class-name.js.map +0 -1
  104. package/browser/storage.js +0 -18
  105. package/browser/storage.js.map +0 -1
  106. package/browser/symbols.js +0 -11
  107. package/browser/symbols.js.map +0 -1
  108. package/classname.js.map +0 -1
  109. package/client/classname.js +0 -152
  110. package/client/classname.js.map +0 -1
  111. package/client/describe-class.js +0 -51
  112. package/client/describe-class.js.map +0 -1
  113. package/client/es5/classname.js +0 -162
  114. package/client/es5/describe-class.js +0 -66
  115. package/client/es5/helpers-messages.js +0 -42
  116. package/client/es5/index.js +0 -211
  117. package/client/es5/models.js +0 -36
  118. package/client/es5/set-class-name.js +0 -112
  119. package/client/es5/storage.js +0 -27
  120. package/client/es5/symbols.js +0 -16
  121. package/client/helpers-messages.d.ts +0 -18
  122. package/client/helpers-messages.js +0 -26
  123. package/client/helpers-messages.js.map +0 -1
  124. package/client/index.js +0 -139
  125. package/client/index.js.map +0 -1
  126. package/client/models.js +0 -22
  127. package/client/models.js.map +0 -1
  128. package/client/set-class-name.js +0 -91
  129. package/client/set-class-name.js.map +0 -1
  130. package/client/storage.js +0 -18
  131. package/client/storage.js.map +0 -1
  132. package/client/symbols.js +0 -11
  133. package/client/symbols.js.map +0 -1
  134. package/describe-class.js.map +0 -1
  135. package/helpers-messages.js.map +0 -1
  136. package/models.js.map +0 -1
  137. package/set-class-name.js.map +0 -1
  138. package/storage.js.map +0 -1
  139. package/symbols.js.map +0 -1
@@ -0,0 +1,503 @@
1
+ import { _, Helpers as Helpers$1 } from 'tnp-core/browser';
2
+ export * from 'enum-values';
3
+
4
+ var Models;
5
+ (function (Models) {
6
+ class ParamConfig {
7
+ }
8
+ Models.ParamConfig = ParamConfig;
9
+ class MethodConfig {
10
+ constructor() {
11
+ this.parameters = {};
12
+ }
13
+ }
14
+ Models.MethodConfig = MethodConfig;
15
+ class ClassConfig {
16
+ constructor() {
17
+ // @ts-ignore
18
+ this.singleton = void 0;
19
+ this.injections = [];
20
+ this.vChildren = [];
21
+ this.methods = {};
22
+ }
23
+ }
24
+ Models.ClassConfig = ClassConfig;
25
+ })(Models || (Models = {}));
26
+
27
+ const SYMBOL = {
28
+ MODELS_MAPPING: Symbol(),
29
+ DEFAULT_MODEL: Symbol(),
30
+ CLASSNAMEKEY: Symbol(),
31
+ // SINGLETON: Symbol(),
32
+ CLASSNAMEKEYBROWSER: Symbol(),
33
+ CLASS_META_CONFIG: Symbol(),
34
+ STORAGE: 'classesstorage',
35
+ CLASSES: 'classes',
36
+ };
37
+
38
+ function defaultValues() {
39
+ return _.cloneDeep({
40
+ [SYMBOL.CLASSES]: []
41
+ });
42
+ }
43
+ function getStorage(property) {
44
+ if (typeof property === 'string') {
45
+ const storageInClassStaticProp = getStorage();
46
+ return storageInClassStaticProp[property];
47
+ }
48
+ if (typeof defaultValues.prototype[SYMBOL.STORAGE] === 'undefined') {
49
+ defaultValues.prototype[SYMBOL.STORAGE] = defaultValues();
50
+ }
51
+ return defaultValues.prototype[SYMBOL.STORAGE];
52
+ }
53
+
54
+ function getClasses$1() {
55
+ const s = getStorage();
56
+ return s[SYMBOL.CLASSES];
57
+ }
58
+ // @ts-ignore
59
+ function setClassName(target, className, options) {
60
+ let { classFamily, uniqueKey, classNameInBrowser, singleton } = options || {
61
+ classFamily: void 0,
62
+ uniqueKey: 'id',
63
+ classNameInBrowser: void 0,
64
+ singleton: void 0,
65
+ autoinstance: false
66
+ };
67
+ if (!_.isUndefined(singleton) && _.isBoolean(singleton) && singleton) {
68
+ singleton = 'first-instance';
69
+ }
70
+ if (!uniqueKey) {
71
+ uniqueKey = 'id';
72
+ }
73
+ if (target) {
74
+ // @ts-ignore
75
+ target[SYMBOL.CLASSNAMEKEY] = className;
76
+ // @ts-ignore
77
+ target[SYMBOL.CLASSNAMEKEYBROWSER] = classNameInBrowser;
78
+ }
79
+ const existed = getClasses$1()
80
+ .find(f => f.className === className);
81
+ if (existed) {
82
+ existed.target = target;
83
+ }
84
+ else {
85
+ const res = {
86
+ className,
87
+ classNameInBrowser,
88
+ target,
89
+ uniqueKey,
90
+ classFamily
91
+ };
92
+ if (_.isUndefined(classFamily)) {
93
+ Object.defineProperty(res, 'classFamily', {
94
+ get: function () {
95
+ const parent = Object.getPrototypeOf(target);
96
+ if (!_.isFunction(parent) || parent.name === 'Object' || parent.name === '') {
97
+ return className;
98
+ }
99
+ const classNameNew = CLASSNAME.getClassName(parent);
100
+ return CLASSNAME.getClassFamilyByClassName(classNameNew);
101
+ }
102
+ });
103
+ }
104
+ getClasses$1().push(res);
105
+ }
106
+ const Original = target;
107
+ if (singleton === 'first-instance' || singleton === 'last-instance') {
108
+ const obj = {
109
+ // @ts-ignore
110
+ decoratedConstructor: function (...args) {
111
+ // console.log(`DECORATED CONSTRUCTOR OF ${Original.name}`)
112
+ const context = Original.apply(this, args);
113
+ const existedSingleton = CLASS.getSingleton(Original);
114
+ if (!existedSingleton || singleton === 'last-instance') {
115
+ CLASS.setSingletonObj(Original, this);
116
+ CLASS.setSingletonObj(obj.decoratedConstructor, this);
117
+ // console.log(`Singleton created for "${className}", mode: ${singleton} `);
118
+ }
119
+ else {
120
+ // console.log('ingleton exists')
121
+ }
122
+ return context;
123
+ }
124
+ };
125
+ // copy prototype so intanceof operator still works
126
+ obj.decoratedConstructor.prototype = Original.prototype;
127
+ // @ts-ignore
128
+ Object.keys(Original).forEach((name) => { obj.decoratedConstructor[name] = Original[name]; });
129
+ Object.defineProperty(obj.decoratedConstructor, 'name', {
130
+ value: className,
131
+ configurable: true,
132
+ });
133
+ // (obj.decoratedConstructor as any).name = className;
134
+ // console.log('return new contruor', decoratedConstructor)
135
+ return obj.decoratedConstructor;
136
+ }
137
+ else if (singleton === 'autoinstance') {
138
+ // console.log(`AUTOINSTANCE FOR ${target.name}`)
139
+ const auto = new Original();
140
+ CLASS.setSingletonObj(Original, auto);
141
+ // console.log(`Singleton created for "${className}", mode: ${singleton} `)
142
+ }
143
+ }
144
+
145
+ function getClasses() {
146
+ const s = getStorage();
147
+ return s[SYMBOL.CLASSES];
148
+ }
149
+ var CLASSNAME;
150
+ (function (CLASSNAME_1) {
151
+ function getClassConfig(target, configs = []) {
152
+ if (!_.isFunction(target)) {
153
+ throw `[typescript-class-helper][getClassConfig] Cannot get class config from: ${target}`;
154
+ }
155
+ const meta = SYMBOL.CLASS_META_CONFIG;
156
+ let config;
157
+ // @ts-ignore
158
+ if (!target[meta]) {
159
+ config = new Models.ClassConfig();
160
+ config.classReference = target;
161
+ }
162
+ else {
163
+ // @ts-ignore
164
+ config = target[meta];
165
+ var parentClass = Object.getPrototypeOf(target);
166
+ if (config.classReference === parentClass) {
167
+ const childConfig = new Models.ClassConfig();
168
+ childConfig.vParent = config;
169
+ childConfig.classReference = target;
170
+ // @ts-ignore
171
+ config.vChildren.push(childConfig);
172
+ config = childConfig;
173
+ }
174
+ }
175
+ // @ts-ignore
176
+ target[meta] = config;
177
+ configs.push(config);
178
+ return (_.isFunction(parentClass) && parentClass.name !== '') ? getClassConfig(parentClass, configs) : configs;
179
+ }
180
+ CLASSNAME_1.getClassConfig = getClassConfig;
181
+ /**
182
+ * PLEASE PROVIDE NAME AS TYPED STRING, NOT VARIABLE
183
+ * Decorator requred for production mode
184
+ * @param name Name of class
185
+ */
186
+ function CLASSNAME(className, options) {
187
+ return function (target) {
188
+ // console.log(`CLASSNAME Inited ${className}`)
189
+ return setClassName(target, className, options);
190
+ };
191
+ }
192
+ CLASSNAME_1.CLASSNAME = CLASSNAME;
193
+ function getClassName(target, production = false) {
194
+ if (_.isString(target)) {
195
+ console.trace(target);
196
+ console.warn(`[typescript-class-helpers][getClassName] target is string: '${target}', produciton: ${production}`);
197
+ return target;
198
+ }
199
+ if (!_.isFunction(target)) {
200
+ console.trace(target);
201
+ console.error(`[typescript-class-helpers][getClassName] target is not a class`);
202
+ return void 0;
203
+ }
204
+ // @ts-ignore
205
+ if (Helpers$1.isBrowser && _.isString(target[SYMBOL.CLASSNAMEKEYBROWSER])) {
206
+ // @ts-ignore
207
+ return target[SYMBOL.CLASSNAMEKEYBROWSER];
208
+ }
209
+ // @ts-ignore
210
+ if (target[SYMBOL.CLASSNAMEKEY]) {
211
+ // @ts-ignore
212
+ return target[SYMBOL.CLASSNAMEKEY];
213
+ }
214
+ if (production) {
215
+ console.error(`[typescript-class-helpers][getClassName(...)](PRODUCTION MODE ERROR)
216
+ Please use decoartor @CLASSNAME for each entity or controller
217
+ This is preventing class name problem in minified code.
218
+
219
+ import { CLASS } from 'typescript-class-helpers';
220
+
221
+ @CLASS.NAME('ExampleClass')
222
+ class ExampleClass {
223
+ ...
224
+ }
225
+ `, target);
226
+ }
227
+ return target.name;
228
+ }
229
+ CLASSNAME_1.getClassName = getClassName;
230
+ // @ts-ignore
231
+ function getObjectIndexPropertyValue(obj) {
232
+ const className = Helpers.getNameFromObject(obj);
233
+ // console.log('className',className)
234
+ let c = getClasses().find(c => c.className === className);
235
+ // console.log('c',c)
236
+ if (c) {
237
+ return c.uniqueKey;
238
+ }
239
+ }
240
+ CLASSNAME_1.getObjectIndexPropertyValue = getObjectIndexPropertyValue;
241
+ // @ts-ignore
242
+ function getClassFamilyByClassName(className) {
243
+ let c = getClasses().find(c => c.className === className);
244
+ // console.log('getClasses()', getClasses())
245
+ if (c) {
246
+ return c.classFamily;
247
+ }
248
+ }
249
+ CLASSNAME_1.getClassFamilyByClassName = getClassFamilyByClassName;
250
+ // @ts-ignore
251
+ function getObjectClassFamily(obj) {
252
+ const className = Helpers.getNameFromObject(obj);
253
+ // console.log('className',className)
254
+ let c = getClasses().find(c => c.className === className);
255
+ // console.log('c',c)
256
+ if (c) {
257
+ return c.classFamily;
258
+ }
259
+ }
260
+ CLASSNAME_1.getObjectClassFamily = getObjectClassFamily;
261
+ function getObjectIndexValue(obj) {
262
+ const className = Helpers.getNameFromObject(obj);
263
+ // console.log('className',className)
264
+ let c = getClasses().find(c => c.className === className);
265
+ // console.log('c',c)
266
+ if (c && _.isString(c.uniqueKey)) {
267
+ return obj[c.uniqueKey];
268
+ }
269
+ }
270
+ CLASSNAME_1.getObjectIndexValue = getObjectIndexValue;
271
+ function getClassBy(className) {
272
+ let res;
273
+ if (Array.isArray(className)) {
274
+ if (className.length !== 1) {
275
+ throw `Mapping error... please use proper class names:
276
+ {
277
+ propertyObject: 'MyClassName',
278
+ propertyWithArray: ['MyClassName']
279
+ }
280
+
281
+ `;
282
+ }
283
+ className = className[0];
284
+ }
285
+ if (typeof className === 'function') { // TODO QUICK_FIX
286
+ res = className;
287
+ }
288
+ if (className === 'Date') {
289
+ res = Date;
290
+ }
291
+ let c = getClasses().find(c => c.className === className);
292
+ if (c) {
293
+ res = c.target;
294
+ }
295
+ // console.log(`getClassBy "${className} return \n\n ${res} \n\n`)
296
+ // @ts-ignore
297
+ return res;
298
+ }
299
+ CLASSNAME_1.getClassBy = getClassBy;
300
+ })(CLASSNAME || (CLASSNAME = {}));
301
+
302
+ /**
303
+ * @DEPRECATED
304
+ * Describe fields assigned in class
305
+ */
306
+ const FRegEx = new RegExp(/(?:this\.)(.+?(?= ))/g);
307
+ function describeFromClassStringify(target, parent = false) {
308
+ // @ts-ignore
309
+ var result = [];
310
+ if (parent) {
311
+ var proto = Object.getPrototypeOf(target.prototype);
312
+ if (proto) {
313
+ // @ts-ignore
314
+ result = result.concat(describeFromClassStringify(proto.constructor, parent));
315
+ }
316
+ }
317
+ result = result.concat(target.toString().match(FRegEx) || []);
318
+ return result.map(prop => prop.replace('this.', ''));
319
+ }
320
+ /**
321
+ * Describe fields assigne through @DefaultModelWithMapping decorator
322
+ * without functions
323
+ */
324
+ function describeByDefaultModelsAndMapping(target) {
325
+ let res = {};
326
+ if (target) {
327
+ // @ts-ignore
328
+ if (target[SYMBOL.DEFAULT_MODEL]) {
329
+ // @ts-ignore
330
+ Object.keys(target[SYMBOL.DEFAULT_MODEL])
331
+ .filter(key => {
332
+ // @ts-ignore
333
+ return !_.isFunction(target[SYMBOL.DEFAULT_MODEL][key]);
334
+ })
335
+ .forEach(key => {
336
+ // @ts-ignore
337
+ return res[key] = null;
338
+ });
339
+ }
340
+ // @ts-ignore
341
+ let mapping = target[SYMBOL.MODELS_MAPPING];
342
+ if (_.isArray(mapping)) {
343
+ mapping.forEach(m => {
344
+ Object.keys(m)
345
+ .forEach(key => {
346
+ // @ts-ignore
347
+ res[key] = null;
348
+ });
349
+ });
350
+ }
351
+ else if (mapping) {
352
+ Object.keys(mapping)
353
+ .forEach(key => {
354
+ // @ts-ignore
355
+ res[key] = null;
356
+ });
357
+ }
358
+ }
359
+ let propNames = Object.keys(res).filter(f => !!f);
360
+ propNames = (!propNames.includes('id') ? ['id'] : []).concat(propNames);
361
+ return propNames;
362
+ }
363
+
364
+ class Helpers {
365
+ static getBy(className) {
366
+ return CLASSNAME.getClassBy(className);
367
+ }
368
+ static getFromObject(o) {
369
+ if (_.isUndefined(o) || _.isNull(o)) {
370
+ return;
371
+ }
372
+ if (o.constructor) {
373
+ return o.constructor;
374
+ }
375
+ const p = Object.getPrototypeOf(o);
376
+ return p && p.constructor;
377
+ }
378
+ static getName(target, production = false) {
379
+ return CLASSNAME.getClassName(target, production);
380
+ }
381
+ static getNameFromObject(o) {
382
+ const fnCLass = this.getFromObject(o);
383
+ return this.getName(fnCLass);
384
+ }
385
+ static getConfig(target) {
386
+ return CLASSNAME.getClassConfig(target);
387
+ }
388
+ static describeProperites(target) {
389
+ const d1 = describeFromClassStringify(target);
390
+ const d2 = describeByDefaultModelsAndMapping(target);
391
+ let uniq = {};
392
+ // @ts-ignore
393
+ d1.concat(d2).forEach(p => uniq[p] = p);
394
+ return Object.keys(uniq)
395
+ .filter(d => !!d)
396
+ .filter(d => typeof target.prototype[d] !== 'function');
397
+ }
398
+ }
399
+ const CLASS = {
400
+ NAME: CLASSNAME.CLASSNAME,
401
+ setName: setClassName,
402
+ getBy: Helpers.getBy,
403
+ getSingleton(target) {
404
+ if (typeof target !== 'function') {
405
+ console.error(`[typescript-class-helpers][setSingletonObj] Type of target is not a function`);
406
+ return;
407
+ }
408
+ const config = Helpers.getConfig(target)[0];
409
+ // console.log(`getSingleton for ${target.name}: `, config.singleton)
410
+ return config.singleton;
411
+ },
412
+ setSingletonObj(target, singletonObject) {
413
+ // console.log('SET SINGLETON', singletonObject)
414
+ if (typeof target !== 'function') {
415
+ console.error(`[typescript-class-helpers][setSingletonObj] Type of target is not a function`);
416
+ return;
417
+ }
418
+ if (Array.isArray(singletonObject)) {
419
+ console.error(`[typescript-class-helpers][setSingletonObj] Singleton instance cant be an array`);
420
+ return;
421
+ }
422
+ if (typeof singletonObject !== 'object') {
423
+ console.error(`[typescript-class-helpers][setSingletonObj] Singleton instance cant must be a object`);
424
+ return;
425
+ }
426
+ const className = CLASS.getName(target);
427
+ // console.log(`SINGLETON SET for TARGET ${className}`)
428
+ const config = Helpers.getConfig(target)[0];
429
+ if (config.singleton) {
430
+ console.warn(`[typescript-class-helpers] You are trying to set singleton of "${className}" second time with different object.`);
431
+ }
432
+ config.singleton = singletonObject;
433
+ },
434
+ getConfig: Helpers.getConfig,
435
+ getFromObject: Helpers.getFromObject,
436
+ getName: Helpers.getName,
437
+ getNameFromObject: Helpers.getNameFromObject,
438
+ describeProperites: Helpers.describeProperites,
439
+ OBJECT: (obj) => {
440
+ return {
441
+ get indexValue() {
442
+ return CLASSNAME.getObjectIndexValue(obj);
443
+ },
444
+ get indexProperty() {
445
+ return CLASSNAME.getObjectIndexPropertyValue(obj);
446
+ },
447
+ get isClassObject() {
448
+ if (!_.isObject(obj) || _.isArray(obj) || _.isRegExp(obj) ||
449
+ _.isBuffer(obj) || _.isArrayBuffer(obj)) {
450
+ return false;
451
+ }
452
+ if (_.isDate(obj)) {
453
+ return true;
454
+ }
455
+ const className = CLASS.getNameFromObject(obj);
456
+ return _.isString(className) && className !== 'Object';
457
+ },
458
+ isEqual: (anotherObj, compareDeep = false) => {
459
+ if (!CLASS.OBJECT(obj).isClassObject || !CLASS.OBJECT(anotherObj).isClassObject) {
460
+ return false;
461
+ }
462
+ if (obj === anotherObj) {
463
+ // console.log(`EQ v1: , v2: - class1 ${CLASS.getNameFromObject(obj)}, class2 ${CLASS.getNameFromObject(anotherObj)}`, obj, anotherObj)
464
+ return true;
465
+ }
466
+ const v1 = CLASSNAME.getObjectIndexValue(obj);
467
+ const v2 = CLASSNAME.getObjectIndexValue(anotherObj);
468
+ const f1 = CLASSNAME.getObjectClassFamily(obj);
469
+ const f2 = CLASSNAME.getObjectClassFamily(anotherObj);
470
+ const isFamilyDiff = (!_.isString(f1) || !_.isString(f2) || (f1 !== f2));
471
+ // console.log(`DIFF FAMILY ${isFamilyDiff} v1: ${CLASSNAME.getObjectClassFamily(obj)}, v2: ${CLASSNAME.getObjectClassFamily(anotherObj)} - class1 ${CLASS.getNameFromObject(obj)}, class2 ${CLASS.getNameFromObject(anotherObj)}`)
472
+ if (isFamilyDiff) {
473
+ // console.log(`DIFF v1: ${v1}, v2: ${v2} - class1 ${CLASS.getNameFromObject(obj)}, class2 ${CLASS.getNameFromObject(anotherObj)}`)
474
+ return false;
475
+ }
476
+ if (!CLASS.OBJECT(obj).isClassObject || !CLASS.OBJECT(anotherObj).isClassObject) {
477
+ // console.log(`NOT CLASS v1: ${v1}, v2: ${v2} - class1 ${CLASS.getNameFromObject(obj)}, class2 ${CLASS.getNameFromObject(anotherObj)}`)
478
+ return false;
479
+ }
480
+ // console.log(`v1: ${v1} ,class ${CLASS.getNameFromObject(obj)} ,prop: ${CLASS.OBJECT(obj).indexProperty}`)
481
+ // console.log(`v2: ${v2} ,class ${CLASS.getNameFromObject(anotherObj)} ,prop: ${CLASS.OBJECT(anotherObj).indexProperty}`)
482
+ // console.log(`v1: ${v1}, v2: ${v2} - class1 ${CLASS.getNameFromObject(obj)}, class2 ${CLASS.getNameFromObject(anotherObj)}`)
483
+ // console.log('')
484
+ if ((_.isNumber(v1) && _.isNumber(v2)) || (_.isString(v1) && _.isString(v2))) {
485
+ const res = (v1 === v2);
486
+ // @ts-ignore
487
+ return res;
488
+ }
489
+ if (compareDeep) {
490
+ return _.isEqual(v1, v2);
491
+ }
492
+ return false;
493
+ }
494
+ };
495
+ }
496
+ };
497
+
498
+ /**
499
+ * Generated bundle index. Do not edit.
500
+ */
501
+
502
+ export { CLASS, Helpers, Models, SYMBOL };
503
+ //# sourceMappingURL=typescript-class-helpers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-class-helpers.mjs","sources":["../../../tmp-libs-for-bundle/typescript-class-helpers/projects/typescript-class-helpers/src/lib/models.ts","../../../tmp-libs-for-bundle/typescript-class-helpers/projects/typescript-class-helpers/src/lib/symbols.ts","../../../tmp-libs-for-bundle/typescript-class-helpers/projects/typescript-class-helpers/src/lib/storage.ts","../../../tmp-libs-for-bundle/typescript-class-helpers/projects/typescript-class-helpers/src/lib/set-class-name.ts","../../../tmp-libs-for-bundle/typescript-class-helpers/projects/typescript-class-helpers/src/lib/classname.ts","../../../tmp-libs-for-bundle/typescript-class-helpers/projects/typescript-class-helpers/src/lib/describe-class.ts","../../../tmp-libs-for-bundle/typescript-class-helpers/projects/typescript-class-helpers/src/lib/index.ts","../../../tmp-libs-for-bundle/typescript-class-helpers/projects/typescript-class-helpers/src/typescript-class-helpers.ts"],"sourcesContent":["\n\nimport { ConfigModels } from 'tnp-config/browser';\n\nexport namespace Models {\n\n\n export type CLASSNAMEOptions = {\n uniqueKey?: string,\n /**\n * autoinstance - create instance of singleton automaticly inside decorator\n * first-instance - use first instace of created class as decorator\n */\n singleton?: 'autoinstance' | 'first-instance' | 'last-instance' | boolean,\n classFamily?: string,\n classNameInBrowser?: string,\n }\n\n export class ParamConfig {\n paramName: string;\n paramType: ConfigModels.ParamType;\n index: number;\n defaultType: any;\n expireInSeconds?: number;\n }\n\n export class MethodConfig {\n methodName: string;\n path: string;\n descriptor: PropertyDescriptor;\n type: ConfigModels.HttpMethod;\n realtimeUpdate: boolean;\n\n parameters: { [paramName: string]: ParamConfig } = {};\n }\n\n export interface ClassMeta {\n uniqueKey?: string;\n className?: string;\n classFamily?: string;\n classNameInBrowser?: string;\n target?: Function;\n }\n\n export class ClassConfig {\n browserTransformFn?: (entity: any) => any;\n // @ts-ignore\n singleton: Object = void 0;\n injections: { getter: Function, propertyName: string; }[] = [];\n calculatedPath: string;\n path: string;\n vChildren?: ClassConfig[] = [];\n vParent?: ClassConfig;\n classReference: Function;\n methods: { [methodName: string]: MethodConfig } = {};\n }\n\n}\n","\n\nexport const SYMBOL = {\n MODELS_MAPPING: Symbol(),\n DEFAULT_MODEL: Symbol(),\n CLASSNAMEKEY: Symbol(),\n // SINGLETON: Symbol(),\n CLASSNAMEKEYBROWSER: Symbol(),\n CLASS_META_CONFIG: Symbol(),\n STORAGE: 'classesstorage',\n CLASSES: 'classes',\n}\n","\n\nimport { Helpers } from 'tnp-core/browser';\nimport { SYMBOL } from './symbols';\nimport { _ } from 'tnp-core/browser';\n\nfunction defaultValues() {\n return _.cloneDeep({\n [SYMBOL.CLASSES]: []\n })\n}\n\nexport function getStorage<T = any>(property?: string): T {\n\n\n\n if (typeof property === 'string') {\n\n const storageInClassStaticProp = getStorage();\n return storageInClassStaticProp[property]\n }\n\n if (typeof defaultValues.prototype[SYMBOL.STORAGE] === 'undefined') {\n defaultValues.prototype[SYMBOL.STORAGE] = defaultValues()\n }\n return defaultValues.prototype[SYMBOL.STORAGE]\n}\n\n","\n\nimport { _ } from 'tnp-core/browser';\nimport { SYMBOL } from './symbols';\nimport { Models } from './models';\nimport { getStorage } from './storage';\nimport { CLASSNAME } from './classname';\nimport { CLASS } from './index';\n\n\nfunction getClasses(): Models.ClassMeta[] {\n const s = getStorage();\n return s[SYMBOL.CLASSES] as any;\n}\n\n// @ts-ignore\nexport function setClassName(target: Function, className: string, options?: Models.CLASSNAMEOptions) {\n\n let { classFamily, uniqueKey, classNameInBrowser, singleton } = options || {\n classFamily: void 0,\n uniqueKey: 'id',\n classNameInBrowser: void 0,\n singleton: void 0,\n autoinstance: false\n } as Models.CLASSNAMEOptions;\n\n if (!_.isUndefined(singleton) && _.isBoolean(singleton) && singleton) {\n singleton = 'first-instance'\n }\n\n if (!uniqueKey) {\n uniqueKey = 'id'\n }\n\n if (target) {\n // @ts-ignore\n target[SYMBOL.CLASSNAMEKEY] = className;\n // @ts-ignore\n target[SYMBOL.CLASSNAMEKEYBROWSER] = classNameInBrowser;\n }\n\n const existed = (getClasses() as { className: string; target: Function; }[])\n .find(f => f.className === className)\n\n if (existed) {\n existed.target = target;\n } else {\n const res = {\n className,\n classNameInBrowser,\n target,\n uniqueKey,\n classFamily\n }\n\n if (_.isUndefined(classFamily)) {\n Object.defineProperty(res, 'classFamily', {\n get: function () {\n const parent = Object.getPrototypeOf(target);\n if (!_.isFunction(parent) || parent.name === 'Object' || parent.name === '') {\n return className;\n }\n const classNameNew = CLASSNAME.getClassName(parent)\n return CLASSNAME.getClassFamilyByClassName(classNameNew)\n }\n })\n }\n getClasses().push(res)\n }\n const Original = target;\n\n\n if (singleton === 'first-instance' || singleton === 'last-instance') {\n const obj = {\n // @ts-ignore\n decoratedConstructor: function (...args) {\n // console.log(`DECORATED CONSTRUCTOR OF ${Original.name}`)\n const context = Original.apply(this, args);\n\n const existedSingleton = CLASS.getSingleton(Original)\n if (!existedSingleton || singleton === 'last-instance') {\n CLASS.setSingletonObj(Original, this)\n CLASS.setSingletonObj(obj.decoratedConstructor, this)\n // console.log(`Singleton created for \"${className}\", mode: ${singleton} `);\n }\n else {\n // console.log('ingleton exists')\n }\n\n return context;\n }\n };\n\n // copy prototype so intanceof operator still works\n obj.decoratedConstructor.prototype = Original.prototype;\n // @ts-ignore\n Object.keys(Original).forEach((name: string) => { obj.decoratedConstructor[name] = (<any>Original)[name]; });\n Object.defineProperty(obj.decoratedConstructor, 'name', {\n value: className,\n configurable: true,\n })\n // (obj.decoratedConstructor as any).name = className;\n // console.log('return new contruor', decoratedConstructor)\n return obj.decoratedConstructor;\n } else if (singleton === 'autoinstance') {\n\n // console.log(`AUTOINSTANCE FOR ${target.name}`)\n const auto = new (Original as any)();\n CLASS.setSingletonObj(Original, auto)\n // console.log(`Singleton created for \"${className}\", mode: ${singleton} `)\n\n }\n}\n","\n\nimport { _ } from 'tnp-core/browser';\nimport { Models } from './models';\nimport { SYMBOL } from './symbols';\nimport { Helpers } from './index';\nimport { Helpers as ConfigHelpers } from 'tnp-core/browser';\nimport { getStorage } from './storage';\nimport { setClassName } from './set-class-name';\n\nfunction getClasses(): Models.ClassMeta[] {\n const s = getStorage();\n return s[SYMBOL.CLASSES] as any;\n}\n\nexport namespace CLASSNAME {\n\n export function\n getClassConfig(target: Function, configs: Models.ClassConfig[] = []): Models.ClassConfig[] {\n if (!_.isFunction(target)) {\n throw `[typescript-class-helper][getClassConfig] Cannot get class config from: ${target}`\n }\n\n const meta = SYMBOL.CLASS_META_CONFIG;\n let config: Models.ClassConfig;\n\n // @ts-ignore\n if (!target[meta]) {\n config = new Models.ClassConfig();\n config.classReference = target;\n } else {\n // @ts-ignore\n config = target[meta];\n var parentClass = Object.getPrototypeOf(target)\n if (config.classReference === parentClass) {\n const childConfig = new Models.ClassConfig();\n childConfig.vParent = config;\n childConfig.classReference = target;\n // @ts-ignore\n config.vChildren.push(childConfig)\n config = childConfig;\n }\n }\n // @ts-ignore\n target[meta] = config;\n configs.push(config);\n return (_.isFunction(parentClass) && parentClass.name !== '') ? getClassConfig(parentClass, configs) : configs;\n }\n\n\n\n\n /**\n * PLEASE PROVIDE NAME AS TYPED STRING, NOT VARIABLE\n * Decorator requred for production mode\n * @param name Name of class\n */\n export function CLASSNAME(className: string,\n options?: Models.CLASSNAMEOptions) {\n return function (target: Function) {\n // console.log(`CLASSNAME Inited ${className}`)\n return setClassName(target, className, options);\n } as any;\n }\n\n export function getClassName(target: Function, production = false) {\n if (_.isString(target)) {\n console.trace(target);\n console.warn(`[typescript-class-helpers][getClassName] target is string: '${target}', produciton: ${production}`)\n return target;\n }\n if (!_.isFunction(target)) {\n console.trace(target);\n console.error(`[typescript-class-helpers][getClassName] target is not a class`)\n return void 0;\n }\n\n // @ts-ignore\n if (ConfigHelpers.isBrowser && _.isString(target[SYMBOL.CLASSNAMEKEYBROWSER])) {\n // @ts-ignore\n return target[SYMBOL.CLASSNAMEKEYBROWSER];\n }\n // @ts-ignore\n if (target[SYMBOL.CLASSNAMEKEY]) {\n // @ts-ignore\n return target[SYMBOL.CLASSNAMEKEY];\n }\n if (production) {\n console.error(`[typescript-class-helpers][getClassName(...)](PRODUCTION MODE ERROR)\n Please use decoartor @CLASSNAME for each entity or controller\n This is preventing class name problem in minified code.\n\n import { CLASS } from 'typescript-class-helpers';\n\n @CLASS.NAME('ExampleClass')\n class ExampleClass {\n ...\n }\n `, target)\n }\n return target.name;\n }\n\n // @ts-ignore\n export function getObjectIndexPropertyValue(obj: any) {\n const className = Helpers.getNameFromObject(obj);\n // console.log('className',className)\n let c = getClasses().find(c => c.className === className);\n // console.log('c',c)\n if (c) {\n return c.uniqueKey;\n }\n }\n\n // @ts-ignore\n export function getClassFamilyByClassName(className: string) {\n let c = getClasses().find(c => c.className === className);\n // console.log('getClasses()', getClasses())\n if (c) {\n return c.classFamily;\n }\n }\n\n // @ts-ignore\n export function getObjectClassFamily(obj: any) {\n const className = Helpers.getNameFromObject(obj);\n // console.log('className',className)\n let c = getClasses().find(c => c.className === className);\n // console.log('c',c)\n if (c) {\n return c.classFamily;\n }\n }\n\n export function getObjectIndexValue(obj: any) {\n const className = Helpers.getNameFromObject(obj);\n // console.log('className',className)\n let c = getClasses().find(c => c.className === className);\n // console.log('c',c)\n if (c && _.isString(c.uniqueKey)) {\n return obj[c.uniqueKey];\n }\n }\n\n export function getClassBy(className: string | Function): Function {\n let res;\n if (Array.isArray(className)) {\n if (className.length !== 1) {\n throw `Mapping error... please use proper class names:\n {\n propertyObject: 'MyClassName',\n propertyWithArray: ['MyClassName']\n }\n\n `\n }\n className = className[0]\n }\n if (typeof className === 'function') { // TODO QUICK_FIX\n res = className;\n }\n if (className === 'Date') {\n res = Date;\n }\n\n let c = getClasses().find(c => c.className === className);\n\n if (c) {\n res = c.target;\n }\n // console.log(`getClassBy \"${className} return \\n\\n ${res} \\n\\n`)\n // @ts-ignore\n return res;\n }\n\n}\n","\n\nimport { _ } from 'tnp-core/browser';\nimport { SYMBOL } from './symbols';\n\n\n\n/**\n * @DEPRECATED\n * Describe fields assigned in class\n */\nconst FRegEx = new RegExp(/(?:this\\.)(.+?(?= ))/g);\nexport function describeFromClassStringify(target: Function, parent = false): string[] {\n // @ts-ignore\n var result = [];\n if (parent) {\n var proto = Object.getPrototypeOf(target.prototype);\n if (proto) {\n // @ts-ignore\n result = result.concat(describeFromClassStringify(proto.constructor, parent));\n }\n }\n result = result.concat(target.toString().match(FRegEx) || []);\n return result.map(prop => prop.replace('this.', ''))\n\n}\n\n/**\n * Describe fields assigne through @DefaultModelWithMapping decorator\n * without functions\n */\nexport function describeByDefaultModelsAndMapping(target: Function): string[] {\n let res = {}\n if (target) {\n // @ts-ignore\n if (target[SYMBOL.DEFAULT_MODEL]) {\n // @ts-ignore\n Object.keys(target[SYMBOL.DEFAULT_MODEL])\n .filter(key => {\n // @ts-ignore\n return !_.isFunction(target[SYMBOL.DEFAULT_MODEL][key]);\n })\n .forEach(key => {\n // @ts-ignore\n return res[key] = null;\n });\n }\n // @ts-ignore\n let mapping = target[SYMBOL.MODELS_MAPPING];\n if (_.isArray(mapping)) {\n mapping.forEach(m => {\n Object.keys(m)\n .forEach(key => {\n // @ts-ignore\n res[key] = null;\n });\n })\n } else if (mapping) {\n\n Object.keys(mapping)\n .forEach(key => {\n // @ts-ignore\n res[key] = null;\n });\n }\n }\n\n let propNames = Object.keys(res).filter(f => !!f);\n propNames = (!propNames.includes('id') ? ['id'] : []).concat(propNames);\n return propNames;\n}\n","\n\nimport { _ } from 'tnp-core/browser';\nimport { CLASSNAME } from './classname';\nimport { describeFromClassStringify, describeByDefaultModelsAndMapping } from './describe-class';\nimport { Models } from './models';\nimport { setClassName } from './set-class-name';\n\nexport { Models } from './models';\nexport { SYMBOL } from './symbols';\n\nexport class Helpers {\n\n static getBy(className: string | Function) {\n return CLASSNAME.getClassBy(className);\n }\n\n static getFromObject(o: Object) {\n if (_.isUndefined(o) || _.isNull(o)) {\n return;\n }\n if (o.constructor) {\n return o.constructor;\n }\n const p = Object.getPrototypeOf(o)\n return p && p.constructor;\n }\n\n static getName(target: Function, production = false) {\n return CLASSNAME.getClassName(target, production) as string;\n }\n\n static getNameFromObject(o: Object) {\n const fnCLass = this.getFromObject(o);\n return this.getName(fnCLass);\n }\n\n static getConfig(target: Function): Models.ClassConfig[] {\n return CLASSNAME.getClassConfig(target)\n }\n\n static describeProperites(target: Function) {\n const d1 = describeFromClassStringify(target);\n const d2 = describeByDefaultModelsAndMapping(target);\n let uniq = {};\n // @ts-ignore\n d1.concat(d2).forEach(p => uniq[p] = p);\n return Object.keys(uniq)\n .filter(d => !!d)\n .filter(d => typeof target.prototype[d] !== 'function')\n }\n\n}\n\n\nexport const CLASS = {\n NAME: CLASSNAME.CLASSNAME,\n setName: setClassName,\n getBy: Helpers.getBy,\n getSingleton<T = any>(target: Function) {\n if (typeof target !== 'function') {\n console.error(`[typescript-class-helpers][setSingletonObj] Type of target is not a function`)\n return\n }\n const config = Helpers.getConfig(target)[0]\n // console.log(`getSingleton for ${target.name}: `, config.singleton)\n\n return config.singleton as T;\n },\n setSingletonObj(target: Function, singletonObject: any) {\n // console.log('SET SINGLETON', singletonObject)\n if (typeof target !== 'function') {\n console.error(`[typescript-class-helpers][setSingletonObj] Type of target is not a function`)\n return\n }\n\n if (Array.isArray(singletonObject)) {\n console.error(`[typescript-class-helpers][setSingletonObj] Singleton instance cant be an array`)\n return\n }\n\n if (typeof singletonObject !== 'object') {\n console.error(`[typescript-class-helpers][setSingletonObj] Singleton instance cant must be a object`)\n return\n }\n\n const className = CLASS.getName(target);\n\n\n // console.log(`SINGLETON SET for TARGET ${className}`)\n const config = Helpers.getConfig(target)[0]\n\n if (config.singleton) {\n console.warn(`[typescript-class-helpers] You are trying to set singleton of \"${className}\" second time with different object.`)\n }\n\n config.singleton = singletonObject;\n },\n getConfig: Helpers.getConfig,\n getFromObject: Helpers.getFromObject,\n getName: Helpers.getName,\n getNameFromObject: Helpers.getNameFromObject,\n describeProperites: Helpers.describeProperites,\n OBJECT: (obj: any) => {\n return {\n get indexValue() {\n return CLASSNAME.getObjectIndexValue(obj);\n },\n get indexProperty() {\n return CLASSNAME.getObjectIndexPropertyValue(obj);\n },\n get isClassObject() {\n\n if (!_.isObject(obj) || _.isArray(obj) || _.isRegExp(obj) ||\n _.isBuffer(obj) || _.isArrayBuffer(obj)) {\n return false;\n }\n if (_.isDate(obj)) {\n return true;\n }\n const className = CLASS.getNameFromObject(obj)\n return _.isString(className) && className !== 'Object';\n },\n isEqual: (anotherObj: any, compareDeep = false) => {\n if (!CLASS.OBJECT(obj).isClassObject || !CLASS.OBJECT(anotherObj).isClassObject) {\n return false;\n }\n if (obj === anotherObj) {\n // console.log(`EQ v1: , v2: - class1 ${CLASS.getNameFromObject(obj)}, class2 ${CLASS.getNameFromObject(anotherObj)}`, obj, anotherObj)\n return true;\n }\n const v1 = CLASSNAME.getObjectIndexValue(obj);\n const v2 = CLASSNAME.getObjectIndexValue(anotherObj);\n const f1 = CLASSNAME.getObjectClassFamily(obj)\n const f2 = CLASSNAME.getObjectClassFamily(anotherObj)\n const isFamilyDiff = (!_.isString(f1) || !_.isString(f2) || (f1 !== f2));\n // console.log(`DIFF FAMILY ${isFamilyDiff} v1: ${CLASSNAME.getObjectClassFamily(obj)}, v2: ${CLASSNAME.getObjectClassFamily(anotherObj)} - class1 ${CLASS.getNameFromObject(obj)}, class2 ${CLASS.getNameFromObject(anotherObj)}`)\n if (isFamilyDiff) {\n // console.log(`DIFF v1: ${v1}, v2: ${v2} - class1 ${CLASS.getNameFromObject(obj)}, class2 ${CLASS.getNameFromObject(anotherObj)}`)\n return false;\n }\n if (!CLASS.OBJECT(obj).isClassObject || !CLASS.OBJECT(anotherObj).isClassObject) {\n // console.log(`NOT CLASS v1: ${v1}, v2: ${v2} - class1 ${CLASS.getNameFromObject(obj)}, class2 ${CLASS.getNameFromObject(anotherObj)}`)\n return false\n }\n\n // console.log(`v1: ${v1} ,class ${CLASS.getNameFromObject(obj)} ,prop: ${CLASS.OBJECT(obj).indexProperty}`)\n // console.log(`v2: ${v2} ,class ${CLASS.getNameFromObject(anotherObj)} ,prop: ${CLASS.OBJECT(anotherObj).indexProperty}`)\n // console.log(`v1: ${v1}, v2: ${v2} - class1 ${CLASS.getNameFromObject(obj)}, class2 ${CLASS.getNameFromObject(anotherObj)}`)\n // console.log('')\n if ((_.isNumber(v1) && _.isNumber(v2)) || (_.isString(v1) && _.isString(v2))) {\n\n const res = (v1 === v2);\n // @ts-ignore\n return res;\n }\n if (compareDeep) {\n return _.isEqual(v1, v2)\n }\n return false;\n }\n }\n }\n}\n\nexport * from 'enum-values';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["getClasses","ConfigHelpers"],"mappings":"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"}
@@ -8,9 +8,9 @@ export declare namespace CLASSNAME {
8
8
  */
9
9
  function CLASSNAME(className: string, options?: Models.CLASSNAMEOptions): any;
10
10
  function getClassName(target: Function, production?: boolean): any;
11
- function getObjectIndexPropertyValue(obj: any): string;
12
- function getClassFamilyByClassName(className: string): string;
13
- function getObjectClassFamily(obj: any): string;
11
+ function getObjectIndexPropertyValue(obj: any): string | undefined;
12
+ function getClassFamilyByClassName(className: string): string | undefined;
13
+ function getObjectClassFamily(obj: any): string | undefined;
14
14
  function getObjectIndexValue(obj: any): any;
15
15
  function getClassBy(className: string | Function): Function;
16
16
  }
@@ -0,0 +1,32 @@
1
+ import { CLASSNAME } from './classname';
2
+ import { Models } from './models';
3
+ import { setClassName } from './set-class-name';
4
+ export { Models } from './models';
5
+ export { SYMBOL } from './symbols';
6
+ export declare class Helpers {
7
+ static getBy(className: string | Function): Function;
8
+ static getFromObject(o: Object): any;
9
+ static getName(target: Function, production?: boolean): string;
10
+ static getNameFromObject(o: Object): string;
11
+ static getConfig(target: Function): Models.ClassConfig[];
12
+ static describeProperites(target: Function): string[];
13
+ }
14
+ export declare const CLASS: {
15
+ NAME: typeof CLASSNAME.CLASSNAME;
16
+ setName: typeof setClassName;
17
+ getBy: typeof Helpers.getBy;
18
+ getSingleton<T = any>(target: Function): T | undefined;
19
+ setSingletonObj(target: Function, singletonObject: any): void;
20
+ getConfig: typeof Helpers.getConfig;
21
+ getFromObject: typeof Helpers.getFromObject;
22
+ getName: typeof Helpers.getName;
23
+ getNameFromObject: typeof Helpers.getNameFromObject;
24
+ describeProperites: typeof Helpers.describeProperites;
25
+ OBJECT: (obj: any) => {
26
+ readonly indexValue: any;
27
+ readonly indexProperty: string | undefined;
28
+ readonly isClassObject: boolean;
29
+ isEqual: (anotherObj: any, compareDeep?: boolean) => boolean;
30
+ };
31
+ };
32
+ export * from 'enum-values';
File without changes
@@ -1,2 +1,2 @@
1
1
  import { Models } from './models';
2
- export declare function setClassName(target: Function, className: string, options?: Models.CLASSNAMEOptions): (...args: any[]) => any;
2
+ export declare function setClassName(target: Function, className: string, options?: Models.CLASSNAMEOptions): ((...args: any[]) => any) | undefined;
File without changes
File without changes