From aabc4c432f27ea5cdd5a6d15dc203008d48e48e7 Mon Sep 17 00:00:00 2001 From: undefined Date: Fri, 6 Aug 2021 01:16:16 +0800 Subject: [PATCH] core: fix p-queue esm load --- packages/hydrojudge/bin/hydrojudge.js | 25 ++++++++++++++++++------- packages/hydrojudge/package.json | 2 +- packages/hydrooj/bin/hydrooj.js | 20 ++++++++++---------- packages/hydrooj/package.json | 2 +- 4 files changed, 30 insertions(+), 19 deletions(-) diff --git a/packages/hydrojudge/bin/hydrojudge.js b/packages/hydrojudge/bin/hydrojudge.js index 42a9700e8..6db3875e7 100755 --- a/packages/hydrojudge/bin/hydrojudge.js +++ b/packages/hydrojudge/bin/hydrojudge.js @@ -2,31 +2,42 @@ const argv = require('cac')().parse(); const esbuild = require('esbuild'); +const fs = require('fs-extra'); + +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(type, filename) { +function transform(filename) { const start = new Date(); const result = esbuild.buildSync({ entryPoints: [filename], sourcemap: 'inline', platform: 'node', format: 'cjs', - target: `node${process.version.split('.')[0].split('v')[1]}`, + 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(`Code transform took ${transformTimeUsage}ms`), 1000); + displayTimeout = setTimeout(() => console.log(`Transformed ${transformCount} files. (${transformTimeUsage}ms)`), 1000); return result.outputFiles[0].text; } -require.extensions['.ts'] = function loader(module, filename) { - return module._compile(transform('ts', filename), filename); +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['.tsx'] = function loader(module, filename) { - return module._compile(transform('tsx', filename), 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'; diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index d73b15631..13537009a 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -1,7 +1,7 @@ { "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", - "version": "2.10.0", + "version": "2.10.1", "main": "package.json", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", diff --git a/packages/hydrooj/bin/hydrooj.js b/packages/hydrooj/bin/hydrooj.js index 611a0410c..ef9f09a32 100755 --- a/packages/hydrooj/bin/hydrooj.js +++ b/packages/hydrooj/bin/hydrooj.js @@ -16,7 +16,7 @@ const minor = +process.version.split('.')[1]; let transformTimeUsage = 0; let transformCount = 0; let displayTimeout; -function transform(type, filename) { +function transform(filename) { const start = new Date(); const result = esbuild.buildSync({ entryPoints: [filename], @@ -34,16 +34,16 @@ function transform(type, filename) { displayTimeout = setTimeout(() => console.log(`Transformed ${transformCount} files. (${transformTimeUsage}ms)`), 1000); return result.outputFiles[0].text; } -if (major < 14) { - require.extensions['.js'] = function loader(module, filename) { - return module._compile(transform('js', filename), filename); - }; -} -require.extensions['.ts'] = function loader(module, filename) { - return module._compile(transform('ts', filename), filename); +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['.tsx'] = function loader(module, filename) { - return module._compile(transform('tsx', filename), filename); +require.extensions['.ts'] = require.extensions['.tsx'] = function loader(module, filename) { + return module._compile(transform(filename), filename); }; function buildUrl(opts) { diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index b0719b9c6..0c6ecc466 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.31.0", + "version": "2.31.1", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader",