This repository was archived by the owner on Sep 5, 2025. It is now read-only.
forked from ueberdosis/hocuspocus
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrollup.config.js
More file actions
105 lines (93 loc) · 2.61 KB
/
rollup.config.js
File metadata and controls
105 lines (93 loc) · 2.61 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import path from "path";
import { fileURLToPath } from "url";
import batchPackages from "@lerna/batch-packages";
import { filterPackages } from "@lerna/filter-packages";
import { getPackages } from "@lerna/project";
import babel from "@rollup/plugin-babel";
import commonjs from "@rollup/plugin-commonjs";
import json from "@rollup/plugin-json";
import resolve from "@rollup/plugin-node-resolve";
// import sourcemaps from 'rollup-plugin-sourcemaps'
import typescript from "@rollup/plugin-typescript";
import minimist from "minimist";
// import sizes from '@atomico/rollup-plugin-sizes'
import autoExternal from "rollup-plugin-auto-external";
// import importAssertions from 'rollup-plugin-import-assertions'
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
async function getSortedPackages(scope, ignore) {
const packages = await getPackages(__dirname);
const filtered = filterPackages(packages, scope, ignore, false);
return batchPackages(filtered)
.filter(
(item) => !["@hocuspocus/docs", "@hocuspocus/demo"].includes(item.name),
)
.reduce((arr, batch) => arr.concat(batch), []);
}
async function build(commandLineArgs) {
const config = [];
// Support --scope and --ignore globs if passed in via commandline
const { scope, ignore, ci } = minimist(process.argv.slice(2));
const packages = await getSortedPackages(scope, ignore);
// prevent rollup warning
delete commandLineArgs.ci;
delete commandLineArgs.scope;
delete commandLineArgs.ignore;
packages.forEach((pkg) => {
const basePath = path.relative(__dirname, pkg.location);
const input = path.join(basePath, "src/index.ts");
const { name, exports } = pkg.toJSON();
if (!exports) {
return;
}
const basePlugins = [
// sourcemaps(),
resolve(),
commonjs(),
babel({
babelHelpers: "bundled",
exclude: "node_modules/**",
}),
// sizes(),
json(),
// importAssertions(),
];
config.push({
// perf: true,
input,
output: [
{
name,
file: path.join(basePath, exports.default.require),
format: "cjs",
sourcemap: true,
exports: "auto",
},
{
name,
file: path.join(basePath, exports.default.import),
format: "es",
sourcemap: true,
},
],
plugins: [
autoExternal({
packagePath: path.join(basePath, "package.json"),
}),
...basePlugins,
typescript({
compilerOptions: {
declaration: true,
declarationDir: path.join(basePath, "dist"),
paths: {
"@hocuspocus/*": ["packages/*/src"],
},
},
include: [],
}),
],
});
});
return config;
}
export default build;