Skip to content

Commit 4cb5b4d

Browse files
committed
Moved module service to browser plugin and cached it.
1 parent 14b2f5c commit 4cb5b4d

File tree

8 files changed

+30
-39
lines changed

8 files changed

+30
-39
lines changed

packages/browser/src/BrowserExceptionlessClient.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import {
66
import { BrowserGlobalHandlerPlugin } from "./plugins/BrowserGlobalHandlerPlugin.js";
77
import { BrowserLifeCyclePlugin } from "./plugins/BrowserLifeCyclePlugin.js";
88
import { BrowserWrapFunctions } from "./plugins/BrowserWrapFunctions.js";
9+
import { BrowserModuleInfoPlugin } from "./plugins/BrowserModuleInfoPlugin.js";
910
import { BrowserErrorParser } from "./services/BrowserErrorParser.js";
10-
import { BrowserModuleCollector } from "./services/BrowserModuleCollector.js";
1111
import { BrowserRequestInfoCollector } from "./services/BrowserRequestInfoCollector.js";
1212
import { BrowserLocalStorage } from "./storage/BrowserLocalStorage.js";
1313
import { BrowserFetchSubmissionClient } from "./submission/BrowserFetchSubmissionClient.js";
@@ -18,13 +18,13 @@ export class BrowserExceptionlessClient extends ExceptionlessClient {
1818
if (configurationOrApiKey) {
1919
config.services.storage = new BrowserLocalStorage();
2020
config.services.errorParser = new BrowserErrorParser();
21-
config.services.moduleCollector = new BrowserModuleCollector();
2221
config.services.requestInfoCollector = new BrowserRequestInfoCollector();
2322
config.services.submissionClient = new BrowserFetchSubmissionClient(config);
2423

2524
config.addPlugin(new BrowserGlobalHandlerPlugin());
2625
config.addPlugin(new BrowserLifeCyclePlugin());
2726
config.addPlugin(new BrowserWrapFunctions());
27+
config.addPlugin(new BrowserModuleInfoPlugin());
2828
}
2929

3030
await super.startup(configurationOrApiKey);

packages/browser/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
export { BrowserGlobalHandlerPlugin } from "./plugins/BrowserGlobalHandlerPlugin.js";
22
export { BrowserLifeCyclePlugin } from "./plugins/BrowserLifeCyclePlugin.js";
33
export { BrowserWrapFunctions } from "./plugins/BrowserWrapFunctions.js";
4+
export { BrowserModuleInfoPlugin } from "./plugins/BrowserModuleInfoPlugin.js";
45
export { BrowserErrorParser } from "./services/BrowserErrorParser.js";
5-
export { BrowserModuleCollector } from "./services/BrowserModuleCollector.js";
66
export { BrowserRequestInfoCollector } from "./services/BrowserRequestInfoCollector.js";
77
export { BrowserLocalStorage } from "./storage/BrowserLocalStorage.js";
88
export { BrowserFetchSubmissionClient } from "./submission/BrowserFetchSubmissionClient.js";

packages/browser/src/services/BrowserModuleCollector.ts renamed to packages/browser/src/plugins/BrowserModuleInfoPlugin.ts

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,36 @@
11
import {
2+
EventPluginContext,
23
getHashCode,
3-
IModuleCollector,
4+
IEventPlugin,
5+
KnownEventDataKeys,
46
ModuleInfo,
57
parseVersion,
8+
PluginContext
69
} from "@exceptionless/core";
710

8-
export class BrowserModuleCollector implements IModuleCollector {
9-
public getModules(): ModuleInfo[] {
11+
export class BrowserModuleInfoPlugin implements IEventPlugin {
12+
public priority: number = 50;
13+
public name: string = "BrowserModuleInfoPlugin";
14+
private _cachedModules: ModuleInfo[] = null;
15+
16+
public startup(context: PluginContext): Promise<void> {
17+
if (!this._cachedModules) {
18+
this._cachedModules = this.getModules();
19+
}
20+
21+
return Promise.resolve();
22+
}
23+
24+
public run(context: EventPluginContext): Promise<void> {
25+
const error = context.event.data[KnownEventDataKeys.Error];
26+
if (this._cachedModules?.length > 0 && !error?.modules) {
27+
error.modules = this._cachedModules;
28+
}
29+
30+
return Promise.resolve();
31+
}
32+
33+
private getModules(): ModuleInfo[] {
1034
if (!document || !document.getElementsByTagName) {
1135
return null;
1236
}

packages/core/src/configuration/Configuration.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import { DefaultEventQueue } from "../queue/DefaultEventQueue.js";
1212
import { IEventQueue } from "../queue/IEventQueue.js";
1313
import { IEnvironmentInfoCollector } from "../services/IEnvironmentInfoCollector.js";
1414
import { IErrorParser } from "../services/IErrorParser.js";
15-
import { IModuleCollector } from "../services/IModuleCollector.js";
1615
import { IRequestInfoCollector } from "../services/IRequestInfoCollector.js";
1716
import { ISubmissionClient } from "../submission/ISubmissionClient.js";
1817
import { guid } from "../Utils.js";
@@ -64,7 +63,6 @@ export class Configuration {
6463
errorParser?: IErrorParser,
6564
lastReferenceIdManager: ILastReferenceIdManager,
6665
log: ILog,
67-
moduleCollector?: IModuleCollector,
6866
requestInfoCollector?: IRequestInfoCollector,
6967
submissionClient?: ISubmissionClient,
7068
storage: IStorage,

packages/core/src/index.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ export { EnvironmentInfoPlugin } from "./plugins/default/EnvironmentInfoPlugin.j
3131
export { ErrorPlugin } from "./plugins/default/ErrorPlugin.js";
3232
export { EventExclusionPlugin } from "./plugins/default/EventExclusionPlugin.js";
3333
export { HeartbeatPlugin } from "./plugins/default/HeartbeatPlugin.js";
34-
export { ModuleInfoPlugin } from "./plugins/default/ModuleInfoPlugin.js";
3534
export { ReferenceIdPlugin } from "./plugins/default/ReferenceIdPlugin.js";
3635
export { RequestInfoPlugin } from "./plugins/default/RequestInfoPlugin.js";
3736
export { SubmissionMethodPlugin } from "./plugins/default/SubmissionMethodPlugin.js";
@@ -46,7 +45,6 @@ export type { IEventQueue } from "./queue/IEventQueue.js";
4645

4746
export type { IEnvironmentInfoCollector } from "./services/IEnvironmentInfoCollector.js";
4847
export type { IErrorParser } from "./services/IErrorParser.js";
49-
export type { IModuleCollector } from "./services/IModuleCollector.js";
5048
export type { IRequestInfoCollector } from "./services/IRequestInfoCollector.js";
5149

5250
export { InMemoryStorage } from "./storage/InMemoryStorage.js";

packages/core/src/plugins/EventPluginManager.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { DuplicateCheckerPlugin } from "./default/DuplicateCheckerPlugin.js";
44
import { EnvironmentInfoPlugin } from "./default/EnvironmentInfoPlugin.js";
55
import { ErrorPlugin } from "./default/ErrorPlugin.js";
66
import { EventExclusionPlugin } from "./default/EventExclusionPlugin.js";
7-
import { ModuleInfoPlugin } from "./default/ModuleInfoPlugin.js";
87
import { RequestInfoPlugin } from "./default/RequestInfoPlugin.js";
98
import { SubmissionMethodPlugin } from "./default/SubmissionMethodPlugin.js";
109
import { EventPluginContext } from "./EventPluginContext.js";
@@ -63,7 +62,6 @@ export class EventPluginManager {
6362
config.addPlugin(new ErrorPlugin());
6463
config.addPlugin(new DuplicateCheckerPlugin());
6564
config.addPlugin(new EventExclusionPlugin());
66-
config.addPlugin(new ModuleInfoPlugin());
6765
config.addPlugin(new RequestInfoPlugin());
6866
config.addPlugin(new EnvironmentInfoPlugin());
6967
config.addPlugin(new SubmissionMethodPlugin());

packages/core/src/plugins/default/ModuleInfoPlugin.ts

Lines changed: 0 additions & 22 deletions
This file was deleted.

packages/core/src/services/IModuleCollector.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)