utils: module loader register

This commit is contained in:
undefined committed 2022-08-07 05:05:45 +08:00
1 parent 20bbda794e
commit 7dafab8344
50 files changed
+83 -275

No files matched your search

+1 -39
View File
@@ -1,45 +1,7 @@
#!/usr/bin/env node
const argv = require('cac')().parse();
const esbuild = require('esbuild');
const fs = require('fs-extra');
require('@hydrooj/utils/lib/register');
const major = +process.version.split('.')[0].split('v')[1];
const minor = +process.version.split('.')[1];
let transformTimeUsage = 0;
let transformCount = 0;
let displayTimeout;
function transform(filename) {
const start = new Date();
const result = esbuild.buildSync({
entryPoints: [filename],
sourcemap: 'inline',
platform: 'node',
format: 'cjs',
target: `node${major}.${minor}`,
jsx: 'transform',
write: false,
});
if (result.warnings.length) console.warn(result.warnings);
transformTimeUsage += new Date().getTime() - start.getTime();
transformCount++;
if (displayTimeout) clearTimeout(displayTimeout);
displayTimeout = setTimeout(() => console.log(`Transformed ${transformCount} files. (${transformTimeUsage}ms)`), 1000);
return result.outputFiles[0].text;
}
const ESM = ['p-queue', 'p-timeout'];
require.extensions['.js'] = function loader(module, filename) {
if (ESM.filter((i) => filename.includes(i)).length || major < 14) {
return module._compile(transform(filename), filename);
}
const content = fs.readFileSync(filename, 'utf-8');
return module._compile(content, filename);
};
require.extensions['.ts'] = require.extensions['.tsx'] = function loader(module, filename) {
return module._compile(transform(filename), filename);
};
if (argv.options.debug) process.env.DEV = 'on';
if (argv.args[0] === 'cache') require('../src/cache')();
else require('../src/daemon')();
+3 -7
View File
@@ -1,7 +1,7 @@
{
"name": "@hydrooj/hydrojudge",
"bin": "bin/hydrojudge.js",
"version": "2.22.4",
"version": "2.22.5",
"main": "package.json",
"author": "undefined <i@undefined.moe>",
"repository": "https://github.com/hydro-dev/Hydro.git",
@@ -9,14 +9,13 @@
"@hydrooj/utils": "workspace:*",
"axios": "^0.27.2",
"cac": "^6.7.12",
"esbuild": "0.14.3",
"fs-extra": "^10.1.0",
"js-yaml": "^4.1.0",
"lodash": "^4.17.21",
"mongodb": "^3.7.3",
"p-queue": "^7.2.0",
"p-queue": "^7.3.0",
"shell-quote": "^1.7.3",
"ws": "^8.8.0"
"ws": "^8.8.1"
},
"preferUnplugged": true,
"license": "AGPL-3.0-or-later",
@@ -26,8 +25,5 @@
"@types/lodash": "^4.14.182",
"@types/shell-quote": "^1.7.1",
"@types/ws": "^8.5.3"
},
"peerDependencies": {
"hydrooj": "*"
}
}