-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathvite.config.mts
77 lines (71 loc) · 2.11 KB
/
vite.config.mts
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
75
76
77
import { resolve } from 'path';
import { readdirSync, statSync } from 'fs';
import { defineConfig, mergeConfig } from 'vite';
import dts from 'vite-plugin-dts';
import { viteStaticCopy } from 'vite-plugin-static-copy';
import base from '../build-config/templates/vite/cli.vite.config';
import pkg from './package.json' assert { type: 'json' };
const CODEMODS_VERSIONS_PATH = 'src/codemods/versions';
const CODEMOD_FILENAME = 'codemod.ts';
const versions = readdirSync(resolve(__dirname, CODEMODS_VERSIONS_PATH))
.map((filename) => ({
name: filename,
path: resolve(__dirname, CODEMODS_VERSIONS_PATH, filename),
}))
.filter(({ path }) => statSync(path).isDirectory());
const codemodEntries = Object.fromEntries(
versions
.filter(({ path }) => statSync(resolve(path, CODEMOD_FILENAME)).isFile())
.map(({ name, path }) => [
`codemods/versions/${name}/codemod`,
resolve(path, CODEMOD_FILENAME),
]),
);
export default mergeConfig(
base,
defineConfig({
resolve: {
alias: {
prettier: 'prettier/index.mjs',
},
},
build: {
lib: {
entry: {
index: resolve(__dirname, pkg.main),
'ag-grid-devtools-cli': resolve(__dirname, 'ag-grid-devtools-cli.ts'),
'user-config': resolve(__dirname, 'user-config.ts'),
'codemods/lib': resolve(__dirname, 'src/codemods/lib.ts'),
'codemods/worker': resolve(__dirname, 'src/codemods/worker.ts'),
...codemodEntries,
},
name: pkg.name,
formats: ['cjs'],
},
sourcemap: false,
rollupOptions: {
external: ['@typescript-eslint/parser'],
},
},
plugins: [
dts({
rollupTypes: true,
bundledPackages: ['@ag-grid-devtools/types'],
exclude: [
'src/codemods/**',
'node_modules/**',
'*.config.mts',
'**/*.test.ts',
'package.json',
'index.ts',
],
}),
viteStaticCopy({
targets: [
{ src: 'index.mjs', dest: '.' },
{ src: 'ag-grid-devtools-cli.mjs', dest: '.' },
],
}),
],
}),
);