style: 简化loader 避免全局error

This commit is contained in:
手瓜一十雪
2025-02-03 10:40:33 +08:00
parent b25f9d3bec
commit 96de9e2c16
3 changed files with 17 additions and 43 deletions

View File

@@ -1,17 +1,10 @@
import { require_dlopen } from '.'; import { require_dlopen } from '.';
export function pty_loader() {
let pty: any; let pty: any;
try { try {
pty = require_dlopen('./pty/' + process.platform + '.' + process.arch + '/pty.node'); pty = require_dlopen('./pty/' + process.platform + '.' + process.arch + '/pty.node');
} catch (outerError) { } catch (outerError) {
try { pty = undefined;
pty = require_dlopen('./pty/' + process.platform + '.' + process.arch + '/pty.node');
} catch (innerError) {
console.error('innerError', innerError);
// Re-throw the exception from the Release require if the Debug require fails as well
throw outerError;
} }
} return pty;
};
export default pty;

View File

@@ -11,8 +11,9 @@ import { Terminal, DEFAULT_COLS, DEFAULT_ROWS } from '@homebridge/node-pty-prebu
import { IProcessEnv, IPtyForkOptions, IPtyOpenOptions } from '@homebridge/node-pty-prebuilt-multiarch/src/interfaces'; import { IProcessEnv, IPtyForkOptions, IPtyOpenOptions } from '@homebridge/node-pty-prebuilt-multiarch/src/interfaces';
import { ArgvOrCommandLine } from '@homebridge/node-pty-prebuilt-multiarch/src/types'; import { ArgvOrCommandLine } from '@homebridge/node-pty-prebuilt-multiarch/src/types';
import { assign } from '@homebridge/node-pty-prebuilt-multiarch/src/utils'; import { assign } from '@homebridge/node-pty-prebuilt-multiarch/src/utils';
import { pty_loader } from './prebuild-loader';
export const pty = pty_loader();
import pty from './prebuild-loader';
let helperPath: string; let helperPath: string;
helperPath = '../build/Release/spawn-helper'; helperPath = '../build/Release/spawn-helper';

View File

@@ -63,31 +63,11 @@ export class WindowsPtyAgent {
} }
if (this._useConpty) { if (this._useConpty) {
if (!conptyNative) { if (!conptyNative) {
try {
conptyNative = require_dlopen('./pty/' + process.platform + '.' + process.arch + '/conpty.node'); conptyNative = require_dlopen('./pty/' + process.platform + '.' + process.arch + '/conpty.node');
} catch (outerError) {
try {
conptyNative = require_dlopen('./pty/' + process.platform + '.' + process.arch + '/conpty.node');
} catch (innerError) {
console.error('innerError', innerError);
// Re-throw the exception from the Release require if the Debug require fails as well
throw outerError;
}
}
} }
} else { } else {
if (!winptyNative) { if (!winptyNative) {
try {
winptyNative = require_dlopen('./pty/' + process.platform + '.' + process.arch + '/pty.node'); winptyNative = require_dlopen('./pty/' + process.platform + '.' + process.arch + '/pty.node');
} catch (outerError) {
try {
winptyNative = require_dlopen('./pty/' + process.platform + '.' + process.arch + '/pty.node');
} catch (innerError) {
console.error('innerError', innerError);
// Re-throw the exception from the Release require if the Debug require fails as well
throw outerError;
}
}
} }
} }
this._ptyNative = this._useConpty ? conptyNative : winptyNative; this._ptyNative = this._useConpty ? conptyNative : winptyNative;