@digital-alchemy/core 24.10.3 → 24.10.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.
Files changed (31) hide show
  1. package/dist/helpers/config-environment-loader.helper.js +13 -5
  2. package/dist/helpers/config-environment-loader.helper.js.map +1 -1
  3. package/dist/helpers/config.helper.d.ts +21 -1
  4. package/dist/helpers/config.helper.js.map +1 -1
  5. package/dist/helpers/cron.helper.d.ts +4 -2
  6. package/dist/helpers/cron.helper.js +5 -0
  7. package/dist/helpers/cron.helper.js.map +1 -1
  8. package/dist/helpers/module.helper.js +13 -10
  9. package/dist/helpers/module.helper.js.map +1 -1
  10. package/dist/helpers/wiring.helper.d.ts +6 -11
  11. package/dist/helpers/wiring.helper.js +5 -1
  12. package/dist/helpers/wiring.helper.js.map +1 -1
  13. package/dist/services/configuration.extension.d.ts +1 -1
  14. package/dist/services/configuration.extension.js +92 -57
  15. package/dist/services/configuration.extension.js.map +1 -1
  16. package/dist/services/internal.extension.d.ts +6 -1
  17. package/dist/services/internal.extension.js +6 -1
  18. package/dist/services/internal.extension.js.map +1 -1
  19. package/dist/services/logger.extension.js +18 -5
  20. package/dist/services/logger.extension.js.map +1 -1
  21. package/dist/services/scheduler.extension.js +12 -12
  22. package/dist/services/scheduler.extension.js.map +1 -1
  23. package/dist/services/wiring.extension.d.ts +2 -4
  24. package/dist/services/wiring.extension.js +16 -13
  25. package/dist/services/wiring.extension.js.map +1 -1
  26. package/dist/testing/mock-logger.js +6 -6
  27. package/dist/testing/mock-logger.js.map +1 -1
  28. package/dist/testing/test-module.d.ts +13 -5
  29. package/dist/testing/test-module.js +11 -8
  30. package/dist/testing/test-module.js.map +1 -1
  31. package/package.json +23 -23
@@ -1,3 +1,4 @@
1
+ /* eslint-disable unicorn/prevent-abbreviations */
1
2
  import minimist from "minimist";
2
3
  import { env } from "process";
3
4
  import { is } from "..";
