49 lines
1.5 KiB
JavaScript
49 lines
1.5 KiB
JavaScript
// (Thanks go to https://github.com/pnd280/complexity/blob/alpha/gulpfile.js)
|
|
|
|
import cp from 'child_process';
|
|
import fs from 'fs';
|
|
import gulp from 'gulp';
|
|
import gulpZip from 'gulp-zip';
|
|
import { createRequire } from 'module';
|
|
|
|
// Make sure sentry is configured https://docs.sentry.io/platforms/javascript/sourcemaps/uploading/typescript/#2-configure-sentry-cli
|
|
function instrumentWithSentry() {
|
|
return cp.exec('sentry-cli sourcemaps inject dist/ && sentry-cli sourcemaps upload dist/');
|
|
}
|
|
|
|
function zipDist() {
|
|
const require = createRequire(import.meta.url);
|
|
const manifest = require('./package.json');
|
|
const zipFileName = `${manifest.name.replaceAll(' ', '-')}-${manifest.version}.zip`;
|
|
|
|
return gulp
|
|
.src('dist/**', {
|
|
encoding: false,
|
|
})
|
|
.pipe(gulpZip(zipFileName))
|
|
.pipe(gulp.dest('package'));
|
|
}
|
|
|
|
const zip = gulp.series(instrumentWithSentry, zipDist);
|
|
|
|
// Temp fix for CSP on Chrome 130
|
|
// Manually remove them because there is no option to disable use_dynamic_url on @crxjs/vite-plugin
|
|
function forceDisableUseDynamicUrl(done) {
|
|
const require = createRequire(import.meta.url);
|
|
const manifest = require('./dist/manifest.json');
|
|
|
|
manifest.web_accessible_resources.forEach(resource => {
|
|
delete resource.use_dynamic_url;
|
|
});
|
|
|
|
if (!fs.existsSync('./dist/manifest.json')) {
|
|
return done();
|
|
}
|
|
|
|
fs.writeFileSync('./dist/manifest.json', JSON.stringify(manifest, null, 2));
|
|
|
|
done();
|
|
}
|
|
|
|
export { forceDisableUseDynamicUrl, zip };
|