ui: esbuild page loader

This commit is contained in:
undefined committed 2022-03-23 22:14:20 +08:00
1 parent 4ce8439e99
commit a8aa163302
2 files changed
+15 -5

No files matched your search

+14 -4
View File
@@ -1,21 +1,31 @@
/* eslint-disable no-return-await */
/* eslint-disable camelcase */
import crypto from 'crypto';
import { readFileSync } from 'fs-extra';
import { join } from 'path';
import { ObjectID } from 'mongodb';
import * as bus from 'hydrooj/src/service/bus';
import { Route, Handler } from 'hydrooj/src/service/server';
import { PERM, PRIV } from 'hydrooj/src/model/builtin';
import esbuild from 'esbuild';
import markdown from './backendlib/markdown';
const {
system, user, setting, problem, contest,
} = global.Hydro.model;
const pages = Object.keys(global.Hydro.ui.manifest)
.filter((file) => file.endsWith('.page.js'))
.map((i) => readFileSync(join(global.Hydro.ui.manifest[i], i), 'utf-8'));
const pageFiles = Object.keys(global.Hydro.ui.manifest)
.filter((file) => file.endsWith('.page.js') || file.endsWith('.page.ts'));
const build = esbuild.buildSync({
format: 'iife',
entryPoints: pageFiles.map((i) => join(global.Hydro.ui.manifest[i], i)),
bundle: true,
splitting: false,
write: false,
minify: !process.env.DEV,
});
if (build.errors.length) console.error(build.errors);
if (build.warnings.length) console.warn(build.warnings);
const pages = build.outputFiles.map((i) => i.text);
let constant = '';
let hash = '';