From a06b9bfce76680b906057340226b0b8dce03eb06 Mon Sep 17 00:00:00 2001 From: undefined Date: Fri, 7 Jun 2024 07:12:38 +0800 Subject: [PATCH] core: check yarn npm_execpath --- packages/hydrooj/bin/hydrooj.js | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/packages/hydrooj/bin/hydrooj.js b/packages/hydrooj/bin/hydrooj.js index babea7a45..bad5d596e 100755 --- a/packages/hydrooj/bin/hydrooj.js +++ b/packages/hydrooj/bin/hydrooj.js @@ -35,18 +35,27 @@ const { bypass } = hook(/^(hydrooj|@hydrooj|cordis|lodash|js-yaml)($|\/)/, (id) }); }, { ignoreModuleNotFoundError: false }); -// Replace pnpm paths. +Error.stackTraceLimit = 50; + +// Replace pnp paths. // Vscode will try to open a local file for links, so this doesn't work for remote-ssh, etc. -if (process.env.npm_execpath && process.env.npm_execpath.includes('pnpm') && !process.env.SSH_CONNECTION) { +if (process.env.npm_execpath && !process.env.SSH_CONNECTION) { const original = Error.prepareStackTrace; - Error.prepareStackTrace = function capture(...args) { - const res = original.apply(this, args); - if (!res.includes('.pnpm')) return res; - return res.replace( - /([( ])([^( ]+\/\.pnpm\/.+?\/node_modules\/)(.+)(:\d+:[^)\n]+)/g, - '$1\u001B]8;;$2$3$4\u0007pnpm:$3$4\u001B]8;;\u0007', - ); - }; + if (process.env.npm_execpath.includes('yarn')) { + Error.prepareStackTrace = function capture(...args) { + return original.apply(this, args).split('\n').filter((i) => !i.includes('.pnp')).join('\n'); + }; + } + if (process.env.npm_execpath.includes('pnpm')) { + Error.prepareStackTrace = function capture(...args) { + const res = original.apply(this, args); + if (!res.includes('.pnpm')) return res; + return res.replace( + /([( ])([^( ]+\/\.pnpm\/.+?\/node_modules\/)(.+)(:\d+:[^)\n]+)/g, + '$1\u001B]8;;$2$3$4\u0007pnpm:$3$4\u001B]8;;\u0007', + ); + }; + } } require('./commands');