@storm-software/workspace-tools
Version:
Tools for managing a Storm workspace, including various Nx generators and executors for common development tasks.
53 lines (50 loc) • 1.58 kB
JavaScript
import {
withRunExecutor
} from "./chunk-EYZGKQNH.mjs";
import {
writeInfo
} from "./chunk-MMA4S6LZ.mjs";
// src/executors/size-limit/executor.ts
import { joinPathFragments } from "@nx/devkit";
import esBuildPlugin from "@size-limit/esbuild";
import esBuildWhyPlugin from "@size-limit/esbuild-why";
import filePlugin from "@size-limit/file";
import sizeLimit from "size-limit";
async function sizeLimitExecutorFn(options, context, config) {
if (!context?.projectName || !context.projectsConfigurations?.projects || !context.projectsConfigurations.projects[context.projectName]) {
throw new Error(
"The Size-Limit process failed because the context is not valid. Please run this command from a workspace."
);
}
writeInfo(`\u{1F4CF} Running Size-Limit on ${context.projectName}`, config);
sizeLimit([filePlugin, esBuildPlugin, esBuildWhyPlugin], {
checks: options.entry ?? context.projectsConfigurations.projects[context.projectName]?.sourceRoot ?? joinPathFragments(
context.projectsConfigurations.projects[context.projectName]?.root ?? "./",
"src"
)
}).then((result) => {
writeInfo(
`\u{1F4CF} ${context.projectName} Size-Limit result: ${JSON.stringify(result)}`,
config
);
});
return {
success: true
};
}
var executor_default = withRunExecutor(
"Size-Limit Performance Test Executor",
sizeLimitExecutorFn,
{
skipReadingConfig: false,
hooks: {
applyDefaultOptions: (options) => {
return options;
}
}
}
);
export {
sizeLimitExecutorFn,
executor_default
};