UNPKG

@mchangrh/sb.js

Version:

SponsorBlock userscript/bookmarklet clients

77 lines (67 loc) 2.45 kB
const fs = require("fs") const { resolve } = require("path") const UglifyJS = require("uglify-js") const bodyFile = resolve(__dirname, "../src/sb.js") const headerFile = resolve(__dirname, "../build/header.user.js") const loaderHeaderFile = resolve(__dirname, "../build/loader-header.user.js") const configHeaderFile = resolve(__dirname, "../build/config-header.user.js") const configSettingsFile = resolve(__dirname, "../src/gm_config.js") const configPageFile = resolve(__dirname, "../src/gm_configpage.js") const settingsFile = resolve(__dirname, "../src/settings.js") function defaultMerge(minify = true) { const body = fs.readFileSync(bodyFile, "utf8") const settings = fs.readFileSync(settingsFile, "utf8") const mergedBody = settings + body; return minify ? UglifyJS.minify(mergedBody).code : mergedBody } function userscript() { const header = fs.readFileSync(headerFile, "utf8") const settings = fs.readFileSync(settingsFile, "utf8") const body = fs.readFileSync(bodyFile, "utf8") fs.writeFileSync("docs/sb.user.js", header + settings + body) console.log("userscript done") } function loader() { const header = fs.readFileSync(loaderHeaderFile, "utf8") const settings = fs.readFileSync(settingsFile, "utf8") fs.writeFileSync("docs/sb-loader.user.js", header + settings) // loader payload const body = fs.readFileSync(bodyFile, "utf8") const minified = UglifyJS.minify(body).code fs.writeFileSync("docs/sb-nosettings.min.js", minified) console.log("loader-done") } function scriptConfig() { const header = fs.readFileSync(configHeaderFile, "utf8") const settings = fs.readFileSync(configSettingsFile, "utf8") const configPage = fs.readFileSync(configPageFile, "utf8") const body = fs.readFileSync(bodyFile, "utf8") fs.writeFileSync( "docs/sb-config.user.js", header + settings + body + configPage ) console.log("config-done") } function minimized() { const body = defaultMerge() fs.writeFileSync("docs/sb.min.js", body) console.log("minimized done") } function bookmarklet() { const body = defaultMerge() const header = "javascript: (function () {" const footer = "})()" fs.writeFileSync("docs/sb.bookmarklet.js", header + body + footer) console.log("bookmarklet done") } function copy() { const body = defaultMerge(false) fs.writeFileSync("docs/sb.js", body) console.log("copy done") } userscript() loader() scriptConfig() minimized() bookmarklet() copy()