@storm-software/workspace-tools
Version:
Tools for managing a Storm workspace, including various Nx generators and executors for common development tasks.
106 lines (103 loc) • 3.18 kB
JavaScript
import {
withRunExecutor
} from "./chunk-EYZGKQNH.mjs";
import {
writeInfo
} from "./chunk-MMA4S6LZ.mjs";
import {
joinPaths
} from "./chunk-TBW5MCN6.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
};
}
var executor_default = withRunExecutor(
"TypeScript Unbuild build",
unbuildExecutorFn,
{
skipReadingConfig: false,
hooks: {
applyDefaultOptions: async (options, config) => {
options.debug ??= false;
options.treeShaking ??= true;
options.buildOnly ??= false;
options.platform ??= "neutral";
options.entry ??= ["{sourceRoot}"];
options.tsconfig ??= "{projectRoot}/tsconfig.json";
return options;
}
}
}
);
export {
unbuildExecutorFn,
executor_default
};