UNPKG

@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
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 };