UNPKG

@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
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 };