@allgemein/config 1.1.3 → 1.1.5
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/README.md +1 -1
- package/config/Config.js +39 -15
- package/config/Config.js.map +1 -1
- package/config/ConfigJar.js +24 -1
- package/config/ConfigJar.js.map +1 -1
- package/config/ConfigSupport.js +24 -1
- package/config/ConfigSupport.js.map +1 -1
- package/config/handler/DirectoryConfig.js +52 -26
- package/config/handler/DirectoryConfig.js.map +1 -1
- package/config/handler/FileConfig.js +1 -1
- package/config/handler/FileConfig.js.map +1 -1
- package/config/handler/FileSource.js +1 -1
- package/config/handler/FileSource.js.map +1 -1
- package/config/handler/index.js +5 -1
- package/config/handler/index.js.map +1 -1
- package/filesupport/types/JsonFileSupport.js.map +1 -1
- package/filesupport/types/PropertiesFileSupport.d.ts +2 -2
- package/filesupport/types/PropertiesFileSupport.js +1 -1
- package/filesupport/types/PropertiesFileSupport.js.map +1 -1
- package/filesupport/types/XmlFileSupport.d.ts +2 -2
- package/filesupport/types/XmlFileSupport.js +2 -2
- package/filesupport/types/XmlFileSupport.js.map +1 -1
- package/package.json +27 -22
- package/supports/InterpolationSupport.d.ts +1 -1
- package/supports/InterpolationSupport.js +48 -37
- package/supports/InterpolationSupport.js.map +1 -1
- package/utils/Utils.d.ts +0 -1
- package/utils/Utils.js +103 -75
- package/utils/Utils.js.map +1 -1
package/README.md
CHANGED
package/config/Config.js
CHANGED
|
@@ -1,7 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.Config = void 0;
|
|
4
|
-
const _ = require("lodash");
|
|
27
|
+
const _ = __importStar(require("lodash"));
|
|
5
28
|
const Utils_1 = require("../utils/Utils");
|
|
6
29
|
const ConfigJar_1 = require("./ConfigJar");
|
|
7
30
|
const ConfigHandler_1 = require("./ConfigHandler");
|
|
@@ -66,8 +89,8 @@ class Config {
|
|
|
66
89
|
return this.instance(false)._jars;
|
|
67
90
|
}
|
|
68
91
|
get _jars() {
|
|
69
|
-
|
|
70
|
-
|
|
92
|
+
const self = this;
|
|
93
|
+
const jars = [];
|
|
71
94
|
Object.keys(this.$jars).forEach(k => {
|
|
72
95
|
jars.push(self.$jars[k]);
|
|
73
96
|
});
|
|
@@ -80,8 +103,8 @@ class Config {
|
|
|
80
103
|
return this.instance(false)._jarsData;
|
|
81
104
|
}
|
|
82
105
|
get _jarsData() {
|
|
83
|
-
|
|
84
|
-
|
|
106
|
+
const self = this;
|
|
107
|
+
const jars = [];
|
|
85
108
|
Object.keys(this.$jars).forEach(k => {
|
|
86
109
|
jars.push(self.$jars[k].data);
|
|
87
110
|
});
|
|
@@ -142,23 +165,23 @@ class Config {
|
|
|
142
165
|
base_1.PlatformUtils.setWorkDir(null);
|
|
143
166
|
}
|
|
144
167
|
ConfigHandler_1.ConfigHandler.reload(this.$options.handlers);
|
|
145
|
-
for (
|
|
146
|
-
|
|
168
|
+
for (const _config of this.$options.configs) {
|
|
169
|
+
const handler = ConfigHandler_1.ConfigHandler.getHandlerByType(_config.type, _config, this._jarsData);
|
|
147
170
|
if (handler) {
|
|
148
|
-
|
|
171
|
+
const jar = handler.create();
|
|
149
172
|
if (jar) {
|
|
150
173
|
_config.state = true;
|
|
151
174
|
if (Utils_1.Utils.isArray(jar)) {
|
|
152
|
-
for (
|
|
153
|
-
|
|
175
|
+
for (const _jar of jar) {
|
|
176
|
+
const _inst_jar = Config.jar(_jar.namespace);
|
|
154
177
|
InterpolationSupport_1.InterpolationSupport.exec(_config, _inst_jar.data);
|
|
155
178
|
_inst_jar.merge(_jar.data);
|
|
156
179
|
_inst_jar.sources(_jar.sources());
|
|
157
180
|
}
|
|
158
181
|
}
|
|
159
182
|
else {
|
|
160
|
-
|
|
161
|
-
|
|
183
|
+
const _jar = jar;
|
|
184
|
+
const _inst_jar = Config.jar(_jar.namespace);
|
|
162
185
|
InterpolationSupport_1.InterpolationSupport.exec(_config, _inst_jar.data);
|
|
163
186
|
// InterpolationSupport.exec(_inst_jar.data,this._jarsData);
|
|
164
187
|
_inst_jar.merge(_jar.data);
|
|
@@ -177,7 +200,7 @@ class Config {
|
|
|
177
200
|
}
|
|
178
201
|
static get(path = null, namespace_or_fallback, fallback) {
|
|
179
202
|
if (path == null) {
|
|
180
|
-
|
|
203
|
+
const data = _.cloneDeep(this.jarsData);
|
|
181
204
|
if (this.hasJar('system')) {
|
|
182
205
|
data.shift();
|
|
183
206
|
}
|
|
@@ -197,8 +220,9 @@ class Config {
|
|
|
197
220
|
let _value = null;
|
|
198
221
|
for (let i = 0; i < jars.length; i++) {
|
|
199
222
|
_value = jars[i].get(path);
|
|
200
|
-
if (_value)
|
|
223
|
+
if (_value) {
|
|
201
224
|
break;
|
|
225
|
+
}
|
|
202
226
|
}
|
|
203
227
|
if (!_value && fallback) {
|
|
204
228
|
return fallback;
|
|
@@ -206,7 +230,7 @@ class Config {
|
|
|
206
230
|
return _value;
|
|
207
231
|
}
|
|
208
232
|
static set(path, value, namespace = 'default') {
|
|
209
|
-
|
|
233
|
+
const jar = Config.jar(namespace);
|
|
210
234
|
return jar.set(path, value);
|
|
211
235
|
}
|
|
212
236
|
static clear() {
|
package/config/Config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/config/Config.ts"],"names":[],"mappings":"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","file":"Config.js","sourcesContent":["import * as _ from 'lodash';\nimport {Utils} from '../utils/Utils';\n\nimport {ConfigJar} from './ConfigJar';\nimport {IOptions} from './IOptions';\nimport {IConfigData} from './IConfigData';\n\nimport {ConfigHandler} from './ConfigHandler';\nimport {FileSupport} from '../filesupport/FileSupport';\nimport {IJarOptions} from './IJarOptions';\nimport {DEFAULT_JAR_NAME} from '../types';\nimport {ConfigSupport} from './ConfigSupport';\nimport {InterpolationSupport} from '../supports/InterpolationSupport';\nimport {PlatformUtils} from '@allgemein/base';\n\n\nexport class Config {\n\n private static DEFAULT_OPTIONS: IOptions = {\n fileSupport: FileSupport.DEFAULT_TYPES,\n // handlers: {}DEFAULT_HANDLER,\n configs: [\n {\n type: 'system'\n }\n ]\n };\n\n private static $self: Config = null;\n\n private $options: IOptions = {};\n\n private $jars: { [k: string]: ConfigJar } = {};\n\n private $init: boolean = false;\n\n\n private constructor() {\n\n }\n\n static instance(init: boolean = true): Config {\n if (!this.$self) {\n this.$self = new Config();\n }\n\n if (!this.$self.isInitialized() && init) {\n this.$self._options(this.DEFAULT_OPTIONS);\n }\n\n return this.$self;\n }\n\n isInitialized() {\n return this.$init;\n }\n\n\n static jar(name: string | IJarOptions = 'default', jar?: ConfigJar): ConfigJar {\n return this.instance(false)._jar(name, jar);\n }\n\n _jar(name: string | IJarOptions = 'default', jar?: ConfigJar, override: boolean = false): ConfigJar {\n let options: IJarOptions = {namespace: DEFAULT_JAR_NAME};\n let _name: string = null;\n if (!Utils.isString(name)) {\n options = <IJarOptions>name;\n _name = options.namespace;\n } else {\n _name = <string>name;\n options.namespace = _name;\n }\n\n if (this.$jars[_name] && !jar) {\n // jar already exists\n if (options && override) {\n this.$jars[_name] = ConfigJar.create(options);\n }\n } else if (this.$jars[_name] && jar) {\n if (!override) {\n throw new Error('config jar is already set');\n }\n this.$jars[_name] = jar;\n } else if (!this.$jars[_name] && jar) {\n this.$jars[_name] = jar;\n } else {\n this.$jars[_name] = ConfigJar.create(options);\n }\n return this.$jars[_name];\n }\n\n // TODO return immutable\n static get jars(): ConfigJar[] {\n return this.instance(false)._jars;\n }\n\n get _jars(): ConfigJar[] {\n let self = this;\n let jars: ConfigJar[] = [];\n Object.keys(this.$jars).forEach(k => {\n jars.push(self.$jars[k]);\n });\n return jars;\n }\n\n\n static all(): IConfigData[] {\n return this.instance(false)._jarsData;\n }\n\n static get jarsData(): IConfigData[] {\n return this.instance(false)._jarsData;\n }\n\n get _jarsData(): IConfigData[] {\n let self = this;\n let jars: IConfigData[] = [];\n Object.keys(this.$jars).forEach(k => {\n jars.push(self.$jars[k].data);\n });\n return jars;\n }\n\n\n static hasJar(name: string): boolean {\n return this.instance(false)._hasJar(name);\n }\n\n _hasJar(name: string): boolean {\n return !!this.$jars[name];\n }\n\n static options(options: IOptions = null, append: boolean = true): IOptions {\n return this.instance()._options(options, append);\n }\n\n\n _options(_options: IOptions = null, append: boolean = true): IOptions {\n if (_options == null) {\n return this.$options;\n }\n\n this.$init = true;\n\n let options: IOptions = {};\n if (!_options.configs) {\n // Test if configs key was ignored\n if (Utils.isArray(_options) && _options.length > 0) {\n if (_options[0].type) {\n // okay configs was ignored, prepend it!\n options = <IOptions>{configs: _options};\n } else {\n options = {};\n }\n } else {\n options = _options;\n }\n } else {\n options = _options;\n }\n\n if (append) {\n this.$options = Utils.merge(this.$options, options);\n } else {\n // clear current jars\n this.$jars = {};\n Object.assign(this.$options, options);\n }\n\n\n if (this.$options.fileSupport) {\n FileSupport.reload(this.$options.fileSupport);\n }\n\n if (!this.$options.handlers || this.$options.handlers.length === 0) {\n this.$options.handlers = ConfigHandler.DEFAULT_HANDLER;\n }\n\n if (!_.isEmpty(this.$options.workdir)) {\n PlatformUtils.setWorkDir(this.$options.workdir);\n } else if (_.has(this.$options, 'workdir')) {\n // reset workdir, it is set to null\n PlatformUtils.setWorkDir(null);\n }\n\n ConfigHandler.reload(this.$options.handlers);\n\n for (let _config of this.$options.configs) {\n let handler: ConfigSupport<any> = ConfigHandler.getHandlerByType(_config.type, _config, this._jarsData);\n if (handler) {\n let jar = handler.create();\n\n if (jar) {\n _config.state = true;\n if (Utils.isArray(jar)) {\n for (let _jar of <ConfigJar[]>jar) {\n let _inst_jar = Config.jar(_jar.namespace);\n InterpolationSupport.exec(_config, _inst_jar.data);\n _inst_jar.merge(_jar.data);\n _inst_jar.sources(_jar.sources());\n }\n } else {\n let _jar = <ConfigJar>jar;\n let _inst_jar = Config.jar(_jar.namespace);\n InterpolationSupport.exec(_config, _inst_jar.data);\n // InterpolationSupport.exec(_inst_jar.data,this._jarsData);\n _inst_jar.merge(_jar.data);\n _inst_jar.sources(_jar.sources());\n }\n } else {\n _config.state = false;\n }\n } else {\n throw new Error('handler doesn\\'t exists');\n }\n }\n return this.$options;\n }\n\n\n static get(path: string = null, namespace_or_fallback?: any, fallback?: any) {\n if (path == null) {\n let data = _.cloneDeep(this.jarsData);\n if (this.hasJar('system')) {\n data.shift();\n }\n if (data.length > 1) {\n return _.merge(data.shift(), ...data);\n }\n return data;\n }\n\n let jars: ConfigJar[] = this.jars;\n\n if (Utils.isString(namespace_or_fallback) && this.hasJar(namespace_or_fallback)) {\n jars = [this.jar(namespace_or_fallback)];\n } else {\n fallback = namespace_or_fallback;\n jars = this.jars;\n }\n\n let _value: any = null;\n for (let i = 0; i < jars.length; i++) {\n _value = jars[i].get(path);\n if (_value) break;\n }\n\n if (!_value && fallback) {\n return fallback;\n }\n return _value;\n }\n\n\n static set(path: string, value: any, namespace: string = 'default'): boolean {\n let jar: ConfigJar = Config.jar(namespace);\n return jar.set(path, value);\n }\n\n static clear(): void {\n this.$self = null;\n PlatformUtils.setWorkDir(null);\n }\n\n\n}\n"],"sourceRoot":".."}
|
|
1
|
+
{"version":3,"sources":["../../../src/config/Config.ts"],"names":[],"mappings":"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","file":"Config.js","sourcesContent":["import * as _ from 'lodash';\nimport {Utils} from '../utils/Utils';\n\nimport {ConfigJar} from './ConfigJar';\nimport {IOptions} from './IOptions';\nimport {IConfigData} from './IConfigData';\n\nimport {ConfigHandler} from './ConfigHandler';\nimport {FileSupport} from '../filesupport/FileSupport';\nimport {IJarOptions} from './IJarOptions';\nimport {DEFAULT_JAR_NAME} from '../types';\nimport {ConfigSupport} from './ConfigSupport';\nimport {InterpolationSupport} from '../supports/InterpolationSupport';\nimport {PlatformUtils} from '@allgemein/base';\n\n\nexport class Config {\n\n private static DEFAULT_OPTIONS: IOptions = {\n fileSupport: FileSupport.DEFAULT_TYPES,\n // handlers: {}DEFAULT_HANDLER,\n configs: [\n {\n type: 'system'\n }\n ]\n };\n\n private static $self: Config = null;\n\n private $options: IOptions = {};\n\n private $jars: { [k: string]: ConfigJar } = {};\n\n private $init: boolean = false;\n\n\n private constructor() {\n\n }\n\n static instance(init: boolean = true): Config {\n if (!this.$self) {\n this.$self = new Config();\n }\n\n if (!this.$self.isInitialized() && init) {\n this.$self._options(this.DEFAULT_OPTIONS);\n }\n\n return this.$self;\n }\n\n isInitialized() {\n return this.$init;\n }\n\n\n static jar(name: string | IJarOptions = 'default', jar?: ConfigJar): ConfigJar {\n return this.instance(false)._jar(name, jar);\n }\n\n _jar(name: string | IJarOptions = 'default', jar?: ConfigJar, override: boolean = false): ConfigJar {\n let options: IJarOptions = {namespace: DEFAULT_JAR_NAME};\n let _name: string = null;\n if (!Utils.isString(name)) {\n options = <IJarOptions>name;\n _name = options.namespace;\n } else {\n _name = <string>name;\n options.namespace = _name;\n }\n\n if (this.$jars[_name] && !jar) {\n // jar already exists\n if (options && override) {\n this.$jars[_name] = ConfigJar.create(options);\n }\n } else if (this.$jars[_name] && jar) {\n if (!override) {\n throw new Error('config jar is already set');\n }\n this.$jars[_name] = jar;\n } else if (!this.$jars[_name] && jar) {\n this.$jars[_name] = jar;\n } else {\n this.$jars[_name] = ConfigJar.create(options);\n }\n return this.$jars[_name];\n }\n\n // TODO return immutable\n static get jars(): ConfigJar[] {\n return this.instance(false)._jars;\n }\n\n get _jars(): ConfigJar[] {\n const self = this;\n const jars: ConfigJar[] = [];\n Object.keys(this.$jars).forEach(k => {\n jars.push(self.$jars[k]);\n });\n return jars;\n }\n\n\n static all(): IConfigData[] {\n return this.instance(false)._jarsData;\n }\n\n static get jarsData(): IConfigData[] {\n return this.instance(false)._jarsData;\n }\n\n get _jarsData(): IConfigData[] {\n const self = this;\n const jars: IConfigData[] = [];\n Object.keys(this.$jars).forEach(k => {\n jars.push(self.$jars[k].data);\n });\n return jars;\n }\n\n\n static hasJar(name: string): boolean {\n return this.instance(false)._hasJar(name);\n }\n\n _hasJar(name: string): boolean {\n return !!this.$jars[name];\n }\n\n static options(options: IOptions = null, append: boolean = true): IOptions {\n return this.instance()._options(options, append);\n }\n\n\n _options(_options: IOptions = null, append: boolean = true): IOptions {\n if (_options == null) {\n return this.$options;\n }\n\n this.$init = true;\n\n let options: IOptions = {};\n if (!_options.configs) {\n // Test if configs key was ignored\n if (Utils.isArray(_options) && _options.length > 0) {\n if (_options[0].type) {\n // okay configs was ignored, prepend it!\n options = <IOptions>{configs: _options};\n } else {\n options = {};\n }\n } else {\n options = _options;\n }\n } else {\n options = _options;\n }\n\n if (append) {\n this.$options = Utils.merge(this.$options, options);\n } else {\n // clear current jars\n this.$jars = {};\n Object.assign(this.$options, options);\n }\n\n\n if (this.$options.fileSupport) {\n FileSupport.reload(this.$options.fileSupport);\n }\n\n if (!this.$options.handlers || this.$options.handlers.length === 0) {\n this.$options.handlers = ConfigHandler.DEFAULT_HANDLER;\n }\n\n if (!_.isEmpty(this.$options.workdir)) {\n PlatformUtils.setWorkDir(this.$options.workdir);\n } else if (_.has(this.$options, 'workdir')) {\n // reset workdir, it is set to null\n PlatformUtils.setWorkDir(null);\n }\n\n ConfigHandler.reload(this.$options.handlers);\n\n for (const _config of this.$options.configs) {\n const handler: ConfigSupport<any> = ConfigHandler.getHandlerByType(_config.type, _config, this._jarsData);\n if (handler) {\n const jar = handler.create();\n\n if (jar) {\n _config.state = true;\n if (Utils.isArray(jar)) {\n for (const _jar of <ConfigJar[]>jar) {\n const _inst_jar = Config.jar(_jar.namespace);\n InterpolationSupport.exec(_config, _inst_jar.data);\n _inst_jar.merge(_jar.data);\n _inst_jar.sources(_jar.sources());\n }\n } else {\n const _jar = <ConfigJar>jar;\n const _inst_jar = Config.jar(_jar.namespace);\n InterpolationSupport.exec(_config, _inst_jar.data);\n // InterpolationSupport.exec(_inst_jar.data,this._jarsData);\n _inst_jar.merge(_jar.data);\n _inst_jar.sources(_jar.sources());\n }\n } else {\n _config.state = false;\n }\n } else {\n throw new Error('handler doesn\\'t exists');\n }\n }\n return this.$options;\n }\n\n\n static get(path: string = null, namespace_or_fallback?: any, fallback?: any) {\n if (path == null) {\n const data = _.cloneDeep(this.jarsData);\n if (this.hasJar('system')) {\n data.shift();\n }\n if (data.length > 1) {\n return _.merge(data.shift(), ...data);\n }\n return data;\n }\n\n let jars: ConfigJar[] = this.jars;\n\n if (Utils.isString(namespace_or_fallback) && this.hasJar(namespace_or_fallback)) {\n jars = [this.jar(namespace_or_fallback)];\n } else {\n fallback = namespace_or_fallback;\n jars = this.jars;\n }\n\n let _value: any = null;\n for (let i = 0; i < jars.length; i++) {\n _value = jars[i].get(path);\n if (_value) {\n break;\n }\n }\n\n if (!_value && fallback) {\n return fallback;\n }\n return _value;\n }\n\n\n static set(path: string, value: any, namespace: string = 'default'): boolean {\n const jar: ConfigJar = Config.jar(namespace);\n return jar.set(path, value);\n }\n\n static clear(): void {\n this.$self = null;\n PlatformUtils.setWorkDir(null);\n }\n\n\n}\n"],"sourceRoot":".."}
|
package/config/ConfigJar.js
CHANGED
|
@@ -1,7 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.ConfigJar = void 0;
|
|
4
|
-
const _ = require("lodash");
|
|
27
|
+
const _ = __importStar(require("lodash"));
|
|
5
28
|
const Utils_1 = require("../utils/Utils");
|
|
6
29
|
const InterpolationSupport_1 = require("../supports/InterpolationSupport");
|
|
7
30
|
const Config_1 = require("./Config");
|
package/config/ConfigJar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/config/ConfigJar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/config/ConfigJar.ts"],"names":[],"mappings":"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","file":"ConfigJar.js","sourcesContent":["import {IConfigData} from \"./IConfigData\";\nimport {IJarOptions} from \"./IJarOptions\";\nimport * as _ from \"lodash\";\nimport {Utils} from \"../utils/Utils\";\nimport {InterpolationSupport} from \"../supports/InterpolationSupport\";\nimport {Config} from \"./Config\";\nimport {Source} from \"./Source\";\n\nconst DEFAULT_JAR_OPTS: IJarOptions = {\n namespace: 'default',\n standalone: false,\n interpolate: true\n};\n\nexport class ConfigJar {\n\n private _options: IJarOptions;\n\n // private _config:\n\n private _data: IConfigData = {};\n\n /**\n *\n */\n private _source: Source[] = [];\n\n constructor(options: IJarOptions = DEFAULT_JAR_OPTS) {\n this._options = _.defaults(options,DEFAULT_JAR_OPTS)\n }\n\n get namespace() {\n return this._options.namespace\n }\n\n get data() {\n return this._data\n }\n\n get(path: string): any {\n return Utils.get(this._data, path)\n }\n\n set(path: string, value: any): boolean {\n return Utils.set(this._data, path, value)\n }\n\n merge(data: IConfigData | Source, opts: { interpolate: boolean } = {interpolate: true}) {\n\n let source = data;\n if (data instanceof Source) {\n source = Utils.clone(data);\n this._source.push(<Source>source);\n data = (<Source>source).data;\n\n if ((<Source>source).prefix) {\n let _data = {};\n Utils.set(_data, (<Source>source).prefix, data);\n data = _data\n }\n }\n\n\n if (this._options.interpolate && opts.interpolate) {\n // interpolate first then merge\n let collection: IConfigData[] = Config.jarsData;\n\n // interpolate against self execute\n if (!Config.hasJar(this.namespace) && !Utils.isEmpty(this._data)) {\n collection.push(this._data)\n }\n collection.unshift(data);\n InterpolationSupport.exec(data, collection)\n }\n\n this._data = Utils.merge(this._data, data)\n }\n\n /**\n * Execute interpolation over the config data\n */\n runInterpolation() {\n InterpolationSupport.exec(this._data)\n }\n\n interpolateAgainst(data: IConfigData) {\n InterpolationSupport.exec(data, this._data);\n return data;\n }\n\n static create(options: IJarOptions = {namespace: 'default'}): ConfigJar {\n if (!options.namespace) {\n options.namespace = 'default'\n }\n let jar = new ConfigJar(options);\n return jar\n }\n\n\n sources(source?: Source[]): Source[] {\n if (source) {\n this._source = this._source.concat(source)\n }\n return this._source\n }\n\n}\n"],"sourceRoot":".."}
|
package/config/ConfigSupport.js
CHANGED
|
@@ -1,7 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.ConfigSupport = void 0;
|
|
4
|
-
const _ = require("lodash");
|
|
27
|
+
const _ = __importStar(require("lodash"));
|
|
5
28
|
const InterpolationSupport_1 = require("../supports/InterpolationSupport");
|
|
6
29
|
class ConfigSupport {
|
|
7
30
|
constructor(options, jarsData = []) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/config/ConfigSupport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/config/ConfigSupport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA4B;AAG5B,2EAAsE;AAItE,MAAsB,aAAa;IAI/B,YAAY,OAAW,EAAE,WAAuB,EAAE;QAC9C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,8CAA8C;QAC9C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAChE,IAAG;gBACC,2CAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;aACrD;YAAA,OAAM,CAAC,EAAC;aAER;SACJ;IAEL,CAAC;CASJ;AAzBD,sCAyBC","file":"ConfigSupport.js","sourcesContent":["import * as _ from 'lodash';\nimport {ConfigJar} from \"./ConfigJar\";\nimport {IConfigData} from \"./IConfigData\";\nimport {InterpolationSupport} from \"../supports/InterpolationSupport\";\n\n\n\nexport abstract class ConfigSupport<T> {\n\n $options:T;\n\n constructor(options : T, jarsData:IConfigData[]=[]) {\n this.$options = options;\n\n // if not globally definied then load directly\n if (options && options['type'] != 'system' && !_.isEmpty(jarsData)) {\n try{\n InterpolationSupport.exec(this.$options, jarsData)\n }catch(e){\n\n }\n }\n\n }\n\n abstract type() : string\n\n abstract create() : ConfigJar|ConfigJar[];\n\n\n\n\n}\n"],"sourceRoot":".."}
|
|
@@ -1,11 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
2
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
29
|
exports.DirectoryConfig = void 0;
|
|
4
|
-
const _ = require("lodash");
|
|
30
|
+
const _ = __importStar(require("lodash"));
|
|
5
31
|
const Utils_1 = require("../../utils/Utils");
|
|
6
32
|
const types_1 = require("../../types");
|
|
7
33
|
const ConfigSupport_1 = require("../ConfigSupport");
|
|
8
|
-
const
|
|
34
|
+
const multimatch_1 = __importDefault(require("multimatch"));
|
|
9
35
|
const FileConfig_1 = require("./FileConfig");
|
|
10
36
|
const base_1 = require("@allgemein/base");
|
|
11
37
|
/**
|
|
@@ -19,15 +45,15 @@ class DirectoryConfig extends ConfigSupport_1.ConfigSupport {
|
|
|
19
45
|
return 'directory';
|
|
20
46
|
}
|
|
21
47
|
listFilesInDirectory() {
|
|
22
|
-
|
|
48
|
+
const dirname = base_1.PlatformUtils.pathNormAndResolve(this.$options.dirname);
|
|
23
49
|
if (!base_1.PlatformUtils.fileExist(dirname) || !base_1.PlatformUtils.isDir(dirname)) {
|
|
24
50
|
throw new Error('wrong directory ' + dirname);
|
|
25
51
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
52
|
+
const list = base_1.PlatformUtils.load('glob').sync(dirname + '/**');
|
|
53
|
+
const regex = Utils_1.Utils.escapeRegExp(this.$options.patternSeparator);
|
|
54
|
+
const patternRegex = new RegExp(regex, 'g');
|
|
55
|
+
const files = [];
|
|
56
|
+
const self = this;
|
|
31
57
|
list.forEach(file_or_dir => {
|
|
32
58
|
let path = file_or_dir.replace(dirname + '', '');
|
|
33
59
|
if (!path) {
|
|
@@ -37,38 +63,38 @@ class DirectoryConfig extends ConfigSupport_1.ConfigSupport {
|
|
|
37
63
|
path = path.replace(/^\//, '');
|
|
38
64
|
if (self.$options.exclude && self.$options.exclude.length > 0) {
|
|
39
65
|
// findes if path is excluded
|
|
40
|
-
|
|
41
|
-
if (result.length && result[0]
|
|
66
|
+
const result = (0, multimatch_1.default)([path], self.$options.exclude);
|
|
67
|
+
if (result.length && result[0] === path) {
|
|
42
68
|
return;
|
|
43
69
|
}
|
|
44
70
|
}
|
|
45
|
-
|
|
46
|
-
|
|
71
|
+
const is_file = base_1.PlatformUtils.isFile(file_or_dir);
|
|
72
|
+
const paths = path.replace(/^\//, '').split('/');
|
|
47
73
|
if (is_file) {
|
|
48
|
-
|
|
49
|
-
|
|
74
|
+
const filename_ext = paths.pop();
|
|
75
|
+
const filename = base_1.PlatformUtils.filename(filename_ext);
|
|
50
76
|
if (!patternRegex.test(filename)) {
|
|
51
|
-
|
|
77
|
+
const file = {
|
|
52
78
|
dirname: file_or_dir.replace(filename_ext, ''),
|
|
53
79
|
filename: filename,
|
|
54
80
|
type: base_1.PlatformUtils.pathExtname(filename_ext, false)
|
|
55
81
|
};
|
|
56
|
-
|
|
57
|
-
namespace: types_1.DEFAULT_JAR_NAME,
|
|
82
|
+
const fileCfg = {
|
|
83
|
+
namespace: this.$options.namespace ? this.$options.namespace : types_1.DEFAULT_JAR_NAME,
|
|
58
84
|
file: file,
|
|
59
85
|
pattern: []
|
|
60
86
|
};
|
|
61
|
-
|
|
87
|
+
const prefixing = DirectoryConfig.resolveName(self.$options.prefixing, paths, filename, types_1.SELECTOR_SEPARATOR);
|
|
62
88
|
if (prefixing) {
|
|
63
89
|
fileCfg.prefix = prefixing;
|
|
64
90
|
}
|
|
65
|
-
|
|
91
|
+
const namespacing = DirectoryConfig.resolveName(self.$options.namespaceing, paths, filename, self.$options.namespaceSeparator);
|
|
66
92
|
if (namespacing) {
|
|
67
93
|
fileCfg.namespace = namespacing;
|
|
68
94
|
}
|
|
69
95
|
if (this.$options.suffixPattern) {
|
|
70
96
|
this.$options.suffixPattern.forEach(pattern => {
|
|
71
|
-
|
|
97
|
+
const _paths = [filename, pattern];
|
|
72
98
|
fileCfg.pattern.push(_paths.join(self.$options.patternSeparator));
|
|
73
99
|
});
|
|
74
100
|
}
|
|
@@ -83,7 +109,7 @@ class DirectoryConfig extends ConfigSupport_1.ConfigSupport {
|
|
|
83
109
|
static resolveName(named, paths, filename, separator = '.') {
|
|
84
110
|
let v = null;
|
|
85
111
|
if (named) {
|
|
86
|
-
|
|
112
|
+
const _paths = Utils_1.Utils.clone(paths);
|
|
87
113
|
switch (named) {
|
|
88
114
|
case types_1.NAMING_BY_DIRECTORY:
|
|
89
115
|
v = _paths.pop();
|
|
@@ -103,11 +129,11 @@ class DirectoryConfig extends ConfigSupport_1.ConfigSupport {
|
|
|
103
129
|
return v;
|
|
104
130
|
}
|
|
105
131
|
create() {
|
|
106
|
-
|
|
107
|
-
|
|
132
|
+
const files = this.listFilesInDirectory();
|
|
133
|
+
const jars = {};
|
|
108
134
|
files.forEach(_options => {
|
|
109
|
-
|
|
110
|
-
|
|
135
|
+
const fileCfg = new FileConfig_1.FileConfig(_options);
|
|
136
|
+
const jar = fileCfg.create();
|
|
111
137
|
if (jars[jar.namespace]) {
|
|
112
138
|
jars[jar.namespace].merge(jar.data);
|
|
113
139
|
jars[jar.namespace].sources(jar.sources());
|
|
@@ -116,7 +142,7 @@ class DirectoryConfig extends ConfigSupport_1.ConfigSupport {
|
|
|
116
142
|
jars[jar.namespace] = jar;
|
|
117
143
|
}
|
|
118
144
|
});
|
|
119
|
-
|
|
145
|
+
const _jars = [];
|
|
120
146
|
Object.keys(jars).forEach(_k => {
|
|
121
147
|
_jars.push(jars[_k]);
|
|
122
148
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/config/handler/DirectoryConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/config/handler/DirectoryConfig.ts"],"names":[],"mappings":"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","file":"DirectoryConfig.js","sourcesContent":["import * as _ from 'lodash';\nimport {IDirectoryConfigOptions} from './IDirectoryConfigOptions';\nimport {ConfigJar} from '../ConfigJar';\nimport {Utils} from '../../utils/Utils';\nimport {IFilePath} from './IFilePath';\nimport {IFileConfigOptions} from './IFileConfigOptions';\nimport {\n DEFAULT_JAR_NAME,\n NAMING_BY_DIRECTORY,\n NAMING_BY_DIRECTORYPATH,\n NAMING_BY_FILENAME,\n NAMING_BY_FULLPATH,\n NamingResolvePattern,\n SELECTOR_SEPARATOR\n} from '../../types';\nimport {ConfigSupport} from '../ConfigSupport';\nimport multimatch from 'multimatch';\nimport {FileConfig} from './FileConfig';\nimport {IConfigData} from '../IConfigData';\nimport {PlatformUtils} from '@allgemein/base';\n\n\n/**\n * Load config\n */\nexport class DirectoryConfig extends ConfigSupport<IDirectoryConfigOptions> {\n\n static DEFAULT_DIRECTORY_OPTIONS: IDirectoryConfigOptions = {\n\n namespace: DEFAULT_JAR_NAME,\n\n dirname: null,\n\n namespaceing: null,\n\n namespaceSeparator: '.',\n\n patternSeparator: '-',\n\n prefixing: null,\n\n suffixPattern: []\n\n };\n\n\n constructor(options: IDirectoryConfigOptions, jarsData: IConfigData[] = []) {\n super(_.defaultsDeep(options, DirectoryConfig.DEFAULT_DIRECTORY_OPTIONS), jarsData);\n }\n\n type(): string {\n return 'directory';\n }\n\n listFilesInDirectory(): IFileConfigOptions[] {\n const dirname = PlatformUtils.pathNormAndResolve(this.$options.dirname);\n if (!PlatformUtils.fileExist(dirname) || !PlatformUtils.isDir(dirname)) {\n throw new Error('wrong directory ' + dirname);\n }\n const list: string[] = PlatformUtils.load('glob').sync(dirname + '/**');\n const regex: string = Utils.escapeRegExp(this.$options.patternSeparator);\n\n const patternRegex = new RegExp(regex, 'g');\n const files: IFileConfigOptions[] = [];\n const self = this;\n\n list.forEach(file_or_dir => {\n let path = file_or_dir.replace(dirname + '', '');\n\n if (!path) {\n // equals dirname\n return;\n }\n\n path = path.replace(/^\\//, '');\n if (self.$options.exclude && self.$options.exclude.length > 0) {\n // findes if path is excluded\n const result = multimatch([path], self.$options.exclude);\n if (result.length && result[0] === path) {\n return;\n }\n }\n\n const is_file = PlatformUtils.isFile(file_or_dir);\n const paths = path.replace(/^\\//, '').split('/');\n\n if (is_file) {\n const filename_ext = paths.pop();\n const filename = PlatformUtils.filename(filename_ext);\n\n if (!patternRegex.test(filename)) {\n\n const file: IFilePath = {\n dirname: file_or_dir.replace(filename_ext, ''),\n filename: filename,\n type: PlatformUtils.pathExtname(filename_ext, false)\n };\n\n const fileCfg: IFileConfigOptions = {\n namespace: this.$options.namespace ? this.$options.namespace : DEFAULT_JAR_NAME,\n file: file,\n pattern: []\n };\n\n const prefixing = DirectoryConfig.resolveName(self.$options.prefixing, paths, filename, SELECTOR_SEPARATOR);\n if (prefixing) {\n fileCfg.prefix = prefixing;\n }\n\n const namespacing = DirectoryConfig.resolveName(self.$options.namespaceing, paths, filename, self.$options.namespaceSeparator);\n if (namespacing) {\n fileCfg.namespace = namespacing;\n }\n\n if (this.$options.suffixPattern) {\n this.$options.suffixPattern.forEach(pattern => {\n const _paths = [filename, pattern];\n fileCfg.pattern.push(_paths.join(self.$options.patternSeparator));\n });\n }\n files.push(fileCfg);\n }\n } else {\n\n }\n\n });\n\n return files;\n }\n\n static resolveName(named: NamingResolvePattern, paths: string[], filename: string, separator: string = '.'): string {\n let v = null;\n if (named) {\n const _paths = Utils.clone(paths);\n switch (named) {\n case NAMING_BY_DIRECTORY:\n v = _paths.pop();\n break;\n case NAMING_BY_DIRECTORYPATH:\n v = _paths.join(separator);\n break;\n case NAMING_BY_FILENAME:\n v = filename;\n break;\n case NAMING_BY_FULLPATH:\n _paths.push(filename);\n v = _paths.join(separator);\n break;\n }\n }\n return v;\n }\n\n\n create(): ConfigJar[] {\n const files = this.listFilesInDirectory();\n const jars: { [k: string]: ConfigJar } = {};\n\n files.forEach(_options => {\n const fileCfg = new FileConfig(_options);\n const jar = fileCfg.create();\n if (jars[jar.namespace]) {\n jars[jar.namespace].merge(jar.data);\n jars[jar.namespace].sources(jar.sources());\n } else {\n jars[jar.namespace] = jar;\n }\n\n });\n\n const _jars: ConfigJar[] = [];\n Object.keys(jars).forEach(_k => {\n _jars.push(jars[_k]);\n });\n\n return _jars;\n }\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FileConfig = void 0;
|
|
4
|
+
const base_1 = require("@allgemein/base");
|
|
4
5
|
const ConfigSupport_1 = require("../ConfigSupport");
|
|
5
6
|
const ConfigJar_1 = require("../ConfigJar");
|
|
6
7
|
const FileSupport_1 = require("../../filesupport/FileSupport");
|
|
7
8
|
const FileSource_1 = require("./FileSource");
|
|
8
|
-
const base_1 = require("@allgemein/base");
|
|
9
9
|
/**
|
|
10
10
|
* Read configuration from file
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/config/handler/FileConfig.ts"],"names":[],"mappings":";;;AAAA,oDAA+C;AAC/C,4CAAuC;AAEvC,+DAA0D;AAG1D,6CAAwC;
|
|
1
|
+
{"version":3,"sources":["../../../src/config/handler/FileConfig.ts"],"names":[],"mappings":"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","file":"FileConfig.js","sourcesContent":["import {PlatformUtils} from '@allgemein/base';\nimport {ConfigSupport} from '../ConfigSupport';\nimport {ConfigJar} from '../ConfigJar';\nimport {IFileConfigOptions} from './IFileConfigOptions';\nimport {FileSupport} from '../../filesupport/FileSupport';\nimport {IConfigData} from '../IConfigData';\nimport {IFilePath} from './IFilePath';\nimport {FileSource} from './FileSource';\nimport {IJarOptions} from '../IJarOptions';\n\n\n/**\n * Read configuration from file\n */\nexport class FileConfig extends ConfigSupport<IFileConfigOptions> {\n\n\n constructor(options: IFileConfigOptions, jarsData: IConfigData[] = []) {\n super(options, jarsData);\n }\n\n type() {\n return 'file';\n }\n\n\n private readFile(file: IFilePath): IConfigData {\n let supportedTypes = FileSupport.getSupportedTypes();\n let used_path = null;\n let used_ext = null;\n\n while (!used_ext && supportedTypes.length > 0) {\n let ext = supportedTypes.shift();\n used_path = file.dirname + '/' + file.filename + '.' + ext;\n if (PlatformUtils.fileExist(used_path)) {\n used_ext = ext;\n }\n }\n\n if (!used_ext || !used_path) {\n return null;\n }\n\n file.type = used_ext;\n let supportInfo = FileSupport.getInfoByExtension(used_ext);\n if (!supportInfo.enabled) {\n throw new Error(`${used_ext} support not enabled`);\n }\n\n let support = FileSupport.getSupportByExtension(used_ext);\n let content: any = null;\n let data: IConfigData = null;\n\n if (supportInfo.readable) {\n data = support.read(used_path);\n } else if (supportInfo.parseable) {\n content = PlatformUtils.readFileSync(used_path);\n data = support.parse(content);\n } else {\n throw new Error('is not readable or parseable');\n }\n return data;\n\n }\n\n private readFiles(paths: IFilePath[]): FileSource[] {\n let self = this;\n let collection: FileSource[] = [];\n\n paths.forEach((path, index) => {\n let data = self.readFile(path);\n if (data === null) {\n // file not found\n return;\n }\n /*\n if (!data && index === 0) {\n // TODO make this configurable\n console.log(paths)\n throw new Error('base file doesn\\'t exists')\n } else\n */\n if (data) {\n let source = new FileSource({data: data, file: path, prefix: this.$options.prefix});\n collection.push(source);\n }\n });\n\n return collection;\n }\n\n private explodeFilePath(path: string | IFilePath): IFilePath {\n let file: IFilePath = null;\n if (typeof path === 'string') {\n let filepath = PlatformUtils.pathNormilize(PlatformUtils.pathResolve(path));\n file = {\n dirname: PlatformUtils.dirname(filepath),\n filename: PlatformUtils.filename(filepath),\n type: PlatformUtils.pathExtname(filepath),\n };\n } else {\n file = path;\n file.dirname = PlatformUtils.pathNormilize(PlatformUtils.pathResolve(file.dirname));\n // TODO check if extension is falsely set in filename\n }\n return file;\n }\n\n\n private attachPatternFiles(basefile: IFilePath): IFilePath[] {\n\n let files: IFilePath[] = [];\n if (this.$options.pattern) {\n let self = this;\n\n\n this.$options.pattern.forEach(pattern => {\n // TODO works only in posix systems!\n let subfile: IFilePath = null;\n if (/^\\.?\\//.test(pattern)) {\n // full or app relative path given!\n subfile = self.explodeFilePath(pattern);\n } else {\n subfile = self.explodeFilePath(basefile.dirname + '/' + pattern);\n }\n files.push(subfile);\n });\n }\n\n return files;\n }\n\n\n create(): ConfigJar {\n let files: IFilePath[] = [];\n let basefile = this.explodeFilePath(this.$options.file);\n files.push(basefile);\n\n let additional_files = this.attachPatternFiles(basefile);\n if (additional_files.length) {\n files = files.concat(additional_files);\n }\n\n let sources = this.readFiles(files);\n\n if (sources.length == 0) {\n return null;\n }\n\n let jar = ConfigJar.create(<IJarOptions>this.$options);\n sources.forEach(_source => {\n jar.merge(_source);\n });\n return jar;\n }\n\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -4,7 +4,7 @@ exports.FileSource = void 0;
|
|
|
4
4
|
const Source_1 = require("../Source");
|
|
5
5
|
class FileSource extends Source_1.Source {
|
|
6
6
|
constructor(opts) {
|
|
7
|
-
super({
|
|
7
|
+
super(Object.assign(Object.assign({}, opts), { source: 'file' }));
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
exports.FileSource = FileSource;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/config/handler/FileSource.ts"],"names":[],"mappings":";;;AACA,sCAAiC;AAGjC,MAAa,UAAW,SAAQ,eAAM;IAKpC,YAAY,IAAS;QACnB,KAAK,
|
|
1
|
+
{"version":3,"sources":["../../../src/config/handler/FileSource.ts"],"names":[],"mappings":";;;AACA,sCAAiC;AAGjC,MAAa,UAAW,SAAQ,eAAM;IAKpC,YAAY,IAAS;QACnB,KAAK,iCAAK,IAAI,KAAE,MAAM,EAAE,MAAM,IAAE,CAAC;IACnC,CAAC;CAEF;AATD,gCASC","file":"FileSource.js","sourcesContent":["import {IFilePath} from './IFilePath';\nimport {Source} from '../Source';\n\n\nexport class FileSource extends Source {\n\n file: IFilePath;\n\n\n constructor(opts: any) {\n super({...opts, source: 'file'});\n }\n\n}\n"],"sourceRoot":"../.."}
|
package/config/handler/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/config/handler/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/config/handler/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B","file":"index.js","sourcesContent":["export * from './SystemConfig';\nexport * from './FileConfig';\n"],"sourceRoot":"../.."}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/filesupport/types/JsonFileSupport.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../../../src/filesupport/types/JsonFileSupport.ts"],"names":[],"mappings":";;;AAGA,MAAa,eAAe;IAExB,cAAc;QACV,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAc;QAChB,IAAI,SAAS,GAAiB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,SAAS,CAAC;IACrB,CAAC;CAEJ;AAXD,0CAWC","file":"JsonFileSupport.js","sourcesContent":["import {IConfigData} from \"../../config/IConfigData\";\nimport {IFileSupport} from \"../IFileSupport\";\n\nexport class JsonFileSupport implements IFileSupport{\n\n supportedTypes(): string | string[] {\n return 'json';\n }\n\n parse(content:string):IConfigData{\n let rawConfig : IConfigData = JSON.parse(content);\n return rawConfig;\n }\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IConfigData } from
|
|
2
|
-
import { IFileSupport } from
|
|
1
|
+
import { IConfigData } from '../../config/IConfigData';
|
|
2
|
+
import { IFileSupport } from '../IFileSupport';
|
|
3
3
|
export declare class PropertiesFileSupport implements IFileSupport {
|
|
4
4
|
requirements(): void;
|
|
5
5
|
supportedTypes(): string | string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/filesupport/types/PropertiesFileSupport.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"sources":["../../../src/filesupport/types/PropertiesFileSupport.ts"],"names":[],"mappings":";;;AAEA,mCAA6B;AAC7B,0CAA8C;AAE9C,IAAI,IAAS,CAAC;AAEd,MAAM,OAAO,GAAG;IACd,IAAI,EAAE,KAAK;IACX,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,KAAK;CACf,CAAC;AAEF,MAAa,qBAAqB;IAEhC,YAAY;QACV,IAAI,GAAG,oBAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,GAAG,GAAgB,IAAI,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAA,cAAK,EAAC,OAAO,CAAC,CAAC;QAC5B,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC;IACb,CAAC;CAGF;AAlBD,sDAkBC","file":"PropertiesFileSupport.js","sourcesContent":["import {IConfigData} from '../../config/IConfigData';\nimport {IFileSupport} from '../IFileSupport';\nimport {clone} from 'lodash';\nimport {PlatformUtils} from '@allgemein/base';\n\nlet Prop: any;\n\nconst OPTIONS = {\n path: false,\n namespaces: true,\n sections: true,\n variables: true,\n include: false\n};\n\nexport class PropertiesFileSupport implements IFileSupport {\n\n requirements(): void {\n Prop = PlatformUtils.load('properties');\n }\n\n supportedTypes(): string | string[] {\n return ['conf', 'properties', 'ini'];\n }\n\n parse(content: string): IConfigData {\n let cfg: IConfigData = null;\n const opts = clone(OPTIONS);\n cfg = Prop.parse(content, opts);\n return cfg;\n }\n\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IConfigData } from
|
|
2
|
-
import { IFileSupport } from
|
|
1
|
+
import { IConfigData } from '../../config/IConfigData';
|
|
2
|
+
import { IFileSupport } from '../IFileSupport';
|
|
3
3
|
export declare class XmlFileSupport implements IFileSupport {
|
|
4
4
|
requirements(): void;
|
|
5
5
|
supportedTypes(): string | string[];
|
|
@@ -14,9 +14,9 @@ class XmlFileSupport {
|
|
|
14
14
|
if (!XML) {
|
|
15
15
|
XML = base_1.PlatformUtils.load('x2js');
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
const x2js = new XML();
|
|
18
18
|
let rawConfig = x2js.xml2js(content);
|
|
19
|
-
|
|
19
|
+
const rootKeys = Object.keys(rawConfig);
|
|
20
20
|
if (rootKeys.length == 1) {
|
|
21
21
|
rawConfig = rawConfig[rootKeys[0]];
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/filesupport/types/XmlFileSupport.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../../../src/filesupport/types/XmlFileSupport.ts"],"names":[],"mappings":";;;AAEA,0CAA8C;AAE9C,IAAI,GAAQ,CAAC;AAEb,MAAa,cAAc;IAEzB,YAAY;QACV,oBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAG,CAAC,GAAG,EAAC;YACN,GAAG,GAAG,oBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;QACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,SAAS,GAAgB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,IAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YACvB,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;SACpC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CAEF;AAvBD,wCAuBC","file":"XmlFileSupport.js","sourcesContent":["import {IConfigData} from '../../config/IConfigData';\nimport {IFileSupport} from '../IFileSupport';\nimport {PlatformUtils} from '@allgemein/base';\n\nlet XML: any;\n\nexport class XmlFileSupport implements IFileSupport{\n\n requirements(): void {\n PlatformUtils.load('x2js');\n }\n\n supportedTypes(): string | string[] {\n return 'xml';\n }\n\n parse(content: string): IConfigData{\n if(!XML){\n XML = PlatformUtils.load('x2js');\n }\n const x2js = new XML();\n let rawConfig: IConfigData = x2js.xml2js(content);\n const rootKeys = Object.keys(rawConfig);\n if(rootKeys.length == 1) {\n rawConfig = rawConfig[rootKeys[0]];\n }\n return rawConfig;\n }\n\n}\n"],"sourceRoot":"../.."}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@allgemein/config",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5",
|
|
4
4
|
"description": "@allgemein/config is a configurable configuration content handler which supports multiple configuration infrastructures and file formats.",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"browser": {
|
|
@@ -33,38 +33,43 @@
|
|
|
33
33
|
},
|
|
34
34
|
"homepage": "https://github.com/allgemein-node/config#readme",
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@allgemein/packaging": "^1.
|
|
37
|
-
"@testdeck/mocha": "^0.1
|
|
38
|
-
"@types/chai": "^4.
|
|
39
|
-
"@types/glob": "^
|
|
40
|
-
"@types/lodash": "^4.14.
|
|
41
|
-
"@types/mocha": "^
|
|
42
|
-
"@types/node": "^
|
|
43
|
-
"chai": "^4.3.
|
|
44
|
-
"codecov": "^3.8.
|
|
45
|
-
"codelyzer": "^6.0.
|
|
46
|
-
"del": "6.
|
|
47
|
-
"glob": "^
|
|
36
|
+
"@allgemein/packaging": "^1.2.18",
|
|
37
|
+
"@testdeck/mocha": "^0.2.1",
|
|
38
|
+
"@types/chai": "^4.3.3",
|
|
39
|
+
"@types/glob": "^8.0.0",
|
|
40
|
+
"@types/lodash": "^4.14.186",
|
|
41
|
+
"@types/mocha": "^10.0.0",
|
|
42
|
+
"@types/node": "^18.7.23",
|
|
43
|
+
"chai": "^4.3.6",
|
|
44
|
+
"codecov": "^3.8.2",
|
|
45
|
+
"codelyzer": "^6.0.2",
|
|
46
|
+
"del": "6.1.1",
|
|
47
|
+
"glob": "^8.0.3",
|
|
48
48
|
"gulp": "4.0.2",
|
|
49
49
|
"gulp-bump": "3.2.0",
|
|
50
50
|
"gulp-clean": "^0.4.0",
|
|
51
|
-
"gulp-mocha": "^
|
|
52
|
-
"gulp-replace": "^1.
|
|
51
|
+
"gulp-mocha": "^8.0.0",
|
|
52
|
+
"gulp-replace": "^1.1.3",
|
|
53
53
|
"gulp-shell": "0.8.0",
|
|
54
54
|
"gulp-sourcemaps": "3.0.0",
|
|
55
55
|
"gulp-typescript": "5.0.1",
|
|
56
|
-
"js-yaml": "^4.
|
|
56
|
+
"js-yaml": "^4.1.0",
|
|
57
57
|
"merge-stream": "^2.0.0",
|
|
58
|
-
"mocha": "^
|
|
58
|
+
"mocha": "^10.0.0",
|
|
59
59
|
"nyc": "^15.1.0",
|
|
60
60
|
"properties": "^1.2.1",
|
|
61
|
-
"ts-node": "^9.1
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
61
|
+
"ts-node": "^10.9.1",
|
|
62
|
+
"typescript": "4.8.4",
|
|
63
|
+
"x2js": "^3.4.3",
|
|
64
|
+
"@typescript-eslint/eslint-plugin": "^5.38.1",
|
|
65
|
+
"@typescript-eslint/parser": "^5.38.1",
|
|
66
|
+
"eslint": "8.24.0",
|
|
67
|
+
"eslint-plugin-import": "2.26.0",
|
|
68
|
+
"eslint-plugin-mocha": "10.1.0",
|
|
69
|
+
"eslint-plugin-prettier": "4.2.1"
|
|
65
70
|
},
|
|
66
71
|
"dependencies": {
|
|
67
|
-
"@allgemein/base": "^1.
|
|
72
|
+
"@allgemein/base": "^1.6.12",
|
|
68
73
|
"multimatch": "^5.0.0"
|
|
69
74
|
},
|
|
70
75
|
"private": false,
|
|
@@ -1,46 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InterpolationSupport = void 0;
|
|
4
|
-
const
|
|
4
|
+
const Interpolation_1 = require("@allgemein/base/utils/Interpolation");
|
|
5
5
|
const REGEX = /\${[^}]+}/g;
|
|
6
6
|
class InterpolationSupport {
|
|
7
|
-
// private lookup
|
|
8
7
|
static exec(data, ...lookup) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
8
|
+
return Interpolation_1.Interpolation.exec(data, ...lookup);
|
|
9
|
+
//
|
|
10
|
+
// if (!lookup.length) {
|
|
11
|
+
// lookup = [data];
|
|
12
|
+
// } else {
|
|
13
|
+
// if (Array.isArray(lookup[0])) {
|
|
14
|
+
// lookup = lookup[0];
|
|
15
|
+
// }
|
|
16
|
+
// }
|
|
17
|
+
//
|
|
18
|
+
// Utils.walk(data, (x: any) => {
|
|
19
|
+
// let v = x.value;
|
|
20
|
+
// if (typeof v === 'string' && REGEX.test(v)) {
|
|
21
|
+
// const match = v.match(REGEX);
|
|
22
|
+
// match.forEach(_match => {
|
|
23
|
+
// const content = _match.replace(/^\${|}$/g, '');
|
|
24
|
+
// const splits = content.split(':-', 2);
|
|
25
|
+
// const path = splits.shift();
|
|
26
|
+
// const hasFallback = splits.length > 0;
|
|
27
|
+
// const fallback = splits.shift();
|
|
28
|
+
// let _value = null;
|
|
29
|
+
//
|
|
30
|
+
// for (let i = 0; i < lookup.length; i++) {
|
|
31
|
+
// _value = Utils.get(lookup[i], path);
|
|
32
|
+
// if (_value) {
|
|
33
|
+
// break;
|
|
34
|
+
// }
|
|
35
|
+
// }
|
|
36
|
+
//
|
|
37
|
+
// if (_value) {
|
|
38
|
+
// if (x.index !== null) {
|
|
39
|
+
// x.parent[x.key][x.index] = v = v.replace(_match, _value);
|
|
40
|
+
// } else {
|
|
41
|
+
// x.parent[x.key] = v = v.replace(_match, _value);
|
|
42
|
+
// }
|
|
43
|
+
// } else {
|
|
44
|
+
// if (hasFallback) {
|
|
45
|
+
// if (x.index !== null) {
|
|
46
|
+
// x.parent[x.key][x.index] = v = v.replace(_match, fallback);
|
|
47
|
+
// } else {
|
|
48
|
+
// x.parent[x.key] = v = v.replace(_match, fallback);
|
|
49
|
+
// }
|
|
50
|
+
// }
|
|
51
|
+
// }
|
|
52
|
+
// });
|
|
53
|
+
// }
|
|
54
|
+
// });
|
|
44
55
|
}
|
|
45
56
|
}
|
|
46
57
|
exports.InterpolationSupport = InterpolationSupport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/supports/InterpolationSupport.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"sources":["../../../src/supports/InterpolationSupport.ts"],"names":[],"mappings":";;;AAEA,uEAAkE;AAElE,MAAM,KAAK,GAAG,YAAY,CAAC;AAG3B,MAAa,oBAAoB;IAE/B,MAAM,CAAC,IAAI,CAAC,IAAiB,EAAE,GAAG,MAAa;QAC7C,OAAO,6BAAa,CAAC,IAAI,CAAC,IAAI,EAAC,GAAG,MAAM,CAAC,CAAC;QAC1C,EAAE;QACF,wBAAwB;QACxB,qBAAqB;QACrB,WAAW;QACX,oCAAoC;QACpC,0BAA0B;QAC1B,MAAM;QACN,IAAI;QACJ,EAAE;QACF,iCAAiC;QACjC,qBAAqB;QACrB,kDAAkD;QAClD,oCAAoC;QACpC,gCAAgC;QAChC,wDAAwD;QACxD,+CAA+C;QAC/C,qCAAqC;QACrC,+CAA+C;QAC/C,yCAAyC;QACzC,2BAA2B;QAC3B,EAAE;QACF,kDAAkD;QAClD,+CAA+C;QAC/C,wBAAwB;QACxB,mBAAmB;QACnB,YAAY;QACZ,UAAU;QACV,EAAE;QACF,sBAAsB;QACtB,kCAAkC;QAClC,sEAAsE;QACtE,mBAAmB;QACnB,6DAA6D;QAC7D,YAAY;QACZ,iBAAiB;QACjB,6BAA6B;QAC7B,oCAAoC;QACpC,0EAA0E;QAC1E,qBAAqB;QACrB,iEAAiE;QACjE,cAAc;QACd,YAAY;QACZ,UAAU;QACV,UAAU;QACV,MAAM;QACN,MAAM;IAER,CAAC;CAEF;AArDD,oDAqDC","file":"InterpolationSupport.js","sourcesContent":["import {IConfigData} from '../config/IConfigData';\nimport {Utils} from '../utils/Utils';\nimport {Interpolation} from \"@allgemein/base/utils/Interpolation\";\n\nconst REGEX = /\\${[^}]+}/g;\n\n\nexport class InterpolationSupport {\n\n static exec(data: IConfigData, ...lookup: any[]): void {\n return Interpolation.exec(data,...lookup);\n //\n // if (!lookup.length) {\n // lookup = [data];\n // } else {\n // if (Array.isArray(lookup[0])) {\n // lookup = lookup[0];\n // }\n // }\n //\n // Utils.walk(data, (x: any) => {\n // let v = x.value;\n // if (typeof v === 'string' && REGEX.test(v)) {\n // const match = v.match(REGEX);\n // match.forEach(_match => {\n // const content = _match.replace(/^\\${|}$/g, '');\n // const splits = content.split(':-', 2);\n // const path = splits.shift();\n // const hasFallback = splits.length > 0;\n // const fallback = splits.shift();\n // let _value = null;\n //\n // for (let i = 0; i < lookup.length; i++) {\n // _value = Utils.get(lookup[i], path);\n // if (_value) {\n // break;\n // }\n // }\n //\n // if (_value) {\n // if (x.index !== null) {\n // x.parent[x.key][x.index] = v = v.replace(_match, _value);\n // } else {\n // x.parent[x.key] = v = v.replace(_match, _value);\n // }\n // } else {\n // if (hasFallback) {\n // if (x.index !== null) {\n // x.parent[x.key][x.index] = v = v.replace(_match, fallback);\n // } else {\n // x.parent[x.key] = v = v.replace(_match, fallback);\n // }\n // }\n // }\n // });\n // }\n // });\n\n }\n\n}\n"],"sourceRoot":".."}
|
package/utils/Utils.d.ts
CHANGED
|
@@ -9,7 +9,6 @@ export declare class Utils {
|
|
|
9
9
|
static clone(obj: any): any;
|
|
10
10
|
static uniqArr(res: any[]): any[];
|
|
11
11
|
static merge(...args: any[]): any;
|
|
12
|
-
static walk(root: any, fn: Function): void;
|
|
13
12
|
static get(arr: any, path?: string): any;
|
|
14
13
|
static splitTyped(arr: string, sep?: string): any[];
|
|
15
14
|
static set(arr: any, path: string | any[], value: any): boolean;
|
package/utils/Utils.js
CHANGED
|
@@ -1,9 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.Utils = void 0;
|
|
4
27
|
// import {merge, mergeDeep} from "typescript-object-utils";
|
|
5
28
|
// import * as merge from 'deepmerge'
|
|
6
|
-
const _ = require("lodash");
|
|
29
|
+
const _ = __importStar(require("lodash"));
|
|
30
|
+
const Interpolation_1 = require("@allgemein/base/utils/Interpolation");
|
|
7
31
|
class Utils {
|
|
8
32
|
/**
|
|
9
33
|
* https://stackoverflow.com/questions/1960473/unique-values-in-an-array
|
|
@@ -38,10 +62,10 @@ class Utils {
|
|
|
38
62
|
});
|
|
39
63
|
}
|
|
40
64
|
static merge(...args) {
|
|
41
|
-
|
|
65
|
+
const first = _.cloneDeep(args.shift());
|
|
42
66
|
return _.mergeWith(first, ...args, (dest, source) => {
|
|
43
67
|
if (_.isArray(dest)) {
|
|
44
|
-
|
|
68
|
+
const res = _.concat(dest, source);
|
|
45
69
|
return Utils.uniqArr(res);
|
|
46
70
|
}
|
|
47
71
|
else if (_.isPlainObject(dest)) {
|
|
@@ -51,86 +75,90 @@ class Utils {
|
|
|
51
75
|
return source;
|
|
52
76
|
}
|
|
53
77
|
});
|
|
54
|
-
//return merge.all(args, {arrayMerge: this.mergeArray})
|
|
55
|
-
//return _.merge(...args);//merge.all(args)
|
|
78
|
+
// return merge.all(args, {arrayMerge: this.mergeArray})
|
|
79
|
+
// return _.merge(...args);//merge.all(args)
|
|
56
80
|
/*
|
|
57
81
|
let tmp:any={}
|
|
58
82
|
args.forEach(_x => {tmp = mergeDeep(tmp,_x)})
|
|
59
83
|
return tmp
|
|
60
84
|
*/
|
|
61
85
|
}
|
|
62
|
-
static walk(root, fn) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
86
|
+
// static walk(root: any, fn: Function) {
|
|
87
|
+
// function walk(obj: any, location: any[] = []) {
|
|
88
|
+
// if (obj === null || obj === undefined) {
|
|
89
|
+
// return;
|
|
90
|
+
// }
|
|
91
|
+
//
|
|
92
|
+
// Object.keys(obj).forEach((key) => {
|
|
93
|
+
//
|
|
94
|
+
// // Value is an array, call walk on each item in the array
|
|
95
|
+
// if (Array.isArray(obj[key])) {
|
|
96
|
+
// obj[key].forEach((el: any, j: number) => {
|
|
97
|
+
// fn({
|
|
98
|
+
// value: el,
|
|
99
|
+
// key: key,
|
|
100
|
+
// index: j,
|
|
101
|
+
// location: [...location, ...[key], ...[j]],
|
|
102
|
+
// parent: obj,
|
|
103
|
+
// isLeaf: false
|
|
104
|
+
// });
|
|
105
|
+
// walk(el, [...location, ...[key], ...[j]]);
|
|
106
|
+
// });
|
|
107
|
+
//
|
|
108
|
+
// // Value is an object, walk the keys of the object
|
|
109
|
+
// } else if (typeof obj[key] === 'object') {
|
|
110
|
+
// fn({
|
|
111
|
+
// value: obj[key],
|
|
112
|
+
// key: key,
|
|
113
|
+
// parent: obj,
|
|
114
|
+
// index: null,
|
|
115
|
+
// location: [...location, ...[key]],
|
|
116
|
+
// isLeaf: false
|
|
117
|
+
// });
|
|
118
|
+
// walk(obj[key], [...location, ...[key]]);
|
|
119
|
+
//
|
|
120
|
+
// // We've reached a leaf node, call fn on the leaf with the location
|
|
121
|
+
// } else {
|
|
122
|
+
// fn({
|
|
123
|
+
// value: obj[key],
|
|
124
|
+
// key: key,
|
|
125
|
+
// parent: obj,
|
|
126
|
+
// index: null,
|
|
127
|
+
// location: [...location, ...[key]],
|
|
128
|
+
// isLeaf: true
|
|
129
|
+
// });
|
|
130
|
+
// }
|
|
131
|
+
// });
|
|
132
|
+
// }
|
|
133
|
+
//
|
|
134
|
+
// walk(root);
|
|
135
|
+
// }
|
|
108
136
|
static get(arr, path = null) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
129
|
-
return arr;
|
|
137
|
+
return Interpolation_1.Interpolation.get(arr, path);
|
|
138
|
+
// if (path) {
|
|
139
|
+
// const paths = path.split('.');
|
|
140
|
+
// let first: string | number = paths.shift();
|
|
141
|
+
// if (/^[1-9]+\d*$/.test(first)) {
|
|
142
|
+
// first = parseInt(first);
|
|
143
|
+
// }
|
|
144
|
+
// if (arr.hasOwnProperty(first)) {
|
|
145
|
+
// const pointer: any = arr[first];
|
|
146
|
+
// if (paths.length === 0) {
|
|
147
|
+
// return pointer;
|
|
148
|
+
// } else {
|
|
149
|
+
// return Utils.get(pointer, paths.join('.'));
|
|
150
|
+
// }
|
|
151
|
+
// } else {
|
|
152
|
+
// // not found
|
|
153
|
+
// return null;
|
|
154
|
+
// }
|
|
155
|
+
//
|
|
156
|
+
// }
|
|
157
|
+
// return arr;
|
|
130
158
|
}
|
|
131
159
|
static splitTyped(arr, sep = '.') {
|
|
132
|
-
|
|
133
|
-
|
|
160
|
+
const paths = arr.split('.');
|
|
161
|
+
const normPaths = [];
|
|
134
162
|
paths.forEach(function (_x) {
|
|
135
163
|
if (typeof _x === 'string' && /\d+/.test(_x)) {
|
|
136
164
|
normPaths.push(parseInt(_x));
|
|
@@ -151,7 +179,7 @@ class Utils {
|
|
|
151
179
|
paths = path;
|
|
152
180
|
}
|
|
153
181
|
first = paths.shift();
|
|
154
|
-
|
|
182
|
+
const next = paths.length > 0 ? paths[0] : null;
|
|
155
183
|
if (!arr.hasOwnProperty(first)) {
|
|
156
184
|
// new, key doesn't exists
|
|
157
185
|
if (typeof next === 'number') {
|
package/utils/Utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/Utils.ts"],"names":[],"mappings":"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","file":"Utils.js","sourcesContent":["// import {merge, mergeDeep} from \"typescript-object-utils\";\n// import * as merge from 'deepmerge'\nimport * as _ from 'lodash';\n\n\nexport class Utils {\n\n /**\n * https://stackoverflow.com/questions/1960473/unique-values-in-an-array\n * @param arr\n * @returns {any[]}\n */\n static unique_array(arr: any[]): any[] {\n return arr.filter((v, i, a) => a.indexOf(v) === i);\n }\n\n static escapeRegExp(text: string): string {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n static clone(obj: any) {\n return _.cloneDeep(obj)\n }\n\n /*\n static mergeArray(dest: any[], source: any[], options?: merge.Options) {\n let res = _.concat(dest, source);\n return Utils.uniqArr(res)\n }\n*/\n\n static uniqArr(res: any[]) {\n return _.uniqBy(res, (entry: any) => {\n let x = null\n if (_.isFunction(entry)) {\n x = entry.toString();\n } else {\n x = JSON.stringify(entry);\n }\n return x\n });\n }\n\n\n static merge(...args: any[]): any {\n let first = _.cloneDeep(args.shift());\n return _.mergeWith(first, ...args, (dest: any, source: any) => {\n if (_.isArray(dest)) {\n let res = _.concat(dest, source);\n return Utils.uniqArr(res)\n } else if (_.isPlainObject(dest)) {\n return Utils.merge(dest, source);\n } else {\n return source;\n }\n\n });\n //return merge.all(args, {arrayMerge: this.mergeArray})\n //return _.merge(...args);//merge.all(args)\n /*\n let tmp:any={}\n args.forEach(_x => {tmp = mergeDeep(tmp,_x)})\n return tmp\n */\n }\n\n static walk(root: any, fn: Function) {\n function walk(obj: any, location: any[] = []) {\n if (obj === null || obj === undefined) return;\n\n Object.keys(obj).forEach((key) => {\n\n // Value is an array, call walk on each item in the array\n if (Array.isArray(obj[key])) {\n obj[key].forEach((el: any, j: number) => {\n fn({\n value: el,\n key: key,\n index: j,\n location: [...location, ...[key], ...[j]],\n parent: obj,\n isLeaf: false\n });\n walk(el, [...location, ...[key], ...[j]])\n })\n\n // Value is an object, walk the keys of the object\n } else if (typeof obj[key] === 'object') {\n fn({\n value: obj[key],\n key: key,\n parent: obj,\n index: null,\n location: [...location, ...[key]],\n isLeaf: false\n });\n walk(obj[key], [...location, ...[key]])\n\n // We've reached a leaf node, call fn on the leaf with the location\n } else {\n fn({\n value: obj[key],\n key: key,\n parent: obj,\n index: null,\n location: [...location, ...[key]],\n isLeaf: true\n })\n }\n })\n }\n\n walk(root)\n }\n\n static get(arr: any, path: string = null): any {\n if (path) {\n let paths = path.split('.');\n let first: string | number = paths.shift();\n if (/^[1-9]+\\d*$/.test(first)) {\n first = parseInt(first)\n }\n if (arr.hasOwnProperty(first)) {\n let pointer: any = arr[first];\n if (paths.length === 0) {\n return pointer\n } else {\n return Utils.get(pointer, paths.join('.'))\n }\n } else {\n // not found\n return null\n }\n\n }\n return arr\n\n }\n\n static splitTyped(arr: string, sep: string = '.'): any[] {\n let paths = arr.split('.');\n let normPaths: any[] = [];\n paths.forEach(function (_x) {\n if (typeof _x === 'string' && /\\d+/.test(_x)) {\n normPaths.push(parseInt(_x))\n } else {\n normPaths.push(_x)\n }\n\n });\n return normPaths\n }\n\n static set(arr: any, path: string | any[], value: any): boolean {\n let paths = null;\n let first: string | number = null;\n\n if (typeof path === 'string') {\n paths = Utils.splitTyped(path)\n } else {\n paths = path\n }\n first = paths.shift();\n let next = paths.length > 0 ? paths[0] : null;\n\n\n if (!arr.hasOwnProperty(first)) {\n // new, key doesn't exists\n if (typeof next === 'number') {\n // if next value is a number then this must be an array!\n arr[first] = []\n } else {\n arr[first] = {}\n }\n } else {\n if (Array.isArray(arr)) {\n if (!(typeof first === 'number')) {\n return false\n }\n } else if (Array.isArray(arr[first])) {\n if (!(typeof next === 'number')) {\n return false\n }\n } else if (!Utils.isObject(arr[first])) {\n // primative\n if (Utils.isObject(value)) {\n return false\n }\n } else {\n if (typeof next === 'number') {\n // must be array\n if (!Array.isArray(arr[first])) {\n return false\n }\n }\n }\n }\n\n if (paths.length > 0) {\n return Utils.set(arr[first], paths, value)\n } else {\n arr[first] = value;\n return true\n }\n }\n\n static isArray(o: any) {\n return _.isArray(o)\n }\n\n static isObject(o: any) {\n return _.isObject(o)\n }\n\n\n static isString(o: any) {\n return _.isString(o)\n }\n\n\n static isEmpty(o: any) {\n return _.isEmpty(o)\n }\n}\n"],"sourceRoot":".."}
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/Utils.ts"],"names":[],"mappings":"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","file":"Utils.js","sourcesContent":["// import {merge, mergeDeep} from \"typescript-object-utils\";\n// import * as merge from 'deepmerge'\nimport * as _ from 'lodash';\nimport {Interpolation} from \"@allgemein/base/utils/Interpolation\";\n\n\nexport class Utils {\n\n /**\n * https://stackoverflow.com/questions/1960473/unique-values-in-an-array\n * @param arr\n * @returns {any[]}\n */\n static unique_array(arr: any[]): any[] {\n return arr.filter((v, i, a) => a.indexOf(v) === i);\n }\n\n static escapeRegExp(text: string): string {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n static clone(obj: any) {\n return _.cloneDeep(obj);\n }\n\n /*\n static mergeArray(dest: any[], source: any[], options?: merge.Options) {\n let res = _.concat(dest, source);\n return Utils.uniqArr(res)\n }\n*/\n\n static uniqArr(res: any[]) {\n return _.uniqBy(res, (entry: any) => {\n let x = null;\n if (_.isFunction(entry)) {\n x = entry.toString();\n } else {\n x = JSON.stringify(entry);\n }\n return x;\n });\n }\n\n\n static merge(...args: any[]): any {\n const first = _.cloneDeep(args.shift());\n return _.mergeWith(first, ...args, (dest: any, source: any) => {\n if (_.isArray(dest)) {\n const res = _.concat(dest, source);\n return Utils.uniqArr(res);\n } else if (_.isPlainObject(dest)) {\n return Utils.merge(dest, source);\n } else {\n return source;\n }\n\n });\n // return merge.all(args, {arrayMerge: this.mergeArray})\n // return _.merge(...args);//merge.all(args)\n /*\n let tmp:any={}\n args.forEach(_x => {tmp = mergeDeep(tmp,_x)})\n return tmp\n */\n }\n\n // static walk(root: any, fn: Function) {\n // function walk(obj: any, location: any[] = []) {\n // if (obj === null || obj === undefined) {\n // return;\n // }\n //\n // Object.keys(obj).forEach((key) => {\n //\n // // Value is an array, call walk on each item in the array\n // if (Array.isArray(obj[key])) {\n // obj[key].forEach((el: any, j: number) => {\n // fn({\n // value: el,\n // key: key,\n // index: j,\n // location: [...location, ...[key], ...[j]],\n // parent: obj,\n // isLeaf: false\n // });\n // walk(el, [...location, ...[key], ...[j]]);\n // });\n //\n // // Value is an object, walk the keys of the object\n // } else if (typeof obj[key] === 'object') {\n // fn({\n // value: obj[key],\n // key: key,\n // parent: obj,\n // index: null,\n // location: [...location, ...[key]],\n // isLeaf: false\n // });\n // walk(obj[key], [...location, ...[key]]);\n //\n // // We've reached a leaf node, call fn on the leaf with the location\n // } else {\n // fn({\n // value: obj[key],\n // key: key,\n // parent: obj,\n // index: null,\n // location: [...location, ...[key]],\n // isLeaf: true\n // });\n // }\n // });\n // }\n //\n // walk(root);\n // }\n\n static get(arr: any, path: string = null): any {\n return Interpolation.get(arr, path);\n // if (path) {\n // const paths = path.split('.');\n // let first: string | number = paths.shift();\n // if (/^[1-9]+\\d*$/.test(first)) {\n // first = parseInt(first);\n // }\n // if (arr.hasOwnProperty(first)) {\n // const pointer: any = arr[first];\n // if (paths.length === 0) {\n // return pointer;\n // } else {\n // return Utils.get(pointer, paths.join('.'));\n // }\n // } else {\n // // not found\n // return null;\n // }\n //\n // }\n // return arr;\n }\n\n static splitTyped(arr: string, sep: string = '.'): any[] {\n const paths = arr.split('.');\n const normPaths: any[] = [];\n paths.forEach(function (_x) {\n if (typeof _x === 'string' && /\\d+/.test(_x)) {\n normPaths.push(parseInt(_x));\n } else {\n normPaths.push(_x);\n }\n\n });\n return normPaths;\n }\n\n static set(arr: any, path: string | any[], value: any): boolean {\n let paths = null;\n let first: string | number = null;\n\n if (typeof path === 'string') {\n paths = Utils.splitTyped(path);\n } else {\n paths = path;\n }\n first = paths.shift();\n const next = paths.length > 0 ? paths[0] : null;\n\n\n if (!arr.hasOwnProperty(first)) {\n // new, key doesn't exists\n if (typeof next === 'number') {\n // if next value is a number then this must be an array!\n arr[first] = [];\n } else {\n arr[first] = {};\n }\n } else {\n if (Array.isArray(arr)) {\n if (!(typeof first === 'number')) {\n return false;\n }\n } else if (Array.isArray(arr[first])) {\n if (!(typeof next === 'number')) {\n return false;\n }\n } else if (!Utils.isObject(arr[first])) {\n // primative\n if (Utils.isObject(value)) {\n return false;\n }\n } else {\n if (typeof next === 'number') {\n // must be array\n if (!Array.isArray(arr[first])) {\n return false;\n }\n }\n }\n }\n\n if (paths.length > 0) {\n return Utils.set(arr[first], paths, value);\n } else {\n arr[first] = value;\n return true;\n }\n }\n\n static isArray(o: any) {\n return _.isArray(o);\n }\n\n static isObject(o: any) {\n return _.isObject(o);\n }\n\n\n static isString(o: any) {\n return _.isString(o);\n }\n\n\n static isEmpty(o: any) {\n return _.isEmpty(o);\n }\n}\n"],"sourceRoot":".."}
|