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.

139 lines (116 loc) 5.08 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _chunkN5TOHWQYcjs = require('./chunk-N5TOHWQY.cjs'); var _chunkXPQXNNGZcjs = require('./chunk-XPQXNNGZ.cjs'); var _chunkKH5SONKWcjs = require('./chunk-KH5SONKW.cjs'); var _chunkU436743Ucjs = require('./chunk-U436743U.cjs'); var _chunk6YHEX4VCcjs = require('./chunk-6YHEX4VC.cjs'); var _chunkCIVWRQRNcjs = require('./chunk-CIVWRQRN.cjs'); // src/create-storm-config.ts var _schema = require('@storm-software/config/schema'); var _defu = require('defu'); var _defu2 = _interopRequireDefault(_defu); var _extension_cache = /* @__PURE__ */ new WeakMap(); var _static_cache = void 0; var createStormWorkspaceConfig = async (extensionName, schema, workspaceRoot, skipLogs = false, useDefault = true) => { let result; if (!_optionalChain([_static_cache, 'optionalAccess', _ => _.data]) || !_optionalChain([_static_cache, 'optionalAccess', _2 => _2.timestamp]) || _static_cache.timestamp < Date.now() - 8e3) { let _workspaceRoot = workspaceRoot; if (!_workspaceRoot) { _workspaceRoot = _chunkU436743Ucjs.findWorkspaceRoot.call(void 0, ); } const configEnv = _chunkCIVWRQRNcjs.getConfigEnv.call(void 0, ); const configFile = await _chunkN5TOHWQYcjs.getConfigFile.call(void 0, _workspaceRoot); if (!configFile) { if (!skipLogs) { _chunkXPQXNNGZcjs.writeWarning.call(void 0, "No Storm Workspace configuration file found in the current repository. Please ensure this is the expected behavior - you can add a `storm-workspace.json` file to the root of your workspace if it is not.\n", { logLevel: "all" } ); } if (useDefault === false) { return void 0; } } const defaultConfig = await _chunkKH5SONKWcjs.getPackageJsonConfig.call(void 0, _workspaceRoot); result = _chunkKH5SONKWcjs.applyDefaultConfig.call(void 0, await _schema.stormWorkspaceConfigSchema.parseAsync( _defu2.default.call(void 0, configEnv, configFile, defaultConfig) ) ); result.workspaceRoot ??= _workspaceRoot; } else { result = _static_cache.data; } if (schema && extensionName) { result.extensions = { ...result.extensions, [extensionName]: createConfigExtension(extensionName, schema) }; } _static_cache = { timestamp: Date.now(), data: result }; return result; }; var createConfigExtension = (extensionName, schema) => { const extension_cache_key = { extensionName }; if (_extension_cache.has(extension_cache_key)) { return _extension_cache.get(extension_cache_key); } let extension = _chunkCIVWRQRNcjs.getExtensionEnv.call(void 0, extensionName); if (schema) { extension = schema.parse(extension); } _extension_cache.set(extension_cache_key, extension); return extension; }; var loadStormWorkspaceConfig = async (workspaceRoot, skipLogs = false) => { const config = await createStormWorkspaceConfig( void 0, void 0, workspaceRoot, skipLogs, true ); _chunk6YHEX4VCcjs.setConfigEnv.call(void 0, config); if (!skipLogs && !config.skipConfigLogging) { _chunkXPQXNNGZcjs.writeTrace.call(void 0, `\u2699\uFE0F Using Storm Workspace configuration: ${_chunkXPQXNNGZcjs.formatLogMessage.call(void 0, config)}`, config ); } return config; }; var tryLoadStormWorkspaceConfig = async (workspaceRoot, skipLogs = true, useDefault = false) => { try { const config = await createStormWorkspaceConfig( void 0, void 0, workspaceRoot, skipLogs, useDefault ); if (!config) { return void 0; } _chunk6YHEX4VCcjs.setConfigEnv.call(void 0, config); if (!skipLogs && !config.skipConfigLogging) { _chunkXPQXNNGZcjs.writeTrace.call(void 0, `\u2699\uFE0F Using Storm Workspace configuration: ${_chunkXPQXNNGZcjs.formatLogMessage.call(void 0, config)}`, config ); } return config; } catch (error) { if (!skipLogs) { _chunkXPQXNNGZcjs.writeWarning.call(void 0, `\u26A0\uFE0F Failed to load Storm Workspace configuration: ${error}`, { logLevel: "all" } ); } return void 0; } }; exports.createStormWorkspaceConfig = createStormWorkspaceConfig; exports.createConfigExtension = createConfigExtension; exports.loadStormWorkspaceConfig = loadStormWorkspaceConfig; exports.tryLoadStormWorkspaceConfig = tryLoadStormWorkspaceConfig;