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

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