@storm-software/workspace-tools
Version:
Tools for managing a Storm workspace, including various Nx generators and executors for common development tasks.
60 lines (57 loc) • 1.76 kB
JavaScript
import {
findWorkspaceRoot
} from "./chunk-FR3YQN55.mjs";
import {
__name
} from "./chunk-2BPV2XV2.mjs";
// src/utils/apply-workspace-tokens.ts
var applyWorkspaceExecutorTokens = /* @__PURE__ */ __name(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;
}, "applyWorkspaceExecutorTokens");
export {
applyWorkspaceExecutorTokens
};