Skip to content

Commit 0ae5a35

Browse files
authored
fix: capturer not work in web worker (#3935)
1 parent fa42bdb commit 0ae5a35

6 files changed

Lines changed: 25 additions & 34 deletions

File tree

packages/connection/src/common/capturer.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,14 @@ export interface ICapturedMessage {
3939
source?: string;
4040
}
4141

42-
const _global = (typeof window !== 'undefined' ? window : global) || {
43-
__OPENSUMI_DEVTOOLS_GLOBAL_HOOK__: undefined,
44-
};
42+
const _global: any =
43+
typeof global === 'undefined'
44+
? typeof window === 'undefined'
45+
? {
46+
__OPENSUMI_DEVTOOLS_GLOBAL_HOOK__: undefined,
47+
}
48+
: window
49+
: global;
4550

4651
export function getCapturer() {
4752
const hook = _global.__OPENSUMI_DEVTOOLS_GLOBAL_HOOK__;
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/**
2+
* 对 extension-host 使用 webpack bundle 后,require 方法会被覆盖为 webpack 内部的 require
3+
* 这里是一个 webpack 提供的 workaround,用于获取原始的 require
4+
*/
5+
declare let __webpack_require__: any;
6+
declare let __non_webpack_require__: any;
7+
8+
// https://github.com/webpack/webpack/issues/4175#issuecomment-342931035
9+
export function getNodeRequire() {
10+
return typeof __webpack_require__ === 'function' ? __non_webpack_require__ : require;
11+
}

packages/extension/src/hosted/ext.host.ts

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { join } from '@opensumi/ide-utils/lib/path';
1818

1919
import { EXTENSION_EXTEND_SERVICE_PREFIX, IExtendProxy, IExtensionHostService, getExtensionId } from '../common';
2020
import { ActivatedExtension, ActivatedExtensionJSON, ExtensionsActivator } from '../common/activator';
21+
import { getNodeRequire } from '../common/utils';
2122
import {
2223
ExtHostAPIIdentifier,
2324
ExtensionIdentifier,
@@ -37,18 +38,6 @@ import { KTExtension } from './vscode.extension';
3738

3839
const { enumValueToArray } = arrays;
3940

40-
/**
41-
* 对 extension-host 使用 webpack bundle 后,require 方法会被覆盖为 webpack 内部的 require
42-
* 这里是一个 webpack 提供的 workaround,用于获取原始的 require
43-
*/
44-
declare let __webpack_require__: any;
45-
declare let __non_webpack_require__: any;
46-
47-
// https://github.com/webpack/webpack/issues/4175#issuecomment-342931035
48-
export function getNodeRequire() {
49-
return typeof __webpack_require__ === 'function' ? __non_webpack_require__ : require;
50-
}
51-
5241
enum EInternalModule {
5342
VSCODE = 'vscode',
5443
KAITIAN = 'kaitian',

packages/extension/src/hosted/extension-log2.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
import { Injector } from '@opensumi/di';
2-
import {
3-
IExtensionLogger,
4-
ILogService,
5-
LogLevel,
6-
SupportLogNamespace,
7-
getNodeRequire,
8-
} from '@opensumi/ide-core-common';
2+
import { IExtensionLogger, ILogService, LogLevel, SupportLogNamespace } from '@opensumi/ide-core-common';
93
import { AppConfig } from '@opensumi/ide-core-node/lib/types';
104
import { LogServiceManager } from '@opensumi/ide-logs/lib/node/log-manager';
115

6+
import { getNodeRequire } from '../common/utils';
7+
128
export class ExtensionLogger2 implements IExtensionLogger {
139
private injector: Injector;
1410
private loggerManager: LogServiceManager;

packages/extension/src/node/extension.scanner.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ import path from 'path';
44
import * as fs from 'fs-extra';
55
import semver from 'semver';
66

7-
import { Uri, getDebugLogger, getNodeRequire } from '@opensumi/ide-core-node';
7+
import { Uri, getDebugLogger } from '@opensumi/ide-core-node';
88

99
import { IExtensionMetaData, IExtraMetaData } from '../common';
10+
import { getNodeRequire } from '../common/utils';
1011

1112
import { mergeContributes } from './merge-contributes';
1213

packages/utils/src/os.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,3 @@ export function isElectronNode() {
5252
export function isDevelopment() {
5353
return safeGlobal.isDev || (typeof process !== 'undefined' && process.env.IS_DEV);
5454
}
55-
56-
/**
57-
* 在 Electron 中,会将 opensumi 中的 extension-host 使用 webpack 打成一个,所以需要其他方法来获取原始的 require
58-
*/
59-
declare let __webpack_require__: any;
60-
declare let __non_webpack_require__: any;
61-
62-
// https://github.com/webpack/webpack/issues/4175#issuecomment-342931035
63-
export function getNodeRequire() {
64-
return typeof __webpack_require__ === 'function' ? __non_webpack_require__ : require;
65-
}

0 commit comments

Comments
 (0)