core: easy require resolve hook

This commit is contained in:
undefined committed 2022-01-01 03:42:41 +08:00
1 parent 06faa233f8
commit 072f165f9e
3 files changed
+6 -2

No files matched your search

+2
View File
@@ -22,6 +22,8 @@ const fs = require('fs-extra');
const argv = require('cac')().parse(); const argv = require('cac')().parse();
const child = require('child_process'); const child = require('child_process');
const esbuild = require('esbuild'); const esbuild = require('esbuild');
const { default: hook } = require('require-resolve-hook');
const { bypass } = hook(/^hydrooj/, (id) => bypass(() => require.resolve(id)));
const exec = (...args) => { const exec = (...args) => {
console.log('Executing: ', args[0], args[1].join(' ')); console.log('Executing: ', args[0], args[1].join(' '));
+2 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "hydrooj", "name": "hydrooj",
"version": "3.2.40", "version": "3.2.41",
"bin": "bin/hydrooj.js", "bin": "bin/hydrooj.js",
"main": "src/loader", "main": "src/loader",
"module": "src/loader", "module": "src/loader",
@@ -41,6 +41,7 @@
"notp": "^2.0.3", "notp": "^2.0.3",
"p-queue": "^7.1.0", "p-queue": "^7.1.0",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
"require-resolve-hook": "^1.1.0",
"serialize-javascript": "^6.0.0", "serialize-javascript": "^6.0.0",
"sockjs": "^0.3.24", "sockjs": "^0.3.24",
"source-map-support": "^0.5.21", "source-map-support": "^0.5.21",
+2 -1
View File
@@ -40,7 +40,8 @@ export function registerResolver(
const wrappedFunc = async (arg, ctx, info) => { const wrappedFunc = async (arg, ctx, info) => {
const res = await func(arg, ctx, info); const res = await func(arg, ctx, info);
if (typeof res !== 'object') return res; if (typeof res !== 'object') return res;
if (handlers[value]) Object.assign(res, handlers[value]); const node = value.includes('!') ? value.split('!')[0] : value;
if (handlers[node]) Object.assign(res, handlers[node]);
ctx.parent = res; ctx.parent = res;
return res; return res;
}; };