Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Commit a7fb38c

Browse files
committed
Hide ServiceWorkerGlobalScope#dispose
1 parent 264c0a0 commit a7fb38c

File tree

4 files changed

+7
-5
lines changed

4 files changed

+7
-5
lines changed

packages/core/src/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import {
3636
kAddModuleScheduledListener,
3737
kDispatchFetch,
3838
kDispatchScheduled,
39+
kDispose,
3940
withImmutableHeaders,
4041
withStringFormDataFiles,
4142
} from "./standards";
@@ -419,7 +420,7 @@ export class MiniflareCore<
419420
const { modules, processedModuleRules } = this.#instances!.CorePlugin;
420421

421422
// Clean up process-wide promise rejection event listeners
422-
this.#globalScope?.dispose();
423+
this.#globalScope?.[kDispose]();
423424
// Create new global scope on each reload
424425
const globalScope = new ServiceWorkerGlobalScope(
425426
this.log,

packages/core/src/standards/event.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ export const kAddModuleScheduledListener = Symbol(
152152
);
153153
export const kDispatchFetch = Symbol("kDispatchFetch");
154154
export const kDispatchScheduled = Symbol("kDispatchScheduled");
155+
export const kDispose = Symbol("kDispose");
155156

156157
export class PromiseRejectionEvent extends Event {
157158
readonly promise: Promise<any>;
@@ -444,7 +445,7 @@ export class ServiceWorkerGlobalScope extends WorkerGlobalScope {
444445
super.dispatchEvent(event);
445446
};
446447

447-
dispose(): void {
448+
[kDispose](): void {
448449
if (this.#unhandledRejectionListeners.size > 0) {
449450
this.#log.verbose("Removing process unhandledRejection listener...");
450451
process.removeListener(

packages/core/test/standards/event.promise.spec.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {
22
PromiseRejectionEvent,
33
ServiceWorkerGlobalScope,
44
WorkerGlobalScopeEventMap,
5+
kDispose,
56
} from "@miniflare/core";
67
import { LogLevel, TypedEventListener } from "@miniflare/shared";
78
import { TestLog, triggerPromise } from "@miniflare/shared-test";
@@ -107,7 +108,7 @@ const processListenerDisposeMacro: Macro<[event: string], Context> = async (
107108

108109
// Try disposing when listener that hasn't been added yet
109110
t.is(process.listenerCount(event), 0);
110-
globalScope.dispose();
111+
globalScope[kDispose]();
111112
t.is(process.listenerCount(event), 0);
112113
t.deepEqual(log.logs, []);
113114

@@ -119,7 +120,7 @@ const processListenerDisposeMacro: Macro<[event: string], Context> = async (
119120
]);
120121
log.logs = [];
121122

122-
globalScope.dispose();
123+
globalScope[kDispose]();
123124
t.is(process.listenerCount(event), 0);
124125
t.deepEqual(log.logs, [
125126
[LogLevel.VERBOSE, `Removing process ${event} listener...`],

packages/core/test/standards/event.spec.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,6 @@ test("ServiceWorkerGlobalScope: hides implementation details", (t) => {
108108
"KEY", // binding
109109
"addEventListener",
110110
"dispatchEvent",
111-
"dispose",
112111
"global",
113112
"globalThis",
114113
"removeEventListener",

0 commit comments

Comments
 (0)