forked from KevinVandy/material-react-table
-
Notifications
You must be signed in to change notification settings - Fork 1
/
rollup.config.mjs
76 lines (74 loc) · 1.83 KB
/
rollup.config.mjs
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
import copy from 'rollup-plugin-copy';
import dts from 'rollup-plugin-dts';
import external from 'rollup-plugin-peer-deps-external';
import resolve from '@rollup/plugin-node-resolve';
import typescript from '@rollup/plugin-typescript';
import { babel } from '@rollup/plugin-babel';
const supportedLocales = ['cs', 'de', 'en', 'es', 'it', 'ja', 'pl', 'pt-BR', 'ru'];
export default [
{
external: [
'@mui/icons-material',
'@mui/material',
'@tanstack/match-sorter-utils',
'@tanstack/react-table',
'react',
'react-virtual',
],
input: './src/index.tsx',
output: [
{
file: './dist/cjs/index.js',
format: 'cjs',
sourcemap: true,
},
{
file: './dist/esm/material-react-table.esm.js',
format: 'esm',
sourcemap: true,
},
],
plugins: [
babel({
exclude: 'node_modules/**',
presets: ['@babel/preset-react'],
}),
external(),
resolve(),
typescript(),
],
},
...supportedLocales.map((locale) => ({
input: `./src/_locales/${locale}.ts`,
output: [
{
file: `./locales/${locale}.js`,
format: 'cjs',
sourcemap: true,
},
{
file: `./locales/${locale}.esm.js`,
format: 'esm',
sourcemap: true,
},
],
plugins: [
typescript({ declaration: false, declarationDir: undefined }),
copy({
targets: [
...['cjs', 'esm'].map((format) => ({
src: `./dist/esm/_locales/${locale}.d.ts`,
dest: './locales',
rename: () =>
format === 'esm' ? `${locale}.${format}.d.ts` : `${locale}.d.ts`,
})),
],
}),
],
})),
{
input: 'dist/esm/index.d.ts',
output: [{ file: 'dist/index.d.ts', format: 'esm' }],
plugins: [dts()],
},
];