···
build.onEnd((result) => {
+
console.log(`[${timeFormatter.format(new Date())}] [${tag}] build finished`);
···
MOONLIGHT_VERSION: `"${buildVersion}"`
+
for (const iterName of ["injector", "node-preload", "web-preload", "browser"]) {
const snake = iterName.replace(/-/g, "_").toUpperCase();
define[`MOONLIGHT_${snake}`] = (name === iterName).toString();
···
if (name === "browser") {
+
src: mv2 ? "./packages/browser/manifestv2.json" : "./packages/browser/manifest.json",
dest: `./dist/${browserDir}/manifest.json`
···
+
src: mv2 ? "./packages/browser/src/background-mv2.js" : "./packages/browser/src/background.js",
dest: `./dist/${browserDir}/background.js`
···
if (name === "browser") {
const coreExtensionsJson = {};
const files = fs.readdirSync(dir);
for (const file of files) {
···
if (fs.statSync(filePath).isDirectory()) {
+
coreExtensionsJson[normalizedPath] = fs.readFileSync(filePath, "utf8");
···
readDir("./dist/core-extensions");
+
js: `window._moonlight_coreExtensionsStr = ${JSON.stringify(JSON.stringify(coreExtensionsJson))};`
···
fs.mkdirSync(outdir, { recursive: true });
+
const entryPoints = [`packages/core-extensions/src/${ext}/${side}.${fileExt}`];
const wpModulesDir = `packages/core-extensions/src/${ext}/webpackModules`;
if (fs.existsSync(wpModulesDir) && side === "index") {
const wpModules = fs.opendirSync(wpModulesDir);
for await (const wpModule of wpModules) {
+
entryPoints.push(`packages/core-extensions/src/${ext}/webpackModules/${wpModule.name}`);
for (const fileExt of ["ts", "tsx"]) {
const path = `packages/core-extensions/src/${ext}/webpackModules/${wpModule.name}/index.${fileExt}`;
···
for (const fileExt of ["ts", "tsx"]) {
for (const type of ["index", "node", "host"]) {
+
if (fs.existsSync(`./packages/core-extensions/src/${ext}/${type}.${fileExt}`)) {
promises.push(buildExt(ext, type, !copiedManifest, fileExt));