Monaco for Discord Desktop

This commit is contained in:
Vendicated 2022-10-22 04:41:33 +02:00
parent 23d4cae123
commit 44f6f71c3e
No known key found for this signature in database
GPG key ID: EC781ADFB93EFFA3
11 changed files with 173 additions and 90 deletions

View file

@ -18,7 +18,7 @@
*/
import esbuild from "esbuild";
import { commonOpts, gitHashPlugin, globPlugins, makeAllPackagesExternalPlugin } from "./common.mjs";
import { commonOpts, fileIncludePlugin, gitHashPlugin, globPlugins, makeAllPackagesExternalPlugin } from "./common.mjs";
/**
* @type {esbuild.BuildOptions}
@ -30,7 +30,7 @@ const nodeCommonOpts = {
target: ["esnext"],
minify: true,
sourcemap: "linked",
plugins: [makeAllPackagesExternalPlugin],
plugins: [...commonOpts.plugins, makeAllPackagesExternalPlugin],
};
await Promise.all([
@ -55,7 +55,8 @@ await Promise.all([
external: ["plugins", "git-hash"],
plugins: [
globPlugins,
gitHashPlugin
gitHashPlugin,
fileIncludePlugin
],
define: {
IS_WEB: "false"
@ -65,6 +66,6 @@ await Promise.all([
console.error("Build failed");
console.error(err.message);
// make ci fail
if (!watch)
if (!commonOpts.watch)
process.exitCode = 1;
});

View file

@ -23,7 +23,7 @@ import yazl from "yazl";
import esbuild from "esbuild";
// wtf is this assert syntax
import PackageJSON from "../../package.json" assert { type: "json" };
import { commonOpts, gitHashPlugin, globPlugins } from "./common.mjs";
import { commonOpts, fileIncludePlugin, gitHashPlugin, globPlugins } from "./common.mjs";
/**
* @type {esbuild.BuildOptions}
@ -36,7 +36,8 @@ const commonOptions = {
external: ["plugins", "git-hash"],
plugins: [
globPlugins,
gitHashPlugin
gitHashPlugin,
fileIncludePlugin
],
target: ["esnext"],
define: {

View file

@ -19,22 +19,11 @@
import { execSync } from "child_process";
import esbuild from "esbuild";
import { existsSync } from "fs";
import { readdir } from "fs/promises";
import { readdir, readFile } from "fs/promises";
import { join } from "path";
const watch = process.argv.includes("--watch");
/**
* @type {esbuild.BuildOptions}
*/
export const commonOpts = {
logLevel: "info",
bundle: true,
watch,
minify: !watch,
sourcemap: watch ? "inline" : "",
legalComments: "linked"
};
// https://github.com/evanw/esbuild/issues/619#issuecomment-751995294
/**
* @type {esbuild.Plugin}
@ -103,3 +92,39 @@ export const gitHashPlugin = {
}));
}
};
/**
* @type {esbuild.Plugin}
*/
export const fileIncludePlugin = {
name: "file-include-plugin",
setup: build => {
const filter = /^@fileContent\/.+$/;
build.onResolve({ filter }, args => ({
namespace: "include-file",
path: args.path,
pluginData: {
path: join(args.resolveDir, args.path.slice("include-file/".length))
}
}));
build.onLoad({ filter, namespace: "include-file" }, async ({ pluginData: { path } }) => {
const [name, format] = path.split(";");
return {
contents: `export default ${JSON.stringify(await readFile(name, format ?? "utf-8"))}`
};
});
}
};
/**
* @type {esbuild.BuildOptions}
*/
export const commonOpts = {
logLevel: "info",
bundle: true,
watch,
minify: !watch,
sourcemap: watch ? "inline" : "",
legalComments: "linked",
plugins: [fileIncludePlugin]
};