diff --git a/packages/hydrooj/bin/hydrooj.js b/packages/hydrooj/bin/hydrooj.js index 86fa87f84..349a1c32a 100755 --- a/packages/hydrooj/bin/hydrooj.js +++ b/packages/hydrooj/bin/hydrooj.js @@ -2,50 +2,17 @@ /* eslint-disable consistent-return */ -require('source-map-support').install(); +require('esbuild-register/dist/node').register({ + target: `node${process.version.slice(1)}`, + jsx: 'transform', +}); const os = require('os'); const path = require('path'); const fs = require('fs-extra'); const argv = require('cac')().parse(); const child = require('child_process'); -const esbuild = require('esbuild'); if (!process.env.NODE_APP_INSTANCE) process.env.NODE_APP_INSTANCE = '0'; -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); -}; function buildUrl(opts) { let mongourl = `${opts.protocol || 'mongodb'}://`; diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index b97ca2c99..d544d34ca 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -18,6 +18,7 @@ "cac": "^6.7.3", "cookies": "^0.8.0", "detect-browser": "^5.2.0", + "esbuild-register": "^3.0.0", "fs-extra": "^10.0.0", "graphql": "^15.5.3", "graphql-scalars": "^1.10.1", @@ -40,7 +41,6 @@ "reflect-metadata": "^0.1.13", "serialize-javascript": "^6.0.0", "sockjs": "^0.3.21", - "source-map-support": "^0.5.20", "superagent": "^6.1.0", "tx2": "^1.0.4" },