fix remote source maps for users with custom ghp domains

This commit is contained in:
mini-bomba
2025-09-16 19:38:01 +02:00
parent c30f8ec5a3
commit 1056d1ef5f

View File

@@ -3,14 +3,22 @@ const { SourceMapDevToolPlugin } = require('webpack');
const { merge } = require('webpack-merge'); const { merge } = require('webpack-merge');
const common = require('./webpack.common.js'); const common = require('./webpack.common.js');
function createGHPSourceMapURL(env) { async function createGHPSourceMapURL(env) {
const manifest = require("../manifest/manifest.json"); const manifest = require("../manifest/manifest.json");
const version = manifest.version; const version = manifest.version;
const [owner, repo_name] = (process.env.GITHUB_REPOSITORY ?? "ajayyy/SponsorBlock").split("/"); const [owner, repo_name] = (process.env.GITHUB_REPOSITORY ?? "ajayyy/SponsorBlock").split("/");
return `https://${owner.toLowerCase()}.github.io/${repo_name}/${env.browser}${env.stream === "beta" ? "-beta" : ""}/${version}/`; const ghpUrl = `https://${owner.toLowerCase()}.github.io/${repo_name}/${env.browser}${env.stream === "beta" ? "-beta" : ""}/${version}/`;
// make a request to the url and check if we got redirected
// firefox doesn't seem to like getting redirected on a source map request
try {
const resp = await fetch(ghpUrl);
return resp.url;
} catch {
return ghpUrl;
}
} }
module.exports = env => { module.exports = async env => {
let mode = "production"; let mode = "production";
env.mode = mode; env.mode = mode;
@@ -20,7 +28,7 @@ module.exports = env => {
? { ? {
devtool: false, devtool: false,
plugins: [new SourceMapDevToolPlugin({ plugins: [new SourceMapDevToolPlugin({
publicPath: createGHPSourceMapURL(env), publicPath: await createGHPSourceMapURL(env),
filename: '[file].map[query]', filename: '[file].map[query]',
})], })],
} }