-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcompile-script.js
More file actions
36 lines (28 loc) · 1.46 KB
/
compile-script.js
File metadata and controls
36 lines (28 loc) · 1.46 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
/* eslint-disable */
const fs = require("fs");
console.log("delete old dist files ...");
if (fs.existsSync("./dist/ytbsp.meta.js")) {
fs.unlinkSync("./dist/ytbsp.meta.js");
}
if (fs.existsSync("./dist/ytbsp.user.js")) {
fs.unlinkSync("./dist/ytbsp.user.js");
}
console.log("concat templates and build file ...");
var packageFile = fs.readFileSync("./package.json", "utf8");
var headerFile = fs.readFileSync("./user-script-header.js", "utf8");
var licenseFile = fs.readFileSync("./LICENSE", "utf8");
var licenseVendorFile = fs.readFileSync("./dist/main.js.LICENSE.txt", "utf8");
var mainFile = fs.readFileSync("./dist/main.js", "utf8");
var version = JSON.parse(packageFile)["version"];
headerFile = headerFile.replace("{VERSION}", version);
licenseFile = "/*\n" + licenseFile + "*/\n";
// Workaround for TrustedTypes:
// replace htmlPrefilter of JQuery
mainFile = mainFile.replace("htmlPrefilter:function(e){return e}",
"htmlPrefilter:function(e){if(typeof trustedTypes === 'undefined' || trustedTypes === null){return e;}var p=trustedTypes.createPolicy('foo',{createHTML:(input)=>input});return p.createHTML(e);}");
fs.writeFileSync("./dist/ytbsp.meta.js", headerFile, console.error);
fs.writeFileSync("./dist/ytbsp.user.js", [headerFile, licenseFile, licenseVendorFile, mainFile].join("\n"), console.error);
console.log("cleanup build file ...");
fs.unlinkSync("./dist/main.js");
fs.unlinkSync("./dist/main.js.LICENSE.txt");
console.log("Successfully build YTBSP script!");