UNPKG

@storm-software/workspace-tools

Version:

Tools for managing a Storm workspace, including various Nx generators and executors for common development tasks.

63 lines (60 loc) 1.71 kB
import { findWorkspaceRoot } from "./chunk-3J2CP54B.mjs"; // src/utils/apply-workspace-tokens.ts var applyWorkspaceExecutorTokens = async (option, tokenizerOptions) => { let result = option; if (!result) { return result; } let projectName; let projectRoot; let sourceRoot; if (tokenizerOptions?.projectName) { const context = tokenizerOptions; projectName = context.projectName; projectRoot = context.root; sourceRoot = context.sourceRoot; } else { const projectConfig = tokenizerOptions; projectRoot = projectConfig.root; if (projectConfig.name) { projectName = projectConfig.name; } if (projectConfig.sourceRoot) { sourceRoot = projectConfig.sourceRoot; } } if (tokenizerOptions.config) { const configKeys = Object.keys(tokenizerOptions.config); if (configKeys.some((configKey) => result.includes(`{${configKey}}`))) { for (const configKey of configKeys) { if (result.includes(`{${configKey}}`)) { result = result.replaceAll( `{${configKey}}`, tokenizerOptions.config[configKey] ); } } } } if (result.includes("{projectName}")) { result = result.replaceAll("{projectName}", projectName); } if (result.includes("{projectRoot}")) { result = result.replaceAll("{projectRoot}", projectRoot); } if (result.includes("{sourceRoot}")) { result = result.replaceAll("{sourceRoot}", sourceRoot); } if (result.includes("{workspaceRoot}")) { result = result.replaceAll( "{workspaceRoot}", tokenizerOptions.workspaceRoot ?? findWorkspaceRoot() ); } return result; }; export { applyWorkspaceExecutorTokens };