Add Web/Desktop specific plugin capabilities; misc fixes

This commit is contained in:
Vendicated 2023-03-11 14:18:32 +01:00
parent 3b945b87b8
commit 5d1283bd85
No known key found for this signature in database
GPG key ID: A1DC0CFB5615D905
11 changed files with 89 additions and 85 deletions

View file

@ -33,6 +33,8 @@ export const banner = {
`.trim()
};
const isWeb = process.argv.slice(0, 2).some(f => f.endsWith("buildWeb.mjs"));
// https://github.com/evanw/esbuild/issues/619#issuecomment-751995294
/**
* @type {import("esbuild").Plugin}
@ -70,7 +72,13 @@ export const globPlugins = {
for (const file of files) {
if (file.startsWith(".")) continue;
if (file === "index.ts") continue;
if (!watch && (file.endsWith(".dev.ts") || file.endsWith(".dev.tsx"))) continue;
const fileBits = file.split(".");
if (fileBits.length > 2 && ["ts", "tsx"].includes(fileBits.at(-1))) {
const mod = fileBits.at(-2);
if (mod === "dev" && !watch) continue;
if (mod === "web" && !isWeb) continue;
if (mod === "desktop" && isWeb) continue;
}
const mod = `p${i}`;
code += `import ${mod} from "./${dir}/${file.replace(/\.tsx?$/, "")}";\n`;