@storm-software/workspace-tools
Version:
Tools for managing a Storm workspace, including various Nx generators and executors for common development tasks.
86 lines (83 loc) • 3.01 kB
JavaScript
import {
withRunExecutor
} from "./chunk-7P2LGXFI.mjs";
import {
writeInfo
} from "./chunk-NODM27UV.mjs";
import {
joinPaths
} from "./chunk-ATIBREWM.mjs";
import {
__name
} from "./chunk-2BPV2XV2.mjs";
// src/executors/unbuild/executor.ts
import { defu } from "defu";
import { createJiti } from "jiti";
async function unbuildExecutorFn(options, context, config) {
writeInfo("\u{1F4E6} Running Storm Unbuild executor on the workspace", config);
if (!context.projectsConfigurations?.projects || !context.projectName || !context.projectsConfigurations.projects[context.projectName]) {
throw new Error("The Build process failed because the context is not valid. Please run this command from a workspace root directory.");
}
if (!context.projectsConfigurations.projects[context.projectName].root) {
throw new Error("The Build process failed because the project root is not valid. Please run this command from a workspace root directory.");
}
if (!context.projectsConfigurations.projects[context.projectName].sourceRoot) {
throw new Error("The Build process failed because the project's source root is not valid. Please run this command from a workspace root directory.");
}
const jiti = createJiti(config.workspaceRoot, {
fsCache: config.skipCache ? false : joinPaths(config.workspaceRoot, config.directories.cache || "node_modules/.cache/storm", "jiti"),
interopDefault: true
});
const stormUnbuild = await jiti.import(jiti.esmResolve("@storm-software/unbuild/build"));
await stormUnbuild.build(defu({
...options,
projectRoot: context.projectsConfigurations.projects[context.projectName].root,
projectName: context.projectName,
sourceRoot: context.projectsConfigurations.projects[context.projectName].sourceRoot,
platform: options.platform
}, {
stubOptions: {
jiti: {
fsCache: config.skipCache ? false : joinPaths(config.workspaceRoot, config.directories.cache || "node_modules/.cache/storm", "jiti")
}
},
rollup: {
emitCJS: true,
watch: false,
dts: {
respectExternal: true
},
esbuild: {
target: options.target,
format: "esm",
platform: options.platform,
minify: options.minify ?? !options.debug,
sourcemap: options.sourcemap ?? options.debug,
treeShaking: options.treeShaking
}
}
}));
return {
success: true
};
}
__name(unbuildExecutorFn, "unbuildExecutorFn");
var executor_default = withRunExecutor("TypeScript Unbuild build", unbuildExecutorFn, {
skipReadingConfig: false,
hooks: {
applyDefaultOptions: /* @__PURE__ */ __name(async (options, config) => {
options.debug ??= false;
options.treeShaking ??= true;
options.platform ??= "neutral";
options.entry ??= [
"{sourceRoot}"
];
options.tsconfig ??= "{projectRoot}/tsconfig.json";
return options;
}, "applyDefaultOptions")
}
});
export {
unbuildExecutorFn,
executor_default
};