chore: 整理 third-party Dark Reader 目录并移除本地说明文件跟踪
This commit is contained in:
+161
@@ -0,0 +1,161 @@
|
||||
// @ts-check
|
||||
import process from 'node:process';
|
||||
|
||||
import bundleAPI from './bundle-api.js';
|
||||
import bundleCSS from './bundle-css.js';
|
||||
import bundleHTML from './bundle-html.js';
|
||||
import bundleJS from './bundle-js.js';
|
||||
import bundleLocales from './bundle-locales.js';
|
||||
import bundleManifest from './bundle-manifest.js';
|
||||
import bundleSignature from './bundle-signature.js';
|
||||
import clean from './clean.js';
|
||||
import codeStyle from './code-style.js';
|
||||
import copy from './copy.js';
|
||||
import saveLog from './log.js';
|
||||
import {PLATFORM} from './platform.js';
|
||||
import * as reload from './reload.js';
|
||||
import {runTasks} from './task.js';
|
||||
import {log, pathExistsSync} from './utils.js';
|
||||
import zip from './zip.js';
|
||||
|
||||
const standardTask = [
|
||||
clean,
|
||||
bundleHTML,
|
||||
bundleJS,
|
||||
bundleCSS,
|
||||
bundleLocales,
|
||||
bundleManifest,
|
||||
copy,
|
||||
saveLog,
|
||||
];
|
||||
|
||||
const buildTask = [
|
||||
...standardTask,
|
||||
codeStyle,
|
||||
zip,
|
||||
];
|
||||
|
||||
const signedBuildTask = [
|
||||
...standardTask,
|
||||
codeStyle,
|
||||
bundleSignature,
|
||||
zip,
|
||||
];
|
||||
|
||||
async function build({platforms, debug, watch, log: logging, test, version}) {
|
||||
log.ok('BUILD');
|
||||
platforms = {
|
||||
...platforms,
|
||||
[PLATFORM.API]: false,
|
||||
};
|
||||
try {
|
||||
await runTasks(debug ? standardTask : (version ? signedBuildTask : buildTask), {platforms, debug, watch, log: logging, test, version});
|
||||
if (watch) {
|
||||
standardTask.forEach((task) => task.watch(platforms));
|
||||
reload.reload({type: reload.FULL});
|
||||
log.ok('Watching...');
|
||||
} else {
|
||||
log.ok('MISSION PASSED! RESPECT +');
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
log.error(`MISSION FAILED!`);
|
||||
process.exit(13);
|
||||
}
|
||||
}
|
||||
|
||||
async function api(debug, watch) {
|
||||
log.ok('API');
|
||||
try {
|
||||
const tasks = [bundleAPI];
|
||||
if (!debug) {
|
||||
tasks.push(codeStyle);
|
||||
}
|
||||
await runTasks(tasks, {platforms: {[PLATFORM.API]: true}, debug, watch, version: false, log: false, test: false});
|
||||
if (watch) {
|
||||
bundleAPI.watch();
|
||||
log.ok('Watching...');
|
||||
}
|
||||
log.ok('MISSION PASSED! RESPECT +');
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
log.error(`MISSION FAILED!`);
|
||||
process.exit(13);
|
||||
}
|
||||
}
|
||||
|
||||
async function run({release, debug, platforms, watch, log, test, version}) {
|
||||
const regular = Object.keys(platforms).some((platform) => platform !== PLATFORM.API && platforms[platform]);
|
||||
if (release && regular) {
|
||||
await build({platforms, version, debug: false, watch: false, log: null, test: false});
|
||||
}
|
||||
if (debug && regular) {
|
||||
await build({platforms, version, debug, watch, log, test});
|
||||
}
|
||||
if (platforms[PLATFORM.API]) {
|
||||
await api(debug, watch);
|
||||
}
|
||||
}
|
||||
|
||||
function getParams(args) {
|
||||
const argMap = {
|
||||
'--api': PLATFORM.API,
|
||||
'--chrome': PLATFORM.CHROMIUM_MV2,
|
||||
'--chrome-mv2': PLATFORM.CHROMIUM_MV2,
|
||||
'--chrome-mv3': PLATFORM.CHROMIUM_MV3,
|
||||
'--chrome-plus': PLATFORM.CHROMIUM_MV2_PLUS,
|
||||
'--firefox': PLATFORM.FIREFOX_MV2,
|
||||
'--firefox-mv2': PLATFORM.FIREFOX_MV2,
|
||||
'--firefox-mv3': PLATFORM.FIREFOX_MV3,
|
||||
'--thunderbird': PLATFORM.THUNDERBIRD,
|
||||
};
|
||||
const platforms = {
|
||||
[PLATFORM.CHROMIUM_MV2]: false,
|
||||
[PLATFORM.CHROMIUM_MV2_PLUS]: false,
|
||||
[PLATFORM.CHROMIUM_MV3]: false,
|
||||
[PLATFORM.FIREFOX_MV2]: false,
|
||||
[PLATFORM.THUNDERBIRD]: false,
|
||||
};
|
||||
let allPlatforms = true;
|
||||
for (const arg of args) {
|
||||
if (argMap[arg]) {
|
||||
platforms[argMap[arg]] = true;
|
||||
allPlatforms = false;
|
||||
}
|
||||
}
|
||||
if ((args.includes('--chrome') || args.includes('--chrome-mv2')) && args.includes('--plus')) {
|
||||
platforms[PLATFORM.CHROMIUM_MV2] = false;
|
||||
platforms[PLATFORM.CHROMIUM_MV2_PLUS] = true;
|
||||
}
|
||||
if (allPlatforms) {
|
||||
Object.keys(platforms).forEach((platform) => platforms[platform] = true);
|
||||
}
|
||||
|
||||
// TODO(Anton): remove me
|
||||
if (platforms[PLATFORM.FIREFOX_MV3]) {
|
||||
platforms[PLATFORM.FIREFOX_MV3] = false;
|
||||
console.log('Firefox MV3 build is not supported yet');
|
||||
}
|
||||
|
||||
if (!pathExistsSync('./src/plus/')) {
|
||||
platforms[PLATFORM.CHROMIUM_MV2_PLUS] = false;
|
||||
}
|
||||
|
||||
const versionArg = args.find((a) => a.startsWith('--version='));
|
||||
const version = versionArg ? versionArg.substring('--version='.length) : null;
|
||||
|
||||
const release = args.includes('--release');
|
||||
const debug = args.includes('--debug');
|
||||
const watch = args.includes('--watch');
|
||||
const logInfo = watch && args.includes('--log-info');
|
||||
const logWarn = watch && args.includes('--log-warn');
|
||||
const logAssert = watch && args.includes('--log-assert');
|
||||
const log = logWarn ? 'warn' : (logInfo ? 'info' : (logAssert ? 'assert' : null));
|
||||
const test = args.includes('--test');
|
||||
|
||||
return {release, debug, platforms, watch, log, test, version};
|
||||
}
|
||||
|
||||
const args = process.argv.slice(2);
|
||||
const params = getParams(args);
|
||||
run(params);
|
||||
Reference in New Issue
Block a user