@storm-software/config-tools
Version:
A package containing various utilities to support custom workspace configurations and environment management for Storm Software projects, including configuration file handling, environment variable management, and logging utilities.
396 lines (393 loc) • 13.3 kB
JavaScript
import {
correctPaths
} from "./chunk-V3GMJ4TX.js";
import {
getLogLevel
} from "./chunk-SXPH7ILL.js";
import {
LogLevel
} from "./chunk-RALMUN5C.js";
// src/env/set-env.ts
var setExtensionEnv = (extensionName, extension) => {
for (const key of Object.keys(extension ?? {})) {
if (extension[key]) {
const result = key?.replace(
/([A-Z])+/g,
(input) => input ? input[0]?.toUpperCase() + input.slice(1) : ""
).split(/(?=[A-Z])|[.\-\s_]/).map((x) => x.toLowerCase()) ?? [];
let extensionKey;
if (result.length === 0) {
return;
}
if (result.length === 1) {
extensionKey = result[0]?.toUpperCase() ?? "";
} else {
extensionKey = result.reduce((ret, part) => {
return `${ret}_${part.toLowerCase()}`;
});
}
process.env[`STORM_EXTENSION_${extensionName.toUpperCase()}_${extensionKey.toUpperCase()}`] = extension[key];
}
}
};
var setConfigEnv = (config) => {
const prefix = "STORM_";
if (config.extends) {
process.env[`${prefix}EXTENDS`] = Array.isArray(config.extends) ? JSON.stringify(config.extends) : config.extends;
}
if (config.name) {
process.env[`${prefix}NAME`] = config.name;
}
if (config.variant) {
process.env[`${prefix}VARIANT`] = config.variant;
}
if (config.namespace) {
process.env[`${prefix}NAMESPACE`] = config.namespace;
}
if (config.owner) {
process.env[`${prefix}OWNER`] = config.owner;
}
if (config.bot) {
process.env[`${prefix}BOT_NAME`] = config.bot.name;
process.env[`${prefix}BOT_EMAIL`] = config.bot.email;
}
if (config.error) {
process.env[`${prefix}ERROR_CODES_FILE`] = config.error.codesFile;
process.env[`${prefix}ERROR_URL`] = config.error.url;
}
if (config.release) {
if (config.release.banner) {
if (typeof config.release.banner === "string") {
process.env[`${prefix}RELEASE_BANNER`] = config.release.banner;
process.env[`${prefix}RELEASE_BANNER_URL`] = config.release.banner;
} else {
process.env[`${prefix}RELEASE_BANNER`] = config.release.banner.url;
process.env[`${prefix}RELEASE_BANNER_URL`] = config.release.banner.url;
process.env[`${prefix}RELEASE_BANNER_ALT`] = config.release.banner.alt;
}
}
process.env[`${prefix}RELEASE_HEADER`] = config.release.header;
process.env[`${prefix}RELEASE_FOOTER`] = config.release.footer;
}
if (config.socials) {
if (config.socials.twitter) {
process.env[`${prefix}SOCIAL_TWITTER`] = config.socials.twitter;
}
if (config.socials.discord) {
process.env[`${prefix}SOCIAL_DISCORD`] = config.socials.discord;
}
if (config.socials.telegram) {
process.env[`${prefix}SOCIAL_TELEGRAM`] = config.socials.telegram;
}
if (config.socials.slack) {
process.env[`${prefix}SOCIAL_SLACK`] = config.socials.slack;
}
if (config.socials.medium) {
process.env[`${prefix}SOCIAL_MEDIUM`] = config.socials.medium;
}
if (config.socials.github) {
process.env[`${prefix}SOCIAL_GITHUB`] = config.socials.github;
}
}
if (config.organization) {
if (typeof config.organization === "string") {
process.env[`${prefix}ORG`] = config.organization;
process.env[`${prefix}ORG_NAME`] = config.organization;
process.env[`${prefix}ORGANIZATION`] = config.organization;
process.env[`${prefix}ORGANIZATION_NAME`] = config.organization;
} else {
process.env[`${prefix}ORG`] = config.organization.name;
process.env[`${prefix}ORG_NAME`] = config.organization.name;
process.env[`${prefix}ORGANIZATION`] = config.organization.name;
process.env[`${prefix}ORGANIZATION_NAME`] = config.organization.name;
if (config.organization.url) {
process.env[`${prefix}ORG_URL`] = config.organization.url;
process.env[`${prefix}ORGANIZATION_URL`] = config.organization.url;
}
if (config.organization.description) {
process.env[`${prefix}ORG_DESCRIPTION`] = config.organization.description;
process.env[`${prefix}ORGANIZATION_DESCRIPTION`] = config.organization.description;
}
if (config.organization.logo) {
process.env[`${prefix}ORG_LOGO`] = config.organization.logo;
process.env[`${prefix}ORGANIZATION_LOGO`] = config.organization.logo;
}
if (config.organization.icon) {
process.env[`${prefix}ORG_ICON`] = config.organization.icon;
process.env[`${prefix}ORGANIZATION_ICON`] = config.organization.icon;
}
}
}
if (config.packageManager) {
process.env[`${prefix}PACKAGE_MANAGER`] = config.packageManager;
}
if (config.license) {
process.env[`${prefix}LICENSE`] = config.license;
}
if (config.homepage) {
process.env[`${prefix}HOMEPAGE`] = config.homepage;
}
if (config.docs) {
process.env[`${prefix}DOCS`] = config.docs;
}
if (config.portal) {
process.env[`${prefix}PORTAL`] = config.portal;
}
if (config.licensing) {
process.env[`${prefix}LICENSING`] = config.licensing;
}
if (config.contact) {
process.env[`${prefix}CONTACT`] = config.contact;
}
if (config.support) {
process.env[`${prefix}SUPPORT`] = config.support;
}
if (config.timezone) {
process.env[`${prefix}TIMEZONE`] = config.timezone;
process.env.TZ = config.timezone;
process.env.DEFAULT_TIMEZONE = config.timezone;
process.env.TIMEZONE = config.timezone;
}
if (config.locale) {
process.env[`${prefix}LOCALE`] = config.locale;
process.env.DEFAULT_LOCALE = config.locale;
process.env.LOCALE = config.locale;
process.env.LANG = config.locale ? `${config.locale.replaceAll("-", "_")}.UTF-8` : "en_US.UTF-8";
}
if (config.configFile) {
process.env[`${prefix}WORKSPACE_CONFIG_FILE`] = correctPaths(
config.configFile
);
}
if (config.workspaceRoot) {
process.env[`${prefix}WORKSPACE_ROOT`] = correctPaths(config.workspaceRoot);
process.env.NX_WORKSPACE_ROOT = correctPaths(config.workspaceRoot);
process.env.NX_WORKSPACE_ROOT_PATH = correctPaths(config.workspaceRoot);
}
if (config.directories) {
if (!config.skipCache && config.directories.cache) {
process.env[`${prefix}CACHE_DIR`] = correctPaths(
config.directories.cache
);
process.env[`${prefix}CACHE_DIRECTORY`] = process.env[`${prefix}CACHE_DIR`];
}
if (config.directories.data) {
process.env[`${prefix}DATA_DIR`] = correctPaths(config.directories.data);
process.env[`${prefix}DATA_DIRECTORY`] = process.env[`${prefix}DATA_DIR`];
}
if (config.directories.config) {
process.env[`${prefix}CONFIG_DIR`] = correctPaths(
config.directories.config
);
process.env[`${prefix}CONFIG_DIRECTORY`] = process.env[`${prefix}CONFIG_DIR`];
}
if (config.directories.temp) {
process.env[`${prefix}TEMP_DIR`] = correctPaths(config.directories.temp);
process.env[`${prefix}TEMP_DIRECTORY`] = process.env[`${prefix}TEMP_DIR`];
}
if (config.directories.log) {
process.env[`${prefix}LOG_DIR`] = correctPaths(config.directories.log);
process.env[`${prefix}LOG_DIRECTORY`] = process.env[`${prefix}LOG_DIR`];
}
if (config.directories.build) {
process.env[`${prefix}BUILD_DIR`] = correctPaths(
config.directories.build
);
process.env[`${prefix}BUILD_DIRECTORY`] = process.env[`${prefix}BUILD_DIR`];
}
}
if (config.skipCache !== void 0) {
process.env[`${prefix}SKIP_CACHE`] = String(config.skipCache);
if (config.skipCache) {
process.env.NX_SKIP_NX_CACHE ??= String(config.skipCache);
process.env.NX_CACHE_PROJECT_GRAPH ??= String(config.skipCache);
}
}
if (config.mode) {
process.env[`${prefix}MODE`] = config.mode;
process.env.NODE_ENV = config.mode;
process.env.ENVIRONMENT = config.mode;
}
if (config.colors?.base?.light || config.colors?.base?.dark) {
for (const key of Object.keys(config.colors)) {
setThemeColorsEnv(`${prefix}COLOR_${key}_`, config.colors[key]);
}
} else {
setThemeColorsEnv(
`${prefix}COLOR_`,
config.colors
);
}
if (config.repository) {
process.env[`${prefix}REPOSITORY`] = config.repository;
}
if (config.branch) {
process.env[`${prefix}BRANCH`] = config.branch;
}
if (config.preid) {
process.env[`${prefix}PRE_ID`] = String(config.preid);
}
if (config.registry) {
if (config.registry.github) {
process.env[`${prefix}REGISTRY_GITHUB`] = String(config.registry.github);
}
if (config.registry.npm) {
process.env[`${prefix}REGISTRY_NPM`] = String(config.registry.npm);
}
if (config.registry.cargo) {
process.env[`${prefix}REGISTRY_CARGO`] = String(config.registry.cargo);
}
if (config.registry.cyclone) {
process.env[`${prefix}REGISTRY_CYCLONE`] = String(
config.registry.cyclone
);
}
if (config.registry.container) {
process.env[`${prefix}REGISTRY_CONTAINER`] = String(
config.registry.container
);
}
}
if (config.logLevel) {
process.env[`${prefix}LOG_LEVEL`] = String(config.logLevel);
process.env.LOG_LEVEL = String(config.logLevel);
process.env.NX_VERBOSE_LOGGING = String(
getLogLevel(config.logLevel) >= LogLevel.DEBUG ? true : false
);
process.env.RUST_BACKTRACE = getLogLevel(config.logLevel) >= LogLevel.DEBUG ? "full" : "none";
}
if (config.skipConfigLogging !== void 0) {
process.env[`${prefix}SKIP_CONFIG_LOGGING`] = String(
config.skipConfigLogging
);
}
process.env[`${prefix}WORKSPACE_CONFIG`] = JSON.stringify(config);
for (const key of Object.keys(config.extensions ?? {})) {
if (config.extensions[key] && Object.keys(config.extensions[key])) {
setExtensionEnv(key, config.extensions[key]);
}
}
};
var setThemeColorsEnv = (prefix, config) => {
return config?.light?.brand || config?.dark?.brand ? setMultiThemeColorsEnv(prefix, config) : setSingleThemeColorsEnv(prefix, config);
};
var setSingleThemeColorsEnv = (prefix, config) => {
if (config.dark) {
process.env[`${prefix}DARK`] = config.dark;
}
if (config.light) {
process.env[`${prefix}LIGHT`] = config.light;
}
if (config.brand) {
process.env[`${prefix}BRAND`] = config.brand;
}
if (config.alternate) {
process.env[`${prefix}ALTERNATE`] = config.alternate;
}
if (config.accent) {
process.env[`${prefix}ACCENT`] = config.accent;
}
if (config.link) {
process.env[`${prefix}LINK`] = config.link;
}
if (config.help) {
process.env[`${prefix}HELP`] = config.help;
}
if (config.success) {
process.env[`${prefix}SUCCESS`] = config.success;
}
if (config.info) {
process.env[`${prefix}INFO`] = config.info;
}
if (config.debug) {
process.env[`${prefix}DEBUG`] = config.debug;
}
if (config.warning) {
process.env[`${prefix}WARNING`] = config.warning;
}
if (config.danger) {
process.env[`${prefix}DANGER`] = config.danger;
}
if (config.fatal) {
process.env[`${prefix}FATAL`] = config.fatal;
}
if (config.performance) {
process.env[`${prefix}PERFORMANCE`] = config.performance;
}
if (config.positive) {
process.env[`${prefix}POSITIVE`] = config.positive;
}
if (config.negative) {
process.env[`${prefix}NEGATIVE`] = config.negative;
}
if (config.gradient) {
for (let i = 0; i < config.gradient.length; i++) {
process.env[`${prefix}GRADIENT_${i}`] = config.gradient[i];
}
}
};
var setMultiThemeColorsEnv = (prefix, config) => {
return {
light: setBaseThemeColorsEnv(`${prefix}LIGHT_`, config.light),
dark: setBaseThemeColorsEnv(`${prefix}DARK_`, config.dark)
};
};
var setBaseThemeColorsEnv = (prefix, config) => {
if (config.foreground) {
process.env[`${prefix}FOREGROUND`] = config.foreground;
}
if (config.background) {
process.env[`${prefix}BACKGROUND`] = config.background;
}
if (config.brand) {
process.env[`${prefix}BRAND`] = config.brand;
}
if (config.alternate) {
process.env[`${prefix}ALTERNATE`] = config.alternate;
}
if (config.accent) {
process.env[`${prefix}ACCENT`] = config.accent;
}
if (config.link) {
process.env[`${prefix}LINK`] = config.link;
}
if (config.help) {
process.env[`${prefix}HELP`] = config.help;
}
if (config.success) {
process.env[`${prefix}SUCCESS`] = config.success;
}
if (config.info) {
process.env[`${prefix}INFO`] = config.info;
}
if (config.debug) {
process.env[`${prefix}DEBUG`] = config.debug;
}
if (config.warning) {
process.env[`${prefix}WARNING`] = config.warning;
}
if (config.danger) {
process.env[`${prefix}DANGER`] = config.danger;
}
if (config.fatal) {
process.env[`${prefix}FATAL`] = config.fatal;
}
if (config.performance) {
process.env[`${prefix}PERFORMANCE`] = config.performance;
}
if (config.positive) {
process.env[`${prefix}POSITIVE`] = config.positive;
}
if (config.negative) {
process.env[`${prefix}NEGATIVE`] = config.negative;
}
if (config.gradient) {
for (let i = 0; i < config.gradient.length; i++) {
process.env[`${prefix}GRADIENT_${i}`] = config.gradient[i];
}
}
};
export {
setExtensionEnv,
setConfigEnv
};