fix: environmentalize
This commit is contained in:
parent
3dba690c6d
commit
dcf48dab95
|
@ -15,40 +15,6 @@ const {
|
||||||
const debug = D('@flecks/build/build/build');
|
const debug = D('@flecks/build/build/build');
|
||||||
const debugSilly = debug.extend('silly');
|
const debugSilly = debug.extend('silly');
|
||||||
|
|
||||||
function environmentalize(path) {
|
|
||||||
return path
|
|
||||||
// - `@flecks/core` -> `flecks_core`
|
|
||||||
.replace(/[^a-zA-Z0-9]/g, '_')
|
|
||||||
.replace(/_*(.*)_*/, '$1');
|
|
||||||
}
|
|
||||||
|
|
||||||
function environmentConfiguration(config) {
|
|
||||||
const keys = Object.keys(process.env);
|
|
||||||
Object.keys(config)
|
|
||||||
.sort((l, r) => (l < r ? 1 : -1))
|
|
||||||
.forEach((fleck) => {
|
|
||||||
const prefix = `FLECKS_ENV__${environmentalize(fleck)}`;
|
|
||||||
keys
|
|
||||||
.filter((key) => key.startsWith(`${prefix}__`))
|
|
||||||
.map((key) => {
|
|
||||||
debug('reading environment from %s...', key);
|
|
||||||
return [key.slice(prefix.length + 2), process.env[key]];
|
|
||||||
})
|
|
||||||
.map(([subkey, value]) => [subkey.split('_'), value])
|
|
||||||
.forEach(([path, jsonOrString]) => {
|
|
||||||
try {
|
|
||||||
Flecks.set(config, [fleck, ...path], JSON.parse(jsonOrString));
|
|
||||||
debug('read (%s) as JSON', jsonOrString);
|
|
||||||
}
|
|
||||||
catch (error) {
|
|
||||||
Flecks.set(config, [fleck, ...path], jsonOrString);
|
|
||||||
debug('read (%s) as string', jsonOrString);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = class Build extends Flecks {
|
module.exports = class Build extends Flecks {
|
||||||
|
|
||||||
aliased = {};
|
aliased = {};
|
||||||
|
@ -73,7 +39,7 @@ module.exports = class Build extends Flecks {
|
||||||
static async buildRuntime(originalConfig, platforms, flecks = {}) {
|
static async buildRuntime(originalConfig, platforms, flecks = {}) {
|
||||||
const cleanConfig = JSON.parse(JSON.stringify(originalConfig));
|
const cleanConfig = JSON.parse(JSON.stringify(originalConfig));
|
||||||
// Dealias the config keys.
|
// Dealias the config keys.
|
||||||
const dealiasedConfig = environmentConfiguration(
|
const dealiasedConfig = this.environmentConfiguration(
|
||||||
Object.fromEntries(
|
Object.fromEntries(
|
||||||
Object.entries(cleanConfig)
|
Object.entries(cleanConfig)
|
||||||
.map(([maybeAliasedPath, config]) => {
|
.map(([maybeAliasedPath, config]) => {
|
||||||
|
@ -116,6 +82,40 @@ module.exports = class Build extends Flecks {
|
||||||
await this.invokeSequentialAsync('@flecks/build.config.alter', config, env, argv);
|
await this.invokeSequentialAsync('@flecks/build.config.alter', config, env, argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static environmentalize(path) {
|
||||||
|
return path
|
||||||
|
// - `@flecks/core` -> `flecks_core`
|
||||||
|
.replace(/[^a-zA-Z0-9]/g, '_')
|
||||||
|
.replace(/_*(.*)_*/, '$1');
|
||||||
|
}
|
||||||
|
|
||||||
|
static environmentConfiguration(config) {
|
||||||
|
const keys = Object.keys(process.env);
|
||||||
|
Object.keys(config)
|
||||||
|
.sort((l, r) => (l < r ? 1 : -1))
|
||||||
|
.forEach((fleck) => {
|
||||||
|
const prefix = `FLECKS_ENV__${this.environmentalize(fleck)}`;
|
||||||
|
keys
|
||||||
|
.filter((key) => key.startsWith(`${prefix}__`))
|
||||||
|
.map((key) => {
|
||||||
|
debug('reading environment from %s...', key);
|
||||||
|
return [key.slice(prefix.length + 2), process.env[key]];
|
||||||
|
})
|
||||||
|
.map(([subkey, value]) => [subkey.split('_'), value])
|
||||||
|
.forEach(([path, jsonOrString]) => {
|
||||||
|
try {
|
||||||
|
Flecks.set(config, [fleck, ...path], JSON.parse(jsonOrString));
|
||||||
|
debug('read (%s) as JSON', jsonOrString);
|
||||||
|
}
|
||||||
|
catch (error) {
|
||||||
|
Flecks.set(config, [fleck, ...path], jsonOrString);
|
||||||
|
debug('read (%s) as string', jsonOrString);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
|
||||||
static async from(
|
static async from(
|
||||||
{
|
{
|
||||||
config: configParameter,
|
config: configParameter,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user