-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathindex.ts
More file actions
74 lines (69 loc) · 2.01 KB
/
index.ts
File metadata and controls
74 lines (69 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import { onlyExportComponents } from "./only-export-components.ts";
import type { OnlyExportComponentsOptions } from "./types.d.ts";
const rules = {
"only-export-components": onlyExportComponents,
};
const plugin = { rules };
const buildConfig =
({
name,
baseOptions,
}: {
name: string;
baseOptions: OnlyExportComponentsOptions;
}) =>
(options?: OnlyExportComponentsOptions) => ({
name: `react-refresh/${name}`,
plugins: { "react-refresh": plugin },
rules: {
"react-refresh/only-export-components": [
"error",
{ ...baseOptions, ...options },
],
},
});
const configs = {
recommended: buildConfig({ name: "recommended", baseOptions: {} }),
vite: buildConfig({
name: "vite",
baseOptions: { allowConstantExport: true },
}),
next: buildConfig({
name: "next",
baseOptions: {
allowExportNames: [
// https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config
"experimental_ppr",
"dynamic",
"dynamicParams",
"revalidate",
"fetchCache",
"runtime",
"preferredRegion",
"maxDuration",
// https://nextjs.org/docs/app/api-reference/functions/generate-metadata
"metadata",
"generateMetadata",
// https://nextjs.org/docs/app/api-reference/functions/generate-viewport
"viewport",
"generateViewport",
// https://nextjs.org/docs/app/api-reference/functions/generate-image-metadata
"generateImageMetadata",
// https://nextjs.org/docs/app/api-reference/functions/generate-sitemaps
"generateSitemaps",
// https://nextjs.org/docs/app/api-reference/functions/generate-static-params
"generateStaticParams",
],
},
}),
};
export const reactRefresh = { plugin, configs };
/** Prefer reactRefresh export which exposed configs as functions */
export default {
rules,
configs: {
recommended: configs.recommended(),
vite: configs.vite(),
next: configs.next(),
},
};