@autometa/config 0.1.23 → 0.1.25

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.
@@ -0,0 +1,27 @@
1
+
2
+ > @autometa/config@0.1.1 coverage /Users/ben.aherne/Documents/GitHub/autometa/packages/config
3
+ > vitest run --coverage
4
+
5
+
6
+ RUN v0.29.8 /Users/ben.aherne/Documents/GitHub/autometa/packages/config
7
+ Coverage enabled with istanbul
8
+
9
+ ✓ src/envrionment-reader.spec.ts (7 tests) 19ms
10
+ ✓ src/config.schema.spec.ts (13 tests) 89ms
11
+ ✓ src/define-config.spec.ts (7 tests) 3ms
12
+
13
+ Test Files 3 passed (3)
14
+ Tests 27 passed (27)
15
+ Start at 16:39:00
16
+ Duration 2.11s (transform 617ms, setup 0ms, collect 1.60s, tests 111ms)
17
+
18
+ % Coverage report from istanbul
19
+ -------------------|---------|----------|---------|---------|-------------------
20
+ File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
21
+ -------------------|---------|----------|---------|---------|-------------------
22
+ All files | 89.47 | 69.44 | 88.88 | 89.47 |
23
+ config-object.ts | 72.72 | 62.5 | 66.66 | 72.72 | 11,18,27
24
+ config.schema.ts | 100 | 100 | 100 | 100 |
25
+ define-config.ts | 85 | 61.11 | 100 | 85 | 25-26,31
26
+ ...ment-reader.ts | 100 | 87.5 | 100 | 100 | 20
27
+ -------------------|---------|----------|---------|---------|-------------------
@@ -0,0 +1,4 @@
1
+
2
+ > @autometa/config@0.1.23 lint:fix /Users/ben.aherne/Documents/GitHub/autometa/packages/config
3
+ > eslint . --fix "--max-warnings=0"
4
+
@@ -0,0 +1,5 @@
1
+
2
+ > @autometa/config@0.1.23 prettify /Users/ben.aherne/Documents/GitHub/autometa/packages/config
3
+ > prettier --config .prettierrc 'src/**/*.ts' --write
4
+
5
+  ELIFECYCLE  Command failed.
@@ -0,0 +1,16 @@
1
+
2
+ > @autometa/config@0.1.24 test /Users/ben.aherne/Documents/GitHub/autometa/packages/config
3
+ > vitest run --passWithNoTests
4
+
5
+
6
+ RUN v1.4.0 /Users/ben.aherne/Documents/GitHub/autometa/packages/config
7
+
8
+ ✓ src/envrionment-reader.spec.ts (7 tests) 3ms
9
+ ✓ src/define-config.spec.ts (7 tests) 4ms
10
+ ✓ src/config.schema.spec.ts (13 tests) 34ms
11
+
12
+ Test Files 3 passed (3)
13
+ Tests 27 passed (27)
14
+ Start at 13:47:45
15
+ Duration 1.40s (transform 193ms, setup 0ms, collect 731ms, tests 41ms, environment 0ms, prepare 561ms)
16
+
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @autometa/config
2
2
 
3
+ ## 0.1.25
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [7440e9f]
8
+ - @autometa/app@0.4.0
9
+
10
+ ## 0.1.24
11
+
12
+ ### Patch Changes
13
+
14
+ - Updated dependencies [1d3f84e]
15
+ - @autometa/app@0.3.5
16
+
3
17
  ## 0.1.23
4
18
 
5
19
  ### Patch Changes
package/README.md CHANGED
@@ -1,3 +1,3 @@
1
1
  # Introduction
2
2
 