@@ -6,6 +7,10 @@ export async function ConfigLoaderEnvironment({ configs, internal, logger }) {
6
7
  const CLI_SWITCHES = minimist(process.argv);
7
8
  const switchKeys = Object.keys(CLI_SWITCHES);
8
9
  const out = {};
10
+ const canEnvironment = internal.boot.options?.configSources?.env ?? true;
11
+ const canArgv = internal.boot.options?.configSources?.argv ?? true;
12
+ const shouldArgv = (source) => canArgv && (!is.array(source) || source.includes("argv"));
13
+ const shouldEnv = (source) => canEnvironment && (!is.array(source) || source.includes("env"));
9
14
  // * merge dotenv into local vars
10
15
  // accounts for `--env-file` switches, and whatever is passed in via bootstrap
11
16
  loadDotenv(internal, CLI_SWITCHES, logger);
@@ -15,6 +20,7 @@ export async function ConfigLoaderEnvironment({ configs, internal, logger }) {
15
20
  const cleanedProject = project.replaceAll("-", "_");
16
21
  // * run through each config for module
17
22
  Object.keys(configuration).forEach(key => {
23
+ const { source } = configs.get(project)[key];
18
24
  // > things to search for
19
25
  // - MODULE_NAME_CONFIG_KEY (module + key, ex: app_NODE_ENV)
20
26
  // - CONFIG_KEY (only key, ex: NODE_ENV)
@@ -23,10 +29,10 @@ export async function ConfigLoaderEnvironment({ configs, internal, logger }) {
23
29
  const configPath = `${project}.${key}`;
24
30
  // * (preferred) Find an applicable cli switch
25
31
  const flag = findKey(search, switchKeys);
26
- if (flag) {
32
+ if (flag && shouldArgv(source)) {
27
33
  const formattedFlag = iSearchKey(flag, switchKeys);
28
34
  internal.utils.object.set(out, configPath, parseConfig(configuration[key], CLI_SWITCHES[formattedFlag]));
29
- logger.trace({
35
+ logger.debug({
30
36
  flag: formattedFlag,
31
37
  name: ConfigLoaderEnvironment,
32
38
  path: configPath,
@@ -35,10 +41,12 @@ export async function ConfigLoaderEnvironment({ configs, internal, logger }) {
35
41
  }
36
42
  // * (fallback) Find an environment variable
37
43
  const environment = findKey(search, environmentKeys);
38
- if (!is.empty(environment)) {
44
+ if (!is.empty(environment) && shouldEnv(source)) {
39
45
  const environmentName = iSearchKey(environment, environmentKeys);
40
- internal.utils.object.set(out, configPath, parseConfig(configuration[key], env[environmentName]));
41
- logger.trace({
46
+ if (!is.string(env[environmentName]) || !is.empty(env[environmentName])) {
47
+ internal.utils.object.set(out, configPath, parseConfig(configuration[key], env[environmentName]));
48
+ }
49
+ logger.debug({
42
50
  name: ConfigLoaderEnvironment,
43
51
  path: configPath,
44
52
  var: environmentName,
@@ -1 +1 @@
1
- {"version":3,"file":"config-environment-loader.helper.js","sourceRoot":"","sources":["../../src/helpers/config-environment-loader.helper.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,EAAE,EAAc,MAAM,IAAI,CAAC;AACpC,OAAO,EAIL,OAAO,EACP,UAAU,EACV,UAAU,EAEV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAG3C,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAA4B;IACvD,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,GAAG,GAA4B,EAAE,CAAC;IAExC,iCAAiC;IACjC,8EAA8E;IAC9E,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzC,0BAA0B;IAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE;QACzC,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEpD,uCAAuC;QACvC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvC,yBAAyB;YACzB,4DAA4D;YAC5D,wCAAwC;YACxC,MAAM,SAAS,GAAG,GAAG,cAAc,IAAI,GAAG,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAChC,MAAM,UAAU,GAAG,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC;YAEvC,8CAA8C;YAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACzC,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBACnD,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CACvB,GAAG,EACH,UAAU,EACV,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAC7D,CAAC;gBACF,MAAM,CAAC,KAAK,CACV;oBACE,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,uBAAuB;oBAC7B,IAAI,EAAE,UAAU;iBACjB,EACD,+BAA+B,CAChC,CAAC;gBACF,OAAO;YACT,CAAC;YAED,4CAA4C;YAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACrD,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3B,MAAM,eAAe,GAAG,UAAU,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;gBACjE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CACvB,GAAG,EACH,UAAU,EACV,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CACtD,CAAC;gBACF,MAAM,CAAC,KAAK,CACV;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,IAAI,EAAE,UAAU;oBAChB,GAAG,EAAE,eAAe;iBACrB,EACD,wBAAwB,CACzB,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"config-environment-loader.helper.js","sourceRoot":"","sources":["../../src/helpers/config-environment-loader.helper.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,20 @@
1
1
  import { ParsedArgs } from "minimist";
2
2
  import { ILogger, INITIALIZE, INJECTED_DEFINITIONS, InternalDefinition, LOAD_PROJECT, TBlackHole } from "..";
3
3
  import { ApplicationDefinition, PartialConfiguration, ServiceMap, TInjectedConfig } from "./wiring.helper";
4
+ export interface ConfigLoaderSource {
5
+ /**
6
+ * will be checked for values unless `sources` is defined without argv
7
+ */
8
+ argv: true;
9
+ /**
10
+ * will be checked for values unless `env` is defined without argv
11
+ */
12
+ env: true;
13
+ /**
14
+ * will be checked for values unless `file` is defined without argv
15
+ */
16
+ file: true;
17
+ }
4
18
  export type CodeConfigDefinition = Record<string, AnyConfig>;
5
19
  export type ProjectConfigTypes = "string" | "boolean" | "internal" | "number" | "record" | "string[]";
6
20
  export type AnyConfig = StringConfig<string> | BooleanConfig | InternalConfig<object> | NumberConfig | RecordConfig | StringArrayConfig;
@@ -19,6 +33,10 @@ export interface BaseConfig {
19
33
  */
20
34
  required?: boolean;
21
35
  type: ProjectConfigTypes;
36
+ /**
37
+ * Where this can be loaded from
38
+ */
39
+ source?: (keyof ConfigLoaderSource)[];
22
40
  }
23
41
  export type KnownConfigs = Map<string, CodeConfigDefinition>;
24
42
  export interface StringConfig<STRING extends string> extends BaseConfig {
@@ -115,9 +133,10 @@ export declare function loadDotenv(internal: InternalDefinition, CLI_SWITCHES: P
115
133
  export declare function parseConfig(config: AnyConfig, value: string): any;
116
134
  export type DigitalAlchemyConfiguration = {
117
135
  [INITIALIZE]: <S extends ServiceMap, C extends OptionalModuleConfiguration>(application: ApplicationDefinition<S, C>) => Promise<string>;
118
- [INJECTED_DEFINITIONS]: () => TInjectedConfig;
136
+ [INJECTED_DEFINITIONS]: TInjectedConfig;
119
137
  [LOAD_PROJECT]: (library: string, definitions: CodeConfigDefinition) => void;
120
138
  getDefinitions: () => KnownConfigs;
139
+ registerLoader: (loader: ConfigLoader, type: DataTypes) => void;
121
140
  merge: (incoming: Partial<PartialConfiguration>) => PartialConfiguration;
122
141
  /**
123
142
  * Not a replacement for `onPostConfig`
@@ -134,3 +153,4 @@ export type DigitalAlchemyConfiguration = {
134
153
  };
135
154
  export type TSetConfig = <Project extends keyof TInjectedConfig, Property extends keyof TInjectedConfig[Project]>(project: Project, property: Property, value: TInjectedConfig[Project][Property]) => void;
136
155
  export type OnConfigUpdateCallback<Project extends keyof TInjectedConfig, Property extends keyof TInjectedConfig[Project]> = (project: Project, property: Property) => TBlackHole;
156
+ export type DataTypes = keyof ConfigLoaderSource;
@@ -1 +1 @@
1
- {"version":3,"file":"config.helper.js","sourceRoot":"","sources":["../../src/helpers/config.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.helper.js","sourceRoot":"","sources":["../../src/helpers/config.helper.ts"],"names":[],"mappings":"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"}
@@ -105,10 +105,12 @@ export type SchedulerSlidingOptions = SchedulerOptions & {
105
105
  */
106
106
  next: () => Dayjs | string | number | Date | undefined;
107
107
  };
108
- export type ScheduleRemove = () => TBlackHole;
108
+ export type ScheduleRemove = (() => TBlackHole) & {
109
+ remove: () => TBlackHole;
110
+ };
111
+ export declare const makeRemover: (remover: () => TBlackHole) => ScheduleRemove;
109
112
  export type DigitalAlchemyScheduler = {
110
113
  cron: (options: SchedulerCronOptions) => ScheduleRemove;
111
- interval: (options: SchedulerIntervalOptions) => ScheduleRemove;
112
114
  sliding: (options: SchedulerSlidingOptions) => ScheduleRemove;
113
115
  setInterval: (callback: () => TBlackHole, ms: number) => ScheduleRemove;
114
116
  setTimeout: (callback: () => TBlackHole, ms: number) => ScheduleRemove;
@@ -86,4 +86,9 @@ export var CronExpression;
86
86
  })(CronExpression || (CronExpression = {}));
87
87
  export const CRON_SCHEDULE = "CRON_SCHEDULE";
88
88
  export const INTERVAL_SCHEDULE = "INTERVAL_SCHEDULE";
89
+ export const makeRemover = (remover) => {
90
+ const cast = remover;
91
+ cast.remove = remover;
92
+ return cast;
93
+ };
89
94
  //# sourceMappingURL=cron.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cron.helper.js","sourceRoot":"","sources":["../../src/helpers/cron.helper.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,cAoFX;AApFD,WAAY,cAAc;IACxB,8CAA4B,CAAA;IAC5B,mDAAiC,CAAA;IACjC,qDAAmC,CAAA;IACnC,qDAAmC,CAAA;IACnC,8CAA4B,CAAA;IAC5B,mDAAiC,CAAA;IACjC,qDAAmC,CAAA;IACnC,qDAAmC,CAAA;IACnC,+CAA6B,CAAA;IAC7B,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,oDAAkC,CAAA;IAClC,oDAAkC,CAAA;IAClC,oDAAkC,CAAA;IAClC,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,qDAAmC,CAAA;IACnC,0CAAwB,CAAA;IACxB,+CAA6B,CAAA;IAC7B,+CAA6B,CAAA;IAC7B,kEAAgD,CAAA;IAChD,+DAA6C,CAAA;IAC7C,gDAA8B,CAAA;IAC9B,yEAAuD,CAAA;IACvD,iDAA+B,CAAA;IAC/B,+CAA6B,CAAA;IAC7B,gDAA8B,CAAA;IAC9B,0CAAwB,CAAA;IACxB,4EAA0D,CAAA;IAC1D,4EAA0D,CAAA;IAC1D,8EAA4D,CAAA;IAC5D,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,iEAA+C,CAAA;IAC/C,6DAA2C,CAAA;IAC3C,6DAA2C,CAAA;IAC3C,iEAA+C,CAAA;IAC/C,6DAA2C,CAAA;IAC3C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,6DAA2C,CAAA;IAC3C,6DAA2C,CAAA;AAC7C,CAAC,EApFW,cAAc,KAAd,cAAc,QAoFzB;AACD,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC"}
1
+ {"version":3,"file":"cron.helper.js","sourceRoot":"","sources":["../../src/helpers/cron.helper.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,cAoFX;AApFD,WAAY,cAAc;IACxB,8CAA4B,CAAA;IAC5B,mDAAiC,CAAA;IACjC,qDAAmC,CAAA;IACnC,qDAAmC,CAAA;IACnC,8CAA4B,CAAA;IAC5B,mDAAiC,CAAA;IACjC,qDAAmC,CAAA;IACnC,qDAAmC,CAAA;IACnC,+CAA6B,CAAA;IAC7B,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,oDAAkC,CAAA;IAClC,oDAAkC,CAAA;IAClC,oDAAkC,CAAA;IAClC,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,qDAAmC,CAAA;IACnC,0CAAwB,CAAA;IACxB,+CAA6B,CAAA;IAC7B,+CAA6B,CAAA;IAC7B,kEAAgD,CAAA;IAChD,+DAA6C,CAAA;IAC7C,gDAA8B,CAAA;IAC9B,yEAAuD,CAAA;IACvD,iDAA+B,CAAA;IAC/B,+CAA6B,CAAA;IAC7B,gDAA8B,CAAA;IAC9B,0CAAwB,CAAA;IACxB,4EAA0D,CAAA;IAC1D,4EAA0D,CAAA;IAC1D,8EAA4D,CAAA;IAC5D,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,iEAA+C,CAAA;IAC/C,6DAA2C,CAAA;IAC3C,6DAA2C,CAAA;IAC3C,iEAA+C,CAAA;IAC/C,6DAA2C,CAAA;IAC3C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,4DAA0C,CAAA;IAC1C,6DAA2C,CAAA;IAC3C,6DAA2C,CAAA;AAC7C,CAAC,EApFW,cAAc,KAAd,cAAc,QAoFzB;AACD,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAqBrD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAyB,EAAkB,EAAE;IACvE,MAAM,IAAI,GAAG,OAAyB,CAAC;IACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;IACtB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -2,6 +2,7 @@ import { CreateApplication } from "../services";
2
2
  import { TestRunner } from "../testing";
3
3
  import { deepExtend } from "./extend.helper";
4
4
  import { CreateLibrary, } from "./wiring.helper";
5
+ // #MARK: createModule
5
6
  export function createModule(options) {
6
7
  function extend(extendOptions) {
7
8
  const appendLibrary = new Map();
@@ -64,7 +65,7 @@ export function createModule(options) {
64
65
  },
65
66
  toApplication: () => {
66
67
  const depends = {};
67
- workingModule.depends.forEach(i => (depends[i.name] = i));
68
+ workingModule.depends?.forEach(i => (depends[i.name] = i));
68
69
  appendLibrary.forEach((value, key) => (depends[key] = value));
69
70
  return CreateApplication({
70
71
  configuration: deepExtend({}, workingModule.configuration),
@@ -72,13 +73,13 @@ export function createModule(options) {
72
73
  // @ts-expect-error wrapper problems
73
74
  name: extendOptions?.name || options.name,
74
75
  // @ts-expect-error wrapper problems
75
- priorityInit: [...workingModule.priorityInit],
76
+ priorityInit: [...(workingModule.priorityInit ?? [])],
76
77
  services,
77
78
  });
78
79
  },
79
80
  toLibrary: () => {
80
81
  const depends = {};
81
- workingModule.depends.forEach(i => (depends[i.name] = i));
82
+ workingModule.depends?.forEach(i => (depends[i.name] = i));
82
83
  appendLibrary.forEach((value, key) => (depends[key] = value));
83
84
  return CreateLibrary({
84
85
  configuration: deepExtend({}, workingModule.configuration),
@@ -108,23 +109,25 @@ export function createModule(options) {
108
109
  };
109
110
  return workingModule;
110
111
  }
112
+ // #MARK: fromApplication
111
113
  createModule.fromApplication = (application) => {
112
114
  return createModule({
113
- configuration: application.configuration || {},
114
- depends: application.libraries || [],
115
+ configuration: application.configuration,
116
+ depends: application.libraries,
115
117
  name: application.name,
116
118
  optionalDepends: [],
117
- priorityInit: application.priorityInit || [],
119
+ priorityInit: application.priorityInit,
118
120
  services: application.services,
119
121
  });
120
122
  };
123
+ // #MARK: fromLibrary
121
124
  createModule.fromLibrary = (library) => {
122
125
  return createModule({
123
- configuration: library.configuration || {},
124
- depends: library.depends || [],
126
+ configuration: library.configuration,
127
+ depends: library.depends,
125
128
  name: library.name,
126
- optionalDepends: library.optionalDepends || [],
127
- priorityInit: library.priorityInit || [],
129
+ optionalDepends: library.optionalDepends,
130
+ priorityInit: library.priorityInit,
128
131
  services: library.services,
129
132
  });
130
133
  };
@@ -1 +1 @@
1
- {"version":3,"file":"module.helper.js","sourceRoot":"","sources":["../../src/helpers/module.helper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAe,UAAU,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAEL,aAAa,GAKd,MAAM,iBAAiB,CAAC;AAkFzB,MAAM,UAAU,YAAY,CAC1B,OAAkC;IAElC,SAAS,MAAM,CAAC,aAA4B;QAC1C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoB,CAAC;QAClD,IAAI,QAAQ,GAAG,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;QAE7C,MAAM,MAAM,GAA0B;YACpC,aAAa,EAAE,CAAC,OAAiB,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC1B,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,sBAAsB,CAAC,CAAC;gBACjD,CAAC;gBACD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;gBAChE,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,kDAAkD,CAAC,CAAC;gBAC7E,CAAC;gBACD,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACjC,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,aAAa,EAAE,CAAC,IAAY,EAAE,OAAwB,EAAE,EAAE;gBACxD,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,kDAAkD,CAAC,CAAC;gBAC7E,CAAC;gBACD,+DAA+D;gBAC/D,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBACzB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,WAAW,EAAE,CAAuB,GAAG,IAAY,EAAE,EAAE;gBACrD,QAAQ,GAAG,MAAM,CAAC,WAAW,CAC3B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAS,CAAC,CAAC,CACjD,CAAC;gBACrB,OAAO,MAAwD,CAAC;YAClE,CAAC;YACD,WAAW,EAAE,CAAuB,GAAG,IAAY,EAAE,EAAE;gBACrD,QAAQ,GAAG,MAAM,CAAC,WAAW,CAC3B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAS,CAAC,CAAC,CAChD,CAAC;gBACrB,OAAO,MAAsD,CAAC;YAChE,CAAC;YACD,OAAO,EAAE,CAAyB,QAA+B,EAAE,EAAE;gBACnE,QAAQ,GAAG,QAAwB,CAAC;gBACpC,OAAO,MAAqD,CAAC;YAC/D,CAAC;YACD,cAAc,EAAE,CAAC,OAAiB,EAAE,EAAE;gBACpC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC1B,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;oBAChE,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,+BAA+B,CAAC,CAAC;oBAC1D,CAAC;oBACD,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACnC,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,gCAAgC;YAChC,cAAc,EAAE,CACd,IAAY,EACZ,MAAU,EACV,EAAE;gBACF,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC;oBACxB,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBAC/D,CAAC;gBACD,gCAAgC;gBAChC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;gBACxB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,aAAa,EAAE,GAAG,EAAE;gBAClB,MAAM,OAAO,GAAG,EAA8B,CAAC;gBAC/C,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1D,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAE9D,OAAO,iBAAiB,CAAC;oBACvB,aAAa,EAAE,UAAU,CAAC,EAAE,EAAE,aAAa,CAAC,aAAa,CAAC;oBAC1D,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;oBACjC,oCAAoC;oBACpC,IAAI,EAAE,aAAa,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI;oBACzC,oCAAoC;oBACpC,YAAY,EAAE,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC;oBAC7C,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC;YACD,SAAS,EAAE,GAAG,EAAE;gBACd,MAAM,OAAO,GAAG,EAA8B,CAAC;gBAC/C,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1D,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAE9D,OAAO,aAAa,CAAC;oBACnB,aAAa,EAAE,UAAU,CAAC,EAAE,EAAE,aAAa,CAAC,aAAa,CAAC;oBAC1D,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;oBAC/B,oCAAoC;oBACpC,IAAI,EAAE,aAAa,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI;oBACzC,eAAe,EAAE,aAAa,CAAC,eAAe;oBAC9C,oCAAoC;oBACpC,YAAY,EAAE,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC;oBAC7C,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC;YACD,MAAM,EAAE,GAAG,EAAE;gBACX,OAAO,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YACxD,CAAC;SACF,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,aAAa,GAA+B;QAChD,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM;QACN,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,EAAE;QAC9C,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAK,EAAQ;KACxC,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,YAAY,CAAC,eAAe,GAAG,CAC7B,WAAwC,EACxC,EAAE;IACF,OAAO,YAAY,CAAO;QACxB,aAAa,EAAE,WAAW,CAAC,aAAa,IAAK,EAAQ;QACrD,OAAO,EAAE,WAAW,CAAC,SAAS,IAAI,EAAE;QACpC,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,eAAe,EAAE,EAAE;QACnB,YAAY,EAAE,WAAW,CAAC,YAAY,IAAI,EAAE;QAC5C,QAAQ,EAAE,WAAW,CAAC,QAAQ;KAC/B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,YAAY,CAAC,WAAW,GAAG,CACzB,OAAgC,EAChC,EAAE;IACF,OAAO,YAAY,CAAO;QACxB,aAAa,EAAE,OAAO,CAAC,aAAa,IAAK,EAAQ;QACjD,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,EAAE;QAC9C,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;QACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"module.helper.js","sourceRoot":"","sources":["../../src/helpers/module.helper.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,12 @@ import { AsyncLocalStorage } from "async_hooks";
2
2
  import { Dayjs } from "dayjs";
3
3
  import { EventEmitter } from "events";
4
4
  import { CronExpression, ILogger, InternalDefinition, LIB_BOILERPLATE, ScheduleRemove, TBlackHole, TConfigLogLevel, TContext } from "..";
5
- import { AnyConfig, BooleanConfig, ConfigLoader, InternalConfig, NumberConfig, OptionalModuleConfiguration, StringArrayConfig, StringConfig } from "./config.helper";
5
+ import { AnyConfig, BooleanConfig, DataTypes, InternalConfig, NumberConfig, OptionalModuleConfiguration, StringArrayConfig, StringConfig } from "./config.helper";
6
6
  import { TLifecycleBase } from "./lifecycle.helper";
7
7
  export type TServiceReturn<OBJECT extends object = object> = void | OBJECT;
8
8
  export type TModuleMappings = Record<string, ServiceFunction>;
9
9
  export type TResolvedModuleMappings = Record<string, TServiceReturn>;
10
10
  export type ApplicationConfigurationOptions<S extends ServiceMap, C extends OptionalModuleConfiguration> = {
11
- configurationLoaders?: ConfigLoader[];
12
11
  name: keyof LoadedModules;
13
12
  services: S;
14
13
  libraries?: LibraryDefinition<ServiceMap, OptionalModuleConfiguration>[];
@@ -44,14 +43,6 @@ export type TScheduler = {
44
43
  cron: (options: SchedulerOptions & {
45
44
  schedule: Schedule | Schedule[];
46
45
  }) => ScheduleRemove;
47
- /**
48
- * Run code on a regular periodic interval
49
- *
50
- * @deprecated use `scheduler.setInterval`
51
- */
52
- interval: (options: SchedulerOptions & {
53
- interval: number;
54
- }) => ScheduleRemove;
55
46
  /**
56
47
  * Run code at a different time every {period}
57
48
  *
@@ -231,6 +222,10 @@ export type BootstrapOptions = {
231
222
  * Default: `.env`
232
223
  */
233
224
  envFile?: string;
225
+ /**
226
+ * all properties default true if not provided
227
+ */
228
+ configSources?: Partial<Record<DataTypes, boolean>>;
234
229
  };
235
230
  export type LoggerOptions = {
236
231
  /**
@@ -292,7 +287,7 @@ export type ApplicationDefinition<S extends ServiceMap, C extends OptionalModule
292
287
  logger: ILogger;
293
288
  type: "application";
294
289
  booted: boolean;
295
- bootstrap: (options?: BootstrapOptions) => Promise<void>;
290
+ bootstrap: (options?: BootstrapOptions) => Promise<TServiceParams>;
296
291
  teardown: () => Promise<void>;
297
292
  };
298
293
  export type TLibrary = LibraryDefinition<ServiceMap, OptionalModuleConfiguration>;
@@ -1,5 +1,6 @@
1
1
  import { BootstrapException, eachSeries, is, LOAD_PROJECT, } from "..";
2
2
  export const WIRE_PROJECT = Symbol.for("wire-project");
3
+ // #MARK: buildSortOrder
3
4
  export function buildSortOrder(app, logger) {
4
5
  if (is.empty(app.libraries)) {
5
6
  return [];
@@ -23,7 +24,7 @@ export function buildSortOrder(app, logger) {
23
24
  // just "are they the same object reference?" as the test
24
25
  // you get a warning, and the one the app asks for
25
26
  // hopefully there is no breaking changes
26
- if (loaded !== item && !process.env.NODE_ENV.startsWith("test")) {
27
+ if (loaded !== item && !process.env.NODE_ENV?.startsWith("test")) {
27
28
  logger.warn({ name: buildSortOrder }, "[%s] depends different version {%s}", library.name, item.name);
28
29
  }
29
30
  });
@@ -54,6 +55,7 @@ export function buildSortOrder(app, logger) {
54
55
  }
55
56
  export const COERCE_CONTEXT = (context) => context;
56
57
  export const WIRING_CONTEXT = COERCE_CONTEXT("boilerplate:wiring");
58
+ // #MARK: validateLibrary
57
59
  export function validateLibrary(project, serviceList) {
58
60
  if (is.empty(project)) {
59
61
  throw new BootstrapException(COERCE_CONTEXT("CreateLibrary"), "MISSING_LIBRARY_NAME", "Library name is required");
@@ -66,6 +68,7 @@ export function validateLibrary(project, serviceList) {
66
68
  throw new BootstrapException(COERCE_CONTEXT("CreateLibrary"), "INVALID_SERVICE_DEFINITION", `Invalid service definition for '${invalidServiceName}' in library '${project}' (${typeof service}})`);
67
69
  }
68
70
  }
71
+ // #MARK: wireOrder
69
72
  export function wireOrder(priority, list) {
70
73
  const out = [...(priority || [])];
71
74
  if (!is.empty(priority)) {
@@ -77,6 +80,7 @@ export function wireOrder(priority, list) {
77
80
  const temporary = [...out, ...list.filter(i => !out.includes(i))];
78
81
  return temporary;
79
82
  }
83
+ // #MARK: CreateLibrary
80
84
  export function CreateLibrary({ name: libraryName, configuration = {}, priorityInit, services, depends, optionalDepends, }) {
81
85
  validateLibrary(libraryName, services);
82
86
  const serviceApis = {};
@@ -1 +1 @@
1
- {"version":3,"file":"wiring.helper.js","sourceRoot":"","sources":["../../src/helpers/wiring.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wiring.helper.js","sourceRoot":"","sources":["../../src/helpers/wiring.helper.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,4 @@ export declare const LOAD_PROJECT: unique symbol;
4
4
  export declare const EVENT_CONFIGURATION_UPDATED = "event_configuration_updated";
5
5
  export declare const INJECTED_DEFINITIONS: unique symbol;
6
6
  export type ConfigManager = ReturnType<typeof Configuration>;
7
- export declare function Configuration({ context, event, lifecycle, internal, logger, }: TServiceParams): DigitalAlchemyConfiguration;
7
+ export declare function Configuration({ context, event, lifecycle, internal, }: TServiceParams): DigitalAlchemyConfiguration;
@@ -1,41 +1,43 @@
1
- import { BootstrapException, ConfigLoaderEnvironment, configLoaderFile, deepExtend, eachSeries, } from "..";
1
+ import { BootstrapException, ConfigLoaderEnvironment, deepExtend, eachSeries, } from "..";
2
2
  import { is } from ".";
3
3
  export const INITIALIZE = Symbol.for("initialize");
4
4
  export const LOAD_PROJECT = Symbol.for("load-project");
5
5
  export const EVENT_CONFIGURATION_UPDATED = "event_configuration_updated";
6
6
  export const INJECTED_DEFINITIONS = Symbol.for("injected-config");
7
7
  const DECIMALS = 2;
8
- export function Configuration({ context, event, lifecycle, internal,
9
- // ! THIS DOES NOT EXIST BEFORE PRE INIT
10
- logger, }) {
8
+ export function Configuration({ context, event, lifecycle, internal, }) {
11
9
  // modern problems require modern solutions
10
+ let logger;
12
11
  lifecycle.onPreInit(() => (logger = internal.boilerplate.logger.context(context)));
13
- const configuration = {};
14
12
  const configDefinitions = new Map();
15
- function injectedDefinitions() {
16
- const out = {};
17
- return new Proxy(out, {
18
- get(_, project) {
19
- return internal.utils.object.get(configuration, project) ?? {};
20
- },
21
- has(_, key) {
22
- Object.keys(configuration).forEach(key => (out[key] ??= {}));
23
- return Object.keys(configuration).includes(key);
24
- },
25
- ownKeys() {
26
- Object.keys(configuration).forEach(key => (out[key] ??= {}));
27
- return Object.keys(configuration);
28
- },
29
- set() {
30
- return false;
31
- },
32
- });
33
- }
13
+ const configuration = {};
14
+ const loaded = new Set();
15
+ const loaders = new Map();
16
+ // #MARK:
17
+ const proxyData = {};
18
+ const configValueProxy = new Proxy(proxyData, {
19
+ get(_, project) {
20
+ return { ...internal.utils.object.get(configuration, project) };
21
+ },
22
+ has(_, key) {
23
+ Object.keys(configuration).forEach(key => (proxyData[key] ??= {}));
24
+ return Object.keys(configuration).includes(key);
25
+ },
26
+ ownKeys() {
27
+ Object.keys(configuration).forEach(key => (proxyData[key] ??= {}));
28
+ return Object.keys(configuration);
29
+ },
30
+ set() {
31
+ return false;
32
+ },
33
+ });
34
+ // #MARK: setConfig
34
35
  function setConfig(project, property, value) {
35
36
  internal.utils.object.set(configuration, [project, property].join("."), value);
36
37
  // in case anyone needs a hook
37
38
  event.emit(EVENT_CONFIGURATION_UPDATED, project, property);
38
39
  }
40
+ // #MARK: validateConfig
39
41
  function validateConfig() {
40
42
  // * validate
41
43
  // - ensure all required properties have been defined
@@ -50,36 +52,56 @@ logger, }) {
50
52
  });
51
53
  });
52
54
  }
53
- // #MARK: Initialize
55
+ // #MARK: registerLoader
56
+ function registerLoader(loader, name) {
57
+ loaders.set(name, loader);
58
+ }
59
+ // #MARK: mergeConfig
60
+ function mergeConfig(data, type) {
61
+ // * prevents loaders from setting properties that they aren't supposed to
62
+ configDefinitions.forEach((project, name) => {
63
+ const keys = Object.keys(project);
64
+ keys.forEach(key => {
65
+ const { source } = project[key];
66
+ if (is.array(source) && !type.some(i => source.includes(i))) {
67
+ return;
68
+ }
69
+ const moduleConfig = data[name];
70
+ if (moduleConfig && key in moduleConfig) {
71
+ internal.utils.object.set(configuration, [name, key].join("."), data[name][key]);
72
+ }
73
+ });
74
+ });
75
+ }
76
+ // #MARK: initialize
54
77
  async function initialize(application) {
55
- const configLoaders = internal.boot.application.configurationLoaders ??
56
- [ConfigLoaderEnvironment, configLoaderFile];
57
78
  const start = performance.now();
58
- // * were configs disabled?
59
- if (is.empty(configLoaders)) {
60
- validateConfig();
61
- if (!configuration.boilerplate.IS_TEST) {
62
- logger.warn({ name: initialize }, `no config loaders defined`);
63
- }
64
- return `${(performance.now() - start).toFixed(DECIMALS)}ms`;
65
- }
79
+ mergeConfig(await ConfigLoaderEnvironment({
80
+ application,
81
+ configs: configDefinitions,
82
+ internal,
83
+ logger,
84
+ }), ["env", "argv"]);
85
+ mergeConfig(await ConfigLoaderEnvironment({
86
+ application,
87
+ configs: configDefinitions,
88
+ internal,
89
+ logger,
90
+ }), ["file"]);
66
91
  // * load!
67
- await eachSeries(configLoaders, async (loader) => {
68
- const merge = await loader({
69
- application,
70
- configs: configDefinitions,
71
- internal,
72
- logger,
73
- });
74
- deepExtend(configuration, merge);
92
+ await eachSeries([...loaders.entries()], async ([type, loader]) => {
93
+ mergeConfig(await loader({ application, configs: configDefinitions, internal, logger }), [
94
+ type,
95
+ ]);
75
96
  });
76
97
  validateConfig();
77
98
  return `${(performance.now() - start).toFixed(DECIMALS)}ms`;
78
99
  }
100
+ // #MARK: merge
79
101
  function merge(merge) {
80
102
  return deepExtend(configuration, merge);
81
103
  }
82
- const loaded = new Set();
104
+ // #MARK: loadProject
83
105
  function loadProject(library, definitions) {
84
106
  if (loaded.has(library)) {
85
107
  return;
@@ -99,9 +121,31 @@ logger, }) {
99
121
  });
100
122
  }
101
123
  }
124
+ // #MARK: onUpdate
125
+ function onUpdate(callback, project, property) {
126
+ event.on(EVENT_CONFIGURATION_UPDATED, (updatedProject, updatedProperty) => {
127
+ if (!is.empty(project) && project !== updatedProject) {
128
+ return;
129
+ }
130
+ if (!is.empty(property) && property !== updatedProperty) {
131
+ return;
132
+ }
133
+ callback(updatedProject, updatedProperty);
134
+ });
135
+ }
136
+ // #MARK: <return>
102
137
  return {
138
+ /**
139
+ * @internal
140
+ */
103
141
  [INITIALIZE]: initialize,
104
- [INJECTED_DEFINITIONS]: injectedDefinitions,
142
+ /**
143
+ * @internal
144
+ */
145
+ [INJECTED_DEFINITIONS]: configValueProxy,
146
+ /**
147
+ * @internal
148
+ */
105
149
  [LOAD_PROJECT]: loadProject,
106
150
  /**
107
151
  * retrieve the metadata that was originally used to define the configs
@@ -112,18 +156,9 @@ logger, }) {
112
156
  *
113
157
  * intended for initial loading workflows
114
158
  */
115
- merge: merge,
116
- onUpdate(callback, project, property) {
117
- event.on(EVENT_CONFIGURATION_UPDATED, (updatedProject, updatedProperty) => {
118
- if (!is.empty(project) && project !== updatedProject) {
119
- return;
120
- }
121
- if (!is.empty(property) && property !== updatedProperty) {
122
- return;
123
- }
124
- callback(updatedProject, updatedProperty);
125
- });
126
- },
159
+ merge,
160
+ onUpdate,
161
+ registerLoader,
127
162
  set: setConfig,
128
163
  };
129
164
  }
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.extension.js","sourceRoot":"","sources":["../../src/services/configuration.extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAGlB,uBAAuB,EACvB,gBAAgB,EAChB,UAAU,EAEV,UAAU,GASX,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC;AAEvB,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,2BAA2B,GAAG,6BAA6B,CAAC;AACzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAGlE,MAAM,QAAQ,GAAG,CAAC,CAAC;AAEnB,MAAM,UAAU,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,SAAS,EACT,QAAQ;AACR,wCAAwC;AACxC,MAAM,GACS;IACf,2CAA2C;IAC3C,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEnF,MAAM,aAAa,GAAyB,EAAE,CAAC;IAC/C,MAAM,iBAAiB,GAAiB,IAAI,GAAG,EAAE,CAAC;IAElD,SAAS,mBAAmB;QAC1B,MAAM,GAAG,GAAG,EAA4B,CAAC;QACzC,OAAO,IAAI,KAAK,CAAC,GAAsB,EAAE;YACvC,GAAG,CAAC,CAAC,EAAE,OAA8B;gBACnC,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YACjE,CAAC;YACD,GAAG,CAAC,CAAC,EAAE,GAA0B;gBAC/B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAuB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACjF,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAClD,CAAC;YACD,OAAO;gBACL,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAuB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACjF,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACpC,CAAC;YACD,GAAG;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,SAAS,SAAS,CAGhB,OAAgB,EAAE,QAAkB,EAAE,KAAyC;QAC/E,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAC/E,8BAA8B;QAC9B,KAAK,CAAC,IAAI,CAAC,2BAA2B,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,SAAS,cAAc;QACrB,aAAa;QACb,qDAAqD;QACrD,iBAAiB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE;YACjD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACrC,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxC,IACE,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ;oBACzB,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,EAC9D,CAAC;oBACD,UAAU;oBACV,MAAM,IAAI,kBAAkB,CAC1B,OAAO,EACP,gCAAgC,EAChC,0BAA0B,MAAM,iBAAiB,CAClD,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;IACpB,KAAK,UAAU,UAAU,CACvB,WAAwC;QAExC,MAAM,aAAa,GACjB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB;YAC7C,CAAC,uBAAuB,EAAE,gBAAgB,CAAoB,CAAC;QAElE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEhC,2BAA2B;QAC3B,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YAC5B,cAAc,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,2BAA2B,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC9D,CAAC;QAED,UAAU;QACV,MAAM,UAAU,CAAC,aAAa,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;YAC7C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;gBACzB,WAAW;gBACX,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ;gBACR,MAAM;aACP,CAAC,CAAC;YACH,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,cAAc,EAAE,CAAC;QAEjB,OAAO,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9D,CAAC;IAED,SAAS,KAAK,CAAC,KAAoC;QACjD,OAAO,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAEjC,SAAS,WAAW,CAAC,OAAe,EAAE,WAAiC;QACrE,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACrC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QACH,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC;QAC9D,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,OAAkC,CAAC;YACnD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAChC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CACvB,aAAa,EACb,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EACxB,MAAM,CAAC,GAA0B,CAAC,CACnC,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACL,CAAC,UAAU,CAAC,EAAE,UAAU;QACxB,CAAC,oBAAoB,CAAC,EAAE,mBAAmB;QAC3C,CAAC,YAAY,CAAC,EAAE,WAAW;QAE3B;;WAEG;QACH,cAAc,EAAE,GAAG,EAAE,CAAC,iBAAiB;QAEvC;;;;WAIG;QACH,KAAK,EAAE,KAAK;QAEZ,QAAQ,CAGN,QAAmD,EAAE,OAAiB,EAAE,QAAmB;YAC3F,KAAK,CAAC,EAAE,CAAC,2BAA2B,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,EAAE;gBACxE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;oBACrD,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;oBACxD,OAAO;gBACT,CAAC;gBACD,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC;QAED,GAAG,EAAE,SAAuB;KAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"configuration.extension.js","sourceRoot":"","sources":["../../src/services/configuration.extension.ts"],"names":[],"mappings":"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"}