-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrollup.config.js
82 lines (77 loc) · 1.68 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
70
71
72
73
74
75
76
77
78
79
80
81
82
import esbuild from "rollup-plugin-esbuild";
import terser from "@rollup/plugin-terser";
import { dts } from "rollup-plugin-dts";
const nth_identifier = (() => {
const base54 = {
chars:
"jmsprefdghiklnoqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$_".split(
""
),
get: function (num) {
var ret = "",
base = 52;
num++;
do {
num--;
ret += this.chars[num % base];
num = Math.floor(num / base);
base = 64;
} while (num > 0);
return ret;
},
};
return base54;
})();
const terserPlugin = terser({
mangle: {
nth_identifier,
},
});
export default [
{
input: "src/index.d.ts",
output: [{ file: "dist/types.d.ts" }],
plugins: [dts()],
},
{
input: "src/preferences.ts",
external: (id) => !/^[./]/.test(id),
plugins: [
esbuild({
minify: true,
sourceMap: false,
}),
],
output: [
{
file: `dist/userpref.js`,
format: "cjs",
sourcemap: false,
strict: false,
plugins: [terserPlugin],
},
{
file: "dist/index.js",
format: "es",
sourcemap: false,
strict: false,
plugins: [
terserPlugin,
{
name: "wrap-in-string",
generateBundle(options, bundle) {
for (const [fileName, chunk] of Object.entries(bundle)) {
if (chunk.type === "chunk") {
chunk.code = `export const source = '${chunk.code.replace(
/\n/g,
""
)}';`;
}
}
},
},
],
},
],
},
];