3
- There's nothing here yet
3
+ There's nothing here yet
package/dist/esm/index.js CHANGED
@@ -38,7 +38,7 @@ var EnvironmentReader = class {
38
38
  /**
39
39
  * Returns the configuration object for the selected
40
40
  * environment by weighting.
41
- *
41
+ *
42
42
  * By priority the environment is selected by:
43
43
  * 1. Literal
44
44
  * 2. Environment Variable
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/config-object.ts","../../src/environment-reader.ts","../../src/define-config.ts"],"sourcesContent":["import { AutomationError, raise } from \"@autometa/errors\";\nimport { EnvironmentReader } from \"./environment-reader\";\nimport { TestExecutorConfig } from \"./types\";\nexport class Config {\n readonly environments: EnvironmentReader = new EnvironmentReader();\n constructor(public envMap: Map<string, TestExecutorConfig>) {}\n get current(): TestExecutorConfig {\n const key = this.environments.value;\n if (!key) {\n if (!this.envMap.has(\"default\")) {\n throw new AutomationError(\n `No environment is defined. Define an environment with 'env.byLiteral(\"my-environment\")' or 'env.byEnvironmentVariable(\"MY_ENVIRONMENT\")' or 'env.byFactory(() => \"my-environment\")' or 'env.byLiteral(\"default\")'`\n );\n }\n return this.envMap.get(\"default\") as TestExecutorConfig;\n }\n if (!this.envMap.has(key)) {\n throw new AutomationError(\n `Environment ${key} is not defined. Options are: \\n ${Object.keys(\n this.envMap\n ).join(\"\\n\")}`\n );\n }\n return this.envMap.get(key) ?? raise(`Environment ${key} is not defined`);\n }\n get currentEnvironment() {\n return this.environments.value;\n }\n}\n","export class EnvironmentReader {\n #envVar?: string;\n #factory?: () => string;\n #literal?: string;\n /**\n * Returns the configuration object for the selected\n * environment by weighting.\n * \n * By priority the environment is selected by:\n * 1. Literal\n * 2. Environment Variable\n * 3. Factory\n */\n get value() {\n if (this.#literal) {\n return this.#literal;\n }\n if (this.#envVar) {\n const value = process.env[this.#envVar];\n if (value) {\n return value;\n }\n }\n if (this.#factory) {\n return this.#factory();\n }\n }\n \n byEnvironmentVariable(envVar: string) {\n this.#envVar = envVar;\n return this;\n }\n byFactory(factory: () => string) {\n this.#factory = factory;\n return this;\n }\n byLiteral(literal: string) {\n this.#literal = literal;\n return this;\n }\n}\n","import { Config } from \"./config-object\";\nimport { EnvironmentReader } from \"./environment-reader\";\nimport { TestExecutorConfig } from \"./types\";\nimport { AutomationError } from \"@autometa/errors\";\nexport function defineConfig(config: Config, ...configs: TestExecutorConfig[]) {\n const envs: string[] = [];\n const envMap = config.envMap;\n for (const config of configs) {\n if (config.environment) {\n if (envs.includes(config.environment)) {\n throw new AutomationError(\n `Environment ${config.environment} is defined more than once`\n );\n }\n envMap.set(config.environment, config);\n envs.push(config.environment);\n } else if (!config.environment && envs.includes(\"default\")) {\n throw new AutomationError(`Only one default environment can be defined`);\n } else {\n envMap.set(\"default\", config);\n envs.push(\"default\");\n config.environment = \"default\";\n }\n if (config.shim) {\n if (\"error-cause\" in config.shim && config.shim[\"error-cause\"] === true) {\n require(\"error-cause/auto\");\n }\n }\n }\n if (envs.length > 1 && !envs.includes(\"default\")) {\n throw new AutomationError(\n `A default environment must be defined first. At one config must not have an environment defined or define a default environment explicitly with 'environement=\"default\"`\n );\n }\n const setters = config.environments as {\n byLiteral: (literal: string) => EnvironmentReader;\n byEnvironmentVariable: (name: string) => EnvironmentReader;\n byFactory: (action: () => string) => EnvironmentReader;\n };\n return {\n env: setters\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,iBAAiB,aAAa;;;ACAvC;AAAO,IAAM,oBAAN,MAAwB;AAAA,EAAxB;AACL;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,IAAI,QAAQ;AACV,QAAI,mBAAK,WAAU;AACjB,aAAO,mBAAK;AAAA,IACd;AACA,QAAI,mBAAK,UAAS;AAChB,YAAM,QAAQ,QAAQ,IAAI,mBAAK,QAAO;AACtC,UAAI,OAAO;AACT,eAAO;AAAA,MACT;AAAA,IACF;AACA,QAAI,mBAAK,WAAU;AACjB,aAAO,mBAAK,UAAL;AAAA,IACT;AAAA,EACF;AAAA,EAEA,sBAAsB,QAAgB;AACpC,uBAAK,SAAU;AACf,WAAO;AAAA,EACT;AAAA,EACA,UAAU,SAAuB;AAC/B,uBAAK,UAAW;AAChB,WAAO;AAAA,EACT;AAAA,EACA,UAAU,SAAiB;AACzB,uBAAK,UAAW;AAChB,WAAO;AAAA,EACT;AACF;AAvCE;AACA;AACA;;;ADAK,IAAM,SAAN,MAAa;AAAA,EAElB,YAAmB,QAAyC;AAAzC;AADnB,SAAS,eAAkC,IAAI,kBAAkB;AAAA,EACJ;AAAA,EAC7D,IAAI,UAA8B;AAChC,UAAM,MAAM,KAAK,aAAa;AAC9B,QAAI,CAAC,KAAK;AACR,UAAI,CAAC,KAAK,OAAO,IAAI,SAAS,GAAG;AAC/B,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AACA,aAAO,KAAK,OAAO,IAAI,SAAS;AAAA,IAClC;AACA,QAAI,CAAC,KAAK,OAAO,IAAI,GAAG,GAAG;AACzB,YAAM,IAAI;AAAA,QACR,eAAe,GAAG;AAAA,GAAoC,OAAO;AAAA,UAC3D,KAAK;AAAA,QACP,EAAE,KAAK,IAAI,CAAC;AAAA,MACd;AAAA,IACF;AACA,WAAO,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,eAAe,GAAG,iBAAiB;AAAA,EAC1E;AAAA,EACA,IAAI,qBAAqB;AACvB,WAAO,KAAK,aAAa;AAAA,EAC3B;AACF;;;AEzBA,SAAS,mBAAAA,wBAAuB;AACzB,SAAS,aAAa,WAAmB,SAA+B;AAC7E,QAAM,OAAiB,CAAC;AACxB,QAAM,SAAS,OAAO;AACtB,aAAWC,WAAU,SAAS;AAC5B,QAAIA,QAAO,aAAa;AACtB,UAAI,KAAK,SAASA,QAAO,WAAW,GAAG;AACrC,cAAM,IAAID;AAAA,UACR,eAAeC,QAAO,WAAW;AAAA,QACnC;AAAA,MACF;AACA,aAAO,IAAIA,QAAO,aAAaA,OAAM;AACrC,WAAK,KAAKA,QAAO,WAAW;AAAA,IAC9B,WAAW,CAACA,QAAO,eAAe,KAAK,SAAS,SAAS,GAAG;AAC1D,YAAM,IAAID,iBAAgB,6CAA6C;AAAA,IACzE,OAAO;AACL,aAAO,IAAI,WAAWC,OAAM;AAC5B,WAAK,KAAK,SAAS;AACnB,MAAAA,QAAO,cAAc;AAAA,IACvB;AACA,QAAIA,QAAO,MAAM;AACf,UAAI,iBAAiBA,QAAO,QAAQA,QAAO,KAAK,aAAa,MAAM,MAAM;AACvE,kBAAQ,kBAAkB;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AACA,MAAI,KAAK,SAAS,KAAK,CAAC,KAAK,SAAS,SAAS,GAAG;AAChD,UAAM,IAAID;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,QAAM,UAAU,OAAO;AAKvB,SAAO;AAAA,IACL,KAAK;AAAA,EACP;AACF;","names":["AutomationError","config"]}
1
+ {"version":3,"sources":["../../src/config-object.ts","../../src/environment-reader.ts","../../src/define-config.ts"],"sourcesContent":["import { AutomationError, raise } from \"@autometa/errors\";\nimport { EnvironmentReader } from \"./environment-reader\";\nimport { TestExecutorConfig } from \"./types\";\nexport class Config {\n readonly environments: EnvironmentReader = new EnvironmentReader();\n constructor(public envMap: Map<string, TestExecutorConfig>) {}\n get current(): TestExecutorConfig {\n const key = this.environments.value;\n if (!key) {\n if (!this.envMap.has(\"default\")) {\n throw new AutomationError(\n `No environment is defined. Define an environment with 'env.byLiteral(\"my-environment\")' or 'env.byEnvironmentVariable(\"MY_ENVIRONMENT\")' or 'env.byFactory(() => \"my-environment\")' or 'env.byLiteral(\"default\")'`\n );\n }\n return this.envMap.get(\"default\") as TestExecutorConfig;\n }\n if (!this.envMap.has(key)) {\n throw new AutomationError(\n `Environment ${key} is not defined. Options are: \\n ${Object.keys(\n this.envMap\n ).join(\"\\n\")}`\n );\n }\n return this.envMap.get(key) ?? raise(`Environment ${key} is not defined`);\n }\n get currentEnvironment() {\n return this.environments.value;\n }\n}\n","export class EnvironmentReader {\n #envVar?: string;\n #factory?: () => string;\n #literal?: string;\n /**\n * Returns the configuration object for the selected\n * environment by weighting.\n *\n * By priority the environment is selected by:\n * 1. Literal\n * 2. Environment Variable\n * 3. Factory\n */\n get value() {\n if (this.#literal) {\n return this.#literal;\n }\n if (this.#envVar) {\n const value = process.env[this.#envVar];\n if (value) {\n return value;\n }\n }\n if (this.#factory) {\n return this.#factory();\n }\n }\n\n byEnvironmentVariable(envVar: string) {\n this.#envVar = envVar;\n return this;\n }\n byFactory(factory: () => string) {\n this.#factory = factory;\n return this;\n }\n byLiteral(literal: string) {\n this.#literal = literal;\n return this;\n }\n}\n","import { Config } from \"./config-object\";\nimport { EnvironmentReader } from \"./environment-reader\";\nimport { TestExecutorConfig } from \"./types\";\nimport { AutomationError } from \"@autometa/errors\";\nexport function defineConfig(config: Config, ...configs: TestExecutorConfig[]) {\n const envs: string[] = [];\n const envMap = config.envMap;\n for (const config of configs) {\n if (config.environment) {\n if (envs.includes(config.environment)) {\n throw new AutomationError(\n `Environment ${config.environment} is defined more than once`\n );\n }\n envMap.set(config.environment, config);\n envs.push(config.environment);\n } else if (!config.environment && envs.includes(\"default\")) {\n throw new AutomationError(`Only one default environment can be defined`);\n } else {\n envMap.set(\"default\", config);\n envs.push(\"default\");\n config.environment = \"default\";\n }\n if (config.shim) {\n if (\"error-cause\" in config.shim && config.shim[\"error-cause\"] === true) {\n require(\"error-cause/auto\");\n }\n }\n }\n if (envs.length > 1 && !envs.includes(\"default\")) {\n throw new AutomationError(\n `A default environment must be defined first. At one config must not have an environment defined or define a default environment explicitly with 'environement=\"default\"`\n );\n }\n const setters = config.environments as {\n byLiteral: (literal: string) => EnvironmentReader;\n byEnvironmentVariable: (name: string) => EnvironmentReader;\n byFactory: (action: () => string) => EnvironmentReader;\n };\n return {\n env: setters,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,iBAAiB,aAAa;;;ACAvC;AAAO,IAAM,oBAAN,MAAwB;AAAA,EAAxB;AACL;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,IAAI,QAAQ;AACV,QAAI,mBAAK,WAAU;AACjB,aAAO,mBAAK;AAAA,IACd;AACA,QAAI,mBAAK,UAAS;AAChB,YAAM,QAAQ,QAAQ,IAAI,mBAAK,QAAO;AACtC,UAAI,OAAO;AACT,eAAO;AAAA,MACT;AAAA,IACF;AACA,QAAI,mBAAK,WAAU;AACjB,aAAO,mBAAK,UAAL;AAAA,IACT;AAAA,EACF;AAAA,EAEA,sBAAsB,QAAgB;AACpC,uBAAK,SAAU;AACf,WAAO;AAAA,EACT;AAAA,EACA,UAAU,SAAuB;AAC/B,uBAAK,UAAW;AAChB,WAAO;AAAA,EACT;AAAA,EACA,UAAU,SAAiB;AACzB,uBAAK,UAAW;AAChB,WAAO;AAAA,EACT;AACF;AAvCE;AACA;AACA;;;ADAK,IAAM,SAAN,MAAa;AAAA,EAElB,YAAmB,QAAyC;AAAzC;AADnB,SAAS,eAAkC,IAAI,kBAAkB;AAAA,EACJ;AAAA,EAC7D,IAAI,UAA8B;AAChC,UAAM,MAAM,KAAK,aAAa;AAC9B,QAAI,CAAC,KAAK;AACR,UAAI,CAAC,KAAK,OAAO,IAAI,SAAS,GAAG;AAC/B,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AACA,aAAO,KAAK,OAAO,IAAI,SAAS;AAAA,IAClC;AACA,QAAI,CAAC,KAAK,OAAO,IAAI,GAAG,GAAG;AACzB,YAAM,IAAI;AAAA,QACR,eAAe,GAAG;AAAA,GAAoC,OAAO;AAAA,UAC3D,KAAK;AAAA,QACP,EAAE,KAAK,IAAI,CAAC;AAAA,MACd;AAAA,IACF;AACA,WAAO,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,eAAe,GAAG,iBAAiB;AAAA,EAC1E;AAAA,EACA,IAAI,qBAAqB;AACvB,WAAO,KAAK,aAAa;AAAA,EAC3B;AACF;;;AEzBA,SAAS,mBAAAA,wBAAuB;AACzB,SAAS,aAAa,WAAmB,SAA+B;AAC7E,QAAM,OAAiB,CAAC;AACxB,QAAM,SAAS,OAAO;AACtB,aAAWC,WAAU,SAAS;AAC5B,QAAIA,QAAO,aAAa;AACtB,UAAI,KAAK,SAASA,QAAO,WAAW,GAAG;AACrC,cAAM,IAAID;AAAA,UACR,eAAeC,QAAO,WAAW;AAAA,QACnC;AAAA,MACF;AACA,aAAO,IAAIA,QAAO,aAAaA,OAAM;AACrC,WAAK,KAAKA,QAAO,WAAW;AAAA,IAC9B,WAAW,CAACA,QAAO,eAAe,KAAK,SAAS,SAAS,GAAG;AAC1D,YAAM,IAAID,iBAAgB,6CAA6C;AAAA,IACzE,OAAO;AACL,aAAO,IAAI,WAAWC,OAAM;AAC5B,WAAK,KAAK,SAAS;AACnB,MAAAA,QAAO,cAAc;AAAA,IACvB;AACA,QAAIA,QAAO,MAAM;AACf,UAAI,iBAAiBA,QAAO,QAAQA,QAAO,KAAK,aAAa,MAAM,MAAM;AACvE,kBAAQ,kBAAkB;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AACA,MAAI,KAAK,SAAS,KAAK,CAAC,KAAK,SAAS,SAAS,GAAG;AAChD,UAAM,IAAID;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,QAAM,UAAU,OAAO;AAKvB,SAAO;AAAA,IACL,KAAK;AAAA,EACP;AACF;","names":["AutomationError","config"]}
package/dist/index.js CHANGED
@@ -58,7 +58,7 @@ var EnvironmentReader = class {
58
58
  /**
59
59
  * Returns the configuration object for the selected
60
60
  * environment by weighting.
61
- *
61
+ *
62
62
  * By priority the environment is selected by:
63
63
  * 1. Literal
64
64
  * 2. Environment Variable
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/config-object.ts","../src/environment-reader.ts","../src/define-config.ts"],"sourcesContent":["export * from './config-object'\nexport * from './environment-reader'\nexport * from './types'\nexport * from './define-config'","import { AutomationError, raise } from \"@autometa/errors\";\nimport { EnvironmentReader } from \"./environment-reader\";\nimport { TestExecutorConfig } from \"./types\";\nexport class Config {\n readonly environments: EnvironmentReader = new EnvironmentReader();\n constructor(public envMap: Map<string, TestExecutorConfig>) {}\n get current(): TestExecutorConfig {\n const key = this.environments.value;\n if (!key) {\n if (!this.envMap.has(\"default\")) {\n throw new AutomationError(\n `No environment is defined. Define an environment with 'env.byLiteral(\"my-environment\")' or 'env.byEnvironmentVariable(\"MY_ENVIRONMENT\")' or 'env.byFactory(() => \"my-environment\")' or 'env.byLiteral(\"default\")'`\n );\n }\n return this.envMap.get(\"default\") as TestExecutorConfig;\n }\n if (!this.envMap.has(key)) {\n throw new AutomationError(\n `Environment ${key} is not defined. Options are: \\n ${Object.keys(\n this.envMap\n ).join(\"\\n\")}`\n );\n }\n return this.envMap.get(key) ?? raise(`Environment ${key} is not defined`);\n }\n get currentEnvironment() {\n return this.environments.value;\n }\n}\n","export class EnvironmentReader {\n #envVar?: string;\n #factory?: () => string;\n #literal?: string;\n /**\n * Returns the configuration object for the selected\n * environment by weighting.\n * \n * By priority the environment is selected by:\n * 1. Literal\n * 2. Environment Variable\n * 3. Factory\n */\n get value() {\n if (this.#literal) {\n return this.#literal;\n }\n if (this.#envVar) {\n const value = process.env[this.#envVar];\n if (value) {\n return value;\n }\n }\n if (this.#factory) {\n return this.#factory();\n }\n }\n \n byEnvironmentVariable(envVar: string) {\n this.#envVar = envVar;\n return this;\n }\n byFactory(factory: () => string) {\n this.#factory = factory;\n return this;\n }\n byLiteral(literal: string) {\n this.#literal = literal;\n return this;\n }\n}\n","import { Config } from \"./config-object\";\nimport { EnvironmentReader } from \"./environment-reader\";\nimport { TestExecutorConfig } from \"./types\";\nimport { AutomationError } from \"@autometa/errors\";\nexport function defineConfig(config: Config, ...configs: TestExecutorConfig[]) {\n const envs: string[] = [];\n const envMap = config.envMap;\n for (const config of configs) {\n if (config.environment) {\n if (envs.includes(config.environment)) {\n throw new AutomationError(\n `Environment ${config.environment} is defined more than once`\n );\n }\n envMap.set(config.environment, config);\n envs.push(config.environment);\n } else if (!config.environment && envs.includes(\"default\")) {\n throw new AutomationError(`Only one default environment can be defined`);\n } else {\n envMap.set(\"default\", config);\n envs.push(\"default\");\n config.environment = \"default\";\n }\n if (config.shim) {\n if (\"error-cause\" in config.shim && config.shim[\"error-cause\"] === true) {\n require(\"error-cause/auto\");\n }\n }\n }\n if (envs.length > 1 && !envs.includes(\"default\")) {\n throw new AutomationError(\n `A default environment must be defined first. At one config must not have an environment defined or define a default environment explicitly with 'environement=\"default\"`\n );\n }\n const setters = config.environments as {\n byLiteral: (literal: string) => EnvironmentReader;\n byEnvironmentVariable: (name: string) => EnvironmentReader;\n byFactory: (action: () => string) => EnvironmentReader;\n };\n return {\n env: setters\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAuC;;;ACAvC;AAAO,IAAM,oBAAN,MAAwB;AAAA,EAAxB;AACL;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,IAAI,QAAQ;AACV,QAAI,mBAAK,WAAU;AACjB,aAAO,mBAAK;AAAA,IACd;AACA,QAAI,mBAAK,UAAS;AAChB,YAAM,QAAQ,QAAQ,IAAI,mBAAK,QAAO;AACtC,UAAI,OAAO;AACT,eAAO;AAAA,MACT;AAAA,IACF;AACA,QAAI,mBAAK,WAAU;AACjB,aAAO,mBAAK,UAAL;AAAA,IACT;AAAA,EACF;AAAA,EAEA,sBAAsB,QAAgB;AACpC,uBAAK,SAAU;AACf,WAAO;AAAA,EACT;AAAA,EACA,UAAU,SAAuB;AAC/B,uBAAK,UAAW;AAChB,WAAO;AAAA,EACT;AAAA,EACA,UAAU,SAAiB;AACzB,uBAAK,UAAW;AAChB,WAAO;AAAA,EACT;AACF;AAvCE;AACA;AACA;;;ADAK,IAAM,SAAN,MAAa;AAAA,EAElB,YAAmB,QAAyC;AAAzC;AADnB,SAAS,eAAkC,IAAI,kBAAkB;AAAA,EACJ;AAAA,EAC7D,IAAI,UAA8B;AAChC,UAAM,MAAM,KAAK,aAAa;AAC9B,QAAI,CAAC,KAAK;AACR,UAAI,CAAC,KAAK,OAAO,IAAI,SAAS,GAAG;AAC/B,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AACA,aAAO,KAAK,OAAO,IAAI,SAAS;AAAA,IAClC;AACA,QAAI,CAAC,KAAK,OAAO,IAAI,GAAG,GAAG;AACzB,YAAM,IAAI;AAAA,QACR,eAAe,GAAG;AAAA,GAAoC,OAAO;AAAA,UAC3D,KAAK;AAAA,QACP,EAAE,KAAK,IAAI,CAAC;AAAA,MACd;AAAA,IACF;AACA,WAAO,KAAK,OAAO,IAAI,GAAG,SAAK,qBAAM,eAAe,GAAG,iBAAiB;AAAA,EAC1E;AAAA,EACA,IAAI,qBAAqB;AACvB,WAAO,KAAK,aAAa;AAAA,EAC3B;AACF;;;AEzBA,IAAAA,iBAAgC;AACzB,SAAS,aAAa,WAAmB,SAA+B;AAC7E,QAAM,OAAiB,CAAC;AACxB,QAAM,SAAS,OAAO;AACtB,aAAWC,WAAU,SAAS;AAC5B,QAAIA,QAAO,aAAa;AACtB,UAAI,KAAK,SAASA,QAAO,WAAW,GAAG;AACrC,cAAM,IAAI;AAAA,UACR,eAAeA,QAAO,WAAW;AAAA,QACnC;AAAA,MACF;AACA,aAAO,IAAIA,QAAO,aAAaA,OAAM;AACrC,WAAK,KAAKA,QAAO,WAAW;AAAA,IAC9B,WAAW,CAACA,QAAO,eAAe,KAAK,SAAS,SAAS,GAAG;AAC1D,YAAM,IAAI,+BAAgB,6CAA6C;AAAA,IACzE,OAAO;AACL,aAAO,IAAI,WAAWA,OAAM;AAC5B,WAAK,KAAK,SAAS;AACnB,MAAAA,QAAO,cAAc;AAAA,IACvB;AACA,QAAIA,QAAO,MAAM;AACf,UAAI,iBAAiBA,QAAO,QAAQA,QAAO,KAAK,aAAa,MAAM,MAAM;AACvE,gBAAQ,kBAAkB;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AACA,MAAI,KAAK,SAAS,KAAK,CAAC,KAAK,SAAS,SAAS,GAAG;AAChD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,QAAM,UAAU,OAAO;AAKvB,SAAO;AAAA,IACL,KAAK;AAAA,EACP;AACF;","names":["import_errors","config"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/config-object.ts","../src/environment-reader.ts","../src/define-config.ts"],"sourcesContent":["export * from \"./config-object\";\nexport * from \"./environment-reader\";\nexport * from \"./types\";\nexport * from \"./define-config\";\n","import { AutomationError, raise } from \"@autometa/errors\";\nimport { EnvironmentReader } from \"./environment-reader\";\nimport { TestExecutorConfig } from \"./types\";\nexport class Config {\n readonly environments: EnvironmentReader = new EnvironmentReader();\n constructor(public envMap: Map<string, TestExecutorConfig>) {}\n get current(): TestExecutorConfig {\n const key = this.environments.value;\n if (!key) {\n if (!this.envMap.has(\"default\")) {\n throw new AutomationError(\n `No environment is defined. Define an environment with 'env.byLiteral(\"my-environment\")' or 'env.byEnvironmentVariable(\"MY_ENVIRONMENT\")' or 'env.byFactory(() => \"my-environment\")' or 'env.byLiteral(\"default\")'`\n );\n }\n return this.envMap.get(\"default\") as TestExecutorConfig;\n }\n if (!this.envMap.has(key)) {\n throw new AutomationError(\n `Environment ${key} is not defined. Options are: \\n ${Object.keys(\n this.envMap\n ).join(\"\\n\")}`\n );\n }\n return this.envMap.get(key) ?? raise(`Environment ${key} is not defined`);\n }\n get currentEnvironment() {\n return this.environments.value;\n }\n}\n","export class EnvironmentReader {\n #envVar?: string;\n #factory?: () => string;\n #literal?: string;\n /**\n * Returns the configuration object for the selected\n * environment by weighting.\n *\n * By priority the environment is selected by:\n * 1. Literal\n * 2. Environment Variable\n * 3. Factory\n */\n get value() {\n if (this.#literal) {\n return this.#literal;\n }\n if (this.#envVar) {\n const value = process.env[this.#envVar];\n if (value) {\n return value;\n }\n }\n if (this.#factory) {\n return this.#factory();\n }\n }\n\n byEnvironmentVariable(envVar: string) {\n this.#envVar = envVar;\n return this;\n }\n byFactory(factory: () => string) {\n this.#factory = factory;\n return this;\n }\n byLiteral(literal: string) {\n this.#literal = literal;\n return this;\n }\n}\n","import { Config } from \"./config-object\";\nimport { EnvironmentReader } from \"./environment-reader\";\nimport { TestExecutorConfig } from \"./types\";\nimport { AutomationError } from \"@autometa/errors\";\nexport function defineConfig(config: Config, ...configs: TestExecutorConfig[]) {\n const envs: string[] = [];\n const envMap = config.envMap;\n for (const config of configs) {\n if (config.environment) {\n if (envs.includes(config.environment)) {\n throw new AutomationError(\n `Environment ${config.environment} is defined more than once`\n );\n }\n envMap.set(config.environment, config);\n envs.push(config.environment);\n } else if (!config.environment && envs.includes(\"default\")) {\n throw new AutomationError(`Only one default environment can be defined`);\n } else {\n envMap.set(\"default\", config);\n envs.push(\"default\");\n config.environment = \"default\";\n }\n if (config.shim) {\n if (\"error-cause\" in config.shim && config.shim[\"error-cause\"] === true) {\n require(\"error-cause/auto\");\n }\n }\n }\n if (envs.length > 1 && !envs.includes(\"default\")) {\n throw new AutomationError(\n `A default environment must be defined first. At one config must not have an environment defined or define a default environment explicitly with 'environement=\"default\"`\n );\n }\n const setters = config.environments as {\n byLiteral: (literal: string) => EnvironmentReader;\n byEnvironmentVariable: (name: string) => EnvironmentReader;\n byFactory: (action: () => string) => EnvironmentReader;\n };\n return {\n env: setters,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAuC;;;ACAvC;AAAO,IAAM,oBAAN,MAAwB;AAAA,EAAxB;AACL;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,IAAI,QAAQ;AACV,QAAI,mBAAK,WAAU;AACjB,aAAO,mBAAK;AAAA,IACd;AACA,QAAI,mBAAK,UAAS;AAChB,YAAM,QAAQ,QAAQ,IAAI,mBAAK,QAAO;AACtC,UAAI,OAAO;AACT,eAAO;AAAA,MACT;AAAA,IACF;AACA,QAAI,mBAAK,WAAU;AACjB,aAAO,mBAAK,UAAL;AAAA,IACT;AAAA,EACF;AAAA,EAEA,sBAAsB,QAAgB;AACpC,uBAAK,SAAU;AACf,WAAO;AAAA,EACT;AAAA,EACA,UAAU,SAAuB;AAC/B,uBAAK,UAAW;AAChB,WAAO;AAAA,EACT;AAAA,EACA,UAAU,SAAiB;AACzB,uBAAK,UAAW;AAChB,WAAO;AAAA,EACT;AACF;AAvCE;AACA;AACA;;;ADAK,IAAM,SAAN,MAAa;AAAA,EAElB,YAAmB,QAAyC;AAAzC;AADnB,SAAS,eAAkC,IAAI,kBAAkB;AAAA,EACJ;AAAA,EAC7D,IAAI,UAA8B;AAChC,UAAM,MAAM,KAAK,aAAa;AAC9B,QAAI,CAAC,KAAK;AACR,UAAI,CAAC,KAAK,OAAO,IAAI,SAAS,GAAG;AAC/B,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AACA,aAAO,KAAK,OAAO,IAAI,SAAS;AAAA,IAClC;AACA,QAAI,CAAC,KAAK,OAAO,IAAI,GAAG,GAAG;AACzB,YAAM,IAAI;AAAA,QACR,eAAe,GAAG;AAAA,GAAoC,OAAO;AAAA,UAC3D,KAAK;AAAA,QACP,EAAE,KAAK,IAAI,CAAC;AAAA,MACd;AAAA,IACF;AACA,WAAO,KAAK,OAAO,IAAI,GAAG,SAAK,qBAAM,eAAe,GAAG,iBAAiB;AAAA,EAC1E;AAAA,EACA,IAAI,qBAAqB;AACvB,WAAO,KAAK,aAAa;AAAA,EAC3B;AACF;;;AEzBA,IAAAA,iBAAgC;AACzB,SAAS,aAAa,WAAmB,SAA+B;AAC7E,QAAM,OAAiB,CAAC;AACxB,QAAM,SAAS,OAAO;AACtB,aAAWC,WAAU,SAAS;AAC5B,QAAIA,QAAO,aAAa;AACtB,UAAI,KAAK,SAASA,QAAO,WAAW,GAAG;AACrC,cAAM,IAAI;AAAA,UACR,eAAeA,QAAO,WAAW;AAAA,QACnC;AAAA,MACF;AACA,aAAO,IAAIA,QAAO,aAAaA,OAAM;AACrC,WAAK,KAAKA,QAAO,WAAW;AAAA,IAC9B,WAAW,CAACA,QAAO,eAAe,KAAK,SAAS,SAAS,GAAG;AAC1D,YAAM,IAAI,+BAAgB,6CAA6C;AAAA,IACzE,OAAO;AACL,aAAO,IAAI,WAAWA,OAAM;AAC5B,WAAK,KAAK,SAAS;AACnB,MAAAA,QAAO,cAAc;AAAA,IACvB;AACA,QAAIA,QAAO,MAAM;AACf,UAAI,iBAAiBA,QAAO,QAAQA,QAAO,KAAK,aAAa,MAAM,MAAM;AACvE,gBAAQ,kBAAkB;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AACA,MAAI,KAAK,SAAS,KAAK,CAAC,KAAK,SAAS,SAAS,GAAG;AAChD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,QAAM,UAAU,OAAO;AAKvB,SAAO;AAAA,IACL,KAAK;AAAA,EACP;AACF;","names":["import_errors","config"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autometa/config",
3
- "version": "0.1.23",
3
+ "version": "0.1.25",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -18,24 +18,25 @@
18
18
  "@types/uuid": "^9.0.5",
19
19
  "@typescript-eslint/eslint-plugin": "^5.54.1",
20
20
  "@typescript-eslint/parser": "^5.54.1",
21
- "@vitest/coverage-istanbul": "^0.31.0",
21
+ "@vitest/coverage-istanbul": "^1.4.0",
22
+ "@vitest/coverage-v8": "^1.4.0",
22
23
  "eslint": "^8.37.0",
23
- "eslint-config-custom": "0.6.0",
24
24
  "eslint-config-prettier": "^8.3.0",
25
25
  "istanbul": "^0.4.5",
26
26
  "rimraf": "^4.1.2",
27
- "tsconfig": " *",
28
27
  "tsup": "^7.2.0",
29
28
  "typescript": "^4.9.5",
30
- "vitest": "0.34.6"
29
+ "vitest": "1.4.0",
30
+ "tsconfig": "0.7.0",
31
+ "eslint-config-custom": "0.6.0"
31
32
  },
32
33
  "dependencies": {
33
- "@autometa/app": "^0.3.4",
34
- "@autometa/asserters": "^0.1.8",
35
- "@autometa/errors": "^0.2.2",
36
- "@autometa/types": "^0.4.1",
37
34
  "error-cause": "^1.0.5",
38
- "zod": "^3.21.4"
35
+ "zod": "^3.21.4",
36
+ "@autometa/app": "^0.4.0",
37
+ "@autometa/errors": "^0.2.2",
38
+ "@autometa/asserters": "^0.1.8",
39
+ "@autometa/types": "^0.4.1"
39
40
  },
40
41
  "scripts": {
41
42
  "test": "vitest run --passWithNoTests",
@@ -46,6 +47,5 @@
46
47
  "clean": "rimraf dist",
47
48
  "build": "tsup",
48
49
  "build:watch": "tsup --watch"
49
- },
50
- "readme": "# Introduction\n\nThere's nothing here yet"
50
+ }
51
51
  }
package/tsup.config.ts CHANGED
@@ -4,7 +4,7 @@ export default defineConfig({
4
4
  clean: true, // clean up the dist folder
5
5
  format: ["cjs", "esm"], // generate cjs and esm files
6
6
  dts: true,
7
- sourcemap:true, // generate sourcemaps
7
+ sourcemap: true, // generate sourcemaps
8
8
  skipNodeModulesBundle: true,
9
9
  entryPoints: ["src/index.ts"],
10
10
  target: "es2020",