Skip to content

Commit ef41cbb

Browse files
committed
perf(fmt): load plugin resolver on demand
1 parent 6827284 commit ef41cbb

1 file changed

Lines changed: 12 additions & 8 deletions

File tree

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
11
import { resolveFmtOptions } from './config.ts';
22
import { discoverFmtPaths } from './discoverPaths.ts';
33
import { createFmtIgnoreMatcher } from './ignore.ts';
4-
import { createFmtPluginResolver, type FmtPluginResolver } from './plugins.ts';
54
import type { DiscoverFmtFilesOptions, FmtFileRequest, ResolvedFmtConfig } from './types.ts';
65

7-
const createFileRequest = (
8-
filePath: string,
9-
config: ResolvedFmtConfig,
10-
resolvePlugins: FmtPluginResolver,
11-
): FmtFileRequest => ({
6+
const createFileRequest = (filePath: string, config: ResolvedFmtConfig): FmtFileRequest => ({
127
path: filePath,
13-
options: resolvePlugins(resolveFmtOptions(filePath, config)),
8+
options: resolveFmtOptions(filePath, config),
149
});
1510

1611
/** Discovers worker-ready files without reading Prettier config files or `.prettierignore`. */
@@ -26,9 +21,18 @@ const discoverFmtFiles = async ({
2621

2722
const isFmtIgnored = createFmtIgnoreMatcher(config);
2823
const filePaths = candidates.filter((filePath) => !isFmtIgnored(filePath));
24+
const files = filePaths.map((filePath) => createFileRequest(filePath, config));
25+
if (!files.some((file) => file.options.plugins?.length)) {
26+
return files;
27+
}
28+
29+
const { createFmtPluginResolver } = await import(
30+
/* rspackChunkName: 'fmtPlugins' */
31+
'./plugins.ts'
32+
);
2933
const resolvePlugins = createFmtPluginResolver(config.rootPath);
3034

31-
return filePaths.map((filePath) => createFileRequest(filePath, config, resolvePlugins));
35+
return files.map((file) => ({ ...file, options: resolvePlugins(file.options) }));
3236
};
3337

3438
export { discoverFmtFiles };

0 commit comments

Comments
 (0)