forked from pegjs/pegjs
/
rollup.config.js
69 lines (66 loc) · 1.36 KB
/
rollup.config.js
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
import alias from '@rollup/plugin-alias';
import commonjs from '@rollup/plugin-commonjs';
import {nodeResolve} from '@rollup/plugin-node-resolve';
import ts from '@rollup/plugin-typescript';
import pegjs from 'rollup-plugin-pegjs';
import {string} from 'rollup-plugin-string';
const external = [
`clipanion`,
`typanion`,
`vscode`,
];
const plugins = ({tsconfig}) => [
alias({
entries: [
{find: /^\.\/(grammar\.[^./]+)$/, replacement: `./$1.pegjs`},
],
}),
ts({
tsconfig,
}),
pegjs({
include: `**/sources/*.pegjs`,
}),
string({
include: `**/examples/*.pegjs`,
}),
nodeResolve({
resolveOnly: [`arpege`, `lodash`],
}),
commonjs(),
];
// eslint-disable-next-line arca/no-default-export
export default [{
input: [
`./sources/cli.ts`,
`./sources/index.ts`,
],
output: [{
dir: `lib`,
entryFileNames: `[name].mjs`,
format: `es`,
}, {
dir: `lib`,
entryFileNames: `[name].js`,
format: `cjs`,
}],
plugins: plugins({
tsconfig: `tsconfig.dist.json`,
}),
external,
preserveSymlinks: true,
}, {
input: [
`./extension/sources/extension.ts`,
],
output: [{
dir: `./extension/lib`,
entryFileNames: `[name].js`,
format: `cjs`,
}],
plugins: plugins({
tsconfig: `tsconfig.extension.json`,
}),
external,
preserveSymlinks: true,
}];