@@ -17,19 +17,14 @@ var array_append_prepend_1 = require("@writetome51/array-append-prepend");
17
17
var set_array_1 = require ( "@writetome51/set-array" ) ;
18
18
var di_factory_1 = require ( "@writetome51/di-factory" ) ;
19
19
var public_array_content_1 = require ( "@writetome51/public-array-content" ) ;
20
- /*********************
21
- These imports are commented out to help improve performance.
22
- They're still kept here as a record of the npm module each comes from.
23
-
24
- // import { PublicArrayRemover } from '@writetome51/public-array-remover';
25
- // import { PublicArrayGetter } from '@writetome51/public-array-getter';
26
- // import { PublicArrayInserter } from '@writetome51/public-array-inserter';
27
- // import { PublicArraySorter } from '@writetome51/public-array-sorter';
28
- // import { PublicArrayReplacer } from '@writetome51/public-array-replacer';
29
- // import { PublicArrayGetterConverter } from '@writetome51/public-array-getter-converter';
30
- // import { PublicArrayGetterRemover } from '@writetome51/public-array-getter-remover';
31
- // import { PublicArrayFilter } from '@writetome51/public-array-filter';
32
- ********************/
20
+ var public_array_filter_1 = require ( "@writetome51/public-array-filter" ) ;
21
+ var public_array_getter_converter_1 = require ( "@writetome51/public-array-getter-converter" ) ;
22
+ var public_array_getter_1 = require ( "@writetome51/public-array-getter" ) ;
23
+ var public_array_getter_remover_1 = require ( "@writetome51/public-array-getter-remover" ) ;
24
+ var public_array_inserter_1 = require ( "@writetome51/public-array-inserter" ) ;
25
+ var public_array_remover_1 = require ( "@writetome51/public-array-remover" ) ;
26
+ var public_array_sorter_1 = require ( "@writetome51/public-array-sorter" ) ;
27
+ var public_array_replacer_1 = require ( "@writetome51/public-array-replacer" ) ;
33
28
/***********************
34
29
This class is for general array manipulation. It's called PublicArray because it
35
30
contains an array in a public property: 'data' .
@@ -48,6 +43,7 @@ var PublicArray = /** @class */ (function (_super) {
48
43
__extends ( PublicArray , _super ) ;
49
44
// Public Properties:
50
45
// readonly copy: PublicArray (an independent copy of this instance).
46
+ // Lazy-Loading is used to instantiate these properties:
51
47
// readonly filter: PublicArrayFilter;
52
48
// readonly getConverted: PublicArrayGetterConverter;
53
49
// readonly get: PublicArrayGetter;
@@ -56,37 +52,30 @@ var PublicArray = /** @class */ (function (_super) {
56
52
// readonly remove: PublicArrayRemover;
57
53
// readonly replace: PublicArrayReplacer;
58
54
// readonly sort: PublicArraySorter;
59
- function PublicArray (
60
- // begin injected dependencies...
61
- _filter , // PublicArrayFilter,
62
- _getConverted , // PublicArrayGetterConverter,
63
- _get , // PublicArrayGetter,
64
- _getAndRemove , // PublicArrayGetterRemover,
65
- _insert , // PublicArrayInserter,
66
- _remove , // PublicArrayRemover,
67
- _replace , // PublicArrayReplacer,
68
- _sort , // PublicArraySorter,
69
- // ... end injected dependencies
70
- data // the actual array, represented by inherited property this.data
55
+ function PublicArray ( data // the actual array, represented by inherited property this.data
71
56
) {
72
57
if ( data === void 0 ) { data = [ ] ; }
73
58
var _this = _super . call ( this , data ) || this ;
74
- _this . _filter = _filter ;
75
- _this . _getConverted = _getConverted ;
76
- _this . _get = _get ;
77
- _this . _getAndRemove = _getAndRemove ;
78
- _this . _insert = _insert ;
79
- _this . _remove = _remove ;
80
- _this . _replace = _replace ;
81
- _this . _sort = _sort ;
82
59
_this . _createGetterAndOrSetterForEach (
83
- // each of these is a public property:
84
- [ 'filter' , 'getConverted' , 'get' , 'getAndRemove' , 'insert' ,
85
- 'remove' , 'replace' , 'sort' ] , {
60
+ // each of these represents a public property:
61
+ [
62
+ { name : 'filter' , class : public_array_filter_1 . PublicArrayFilter } ,
63
+ { name : 'getConverted' , class : public_array_getter_converter_1 . PublicArrayGetterConverter } ,
64
+ { name : 'get' , class : public_array_getter_1 . PublicArrayGetter } ,
65
+ { name : 'getAndRemove' , class : public_array_getter_remover_1 . PublicArrayGetterRemover } ,
66
+ { name : 'insert' , class : public_array_inserter_1 . PublicArrayInserter } ,
67
+ { name : 'remove' , class : public_array_remover_1 . PublicArrayRemover } ,
68
+ { name : 'replace' , class : public_array_replacer_1 . PublicArrayReplacer } ,
69
+ { name : 'sort' , class : public_array_sorter_1 . PublicArraySorter }
70
+ ] , {
86
71
get_getterFunction : function ( property ) {
72
+ // Lazy-Loading is used to instantiate these properties:
73
+ if ( ! ( _this [ "_" + property . name ] ) ) { // if property not set...
74
+ _this [ "_" + property . name ] = di_factory_1 . DIFactory . getInstance ( property . class ) ;
75
+ }
87
76
return function ( ) {
88
- _this [ "_" + property ] . data = _this . data ;
89
- return _this [ "_" + property ] ;
77
+ _this [ "_" + property . name ] . data = _this . data ;
78
+ return _this [ "_" + property . name ] ;
90
79
} ;
91
80
}
92
81
} ) ;
0 commit comments