Files
UT-Registration-Plus/gulpfile.js
2024-10-16 22:18:18 -05:00

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 };