@storm-software/workspace-tools
Version:
Tools for managing a Storm workspace, including various Nx generators and executors for common development tasks.
49 lines (46 loc) • 1.67 kB
JavaScript
import {
withRunExecutor
} from "./chunk-7P2LGXFI.mjs";
import {
writeInfo
} from "./chunk-NODM27UV.mjs";
import {
__name
} from "./chunk-2BPV2XV2.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
};
}
__name(sizeLimitExecutorFn, "sizeLimitExecutorFn");
var executor_default = withRunExecutor("Size-Limit Performance Test Executor", sizeLimitExecutorFn, {
skipReadingConfig: false,
hooks: {
applyDefaultOptions: /* @__PURE__ */ __name((options) => {
return options;
}, "applyDefaultOptions")
}
});
export {
sizeLimitExecutorFn,
executor_default
};