forked from Splamy/ScoreSaberEnhanced
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
46 lines (43 loc) · 1.24 KB
/
gulpfile.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
const { series, src, dest, task, watch } = require("gulp");
const rollupTypescript = require("@rollup/plugin-typescript");
const rollup = require("rollup");
const concat = require("gulp-concat");
const replace = require("gulp-replace");
const fs = require('fs');
const eslint = require("@rbnlffl/rollup-plugin-eslint");
task("build", async () => {
const bundle = await rollup.rollup({
input: "./src/main.ts",
plugins: [
eslint(),
rollupTypescript()
]
});
return bundle.write({
file: "./out/rollup.js",
format: "iife",
name: "library",
sourcemap: true
});
});
task("userscript", async () => {
let meta = JSON.parse(fs.readFileSync("./package.json"));
return src(["./src/header.user.js", "./out/rollup.js"])
.pipe(replace(/include\$GULP_CSS/, fs.readFileSync("./src/style.css", "utf8")))
.pipe(replace(/include\$GULP_METADATA/, [
`// @version ${meta.version}`,
`// @description ${meta.description}`,
`// @author ${meta.author}`,
].join('\n')))
.pipe(concat("./scoresaber.user.js"))
.pipe(dest("./"));
});
exports.default = series("build", "userscript");
exports.watch = function () {
watch([
"src/**/*.ts",
"src/**/*.css",
"src/**/*.user.js",
"./package.json",
], series("build", "userscript"));
};