mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-18 04:23:31 +01:00
fix: ws typo (#9056)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
@@ -7,8 +7,8 @@ import {
|
|||||||
WorkerContextFetchingStrategy,
|
WorkerContextFetchingStrategy,
|
||||||
WebSocketManager,
|
WebSocketManager,
|
||||||
WorkerSendPayloadOp,
|
WorkerSendPayloadOp,
|
||||||
WorkerRecievePayloadOp,
|
WorkerReceivePayloadOp,
|
||||||
type WorkerRecievePayload,
|
type WorkerReceivePayload,
|
||||||
type WorkerSendPayload,
|
type WorkerSendPayload,
|
||||||
} from '../../src/index.js';
|
} from '../../src/index.js';
|
||||||
|
|
||||||
@@ -31,8 +31,8 @@ const session = {
|
|||||||
vi.mock('node:worker_threads', async () => {
|
vi.mock('node:worker_threads', async () => {
|
||||||
const { EventEmitter }: typeof import('node:events') = await vi.importActual('node:events');
|
const { EventEmitter }: typeof import('node:events') = await vi.importActual('node:events');
|
||||||
class MockParentPort extends EventEmitter {
|
class MockParentPort extends EventEmitter {
|
||||||
public postMessage(message: WorkerRecievePayload) {
|
public postMessage(message: WorkerReceivePayload) {
|
||||||
if (message.op === WorkerRecievePayloadOp.RetrieveSessionInfo) {
|
if (message.op === WorkerReceivePayloadOp.RetrieveSessionInfo) {
|
||||||
const response: WorkerSendPayload = {
|
const response: WorkerSendPayload = {
|
||||||
op: WorkerSendPayloadOp.SessionInfoResponse,
|
op: WorkerSendPayloadOp.SessionInfoResponse,
|
||||||
nonce: message.nonce,
|
nonce: message.nonce,
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ import { beforeEach, test, vi, expect, afterEach } from 'vitest';
|
|||||||
import {
|
import {
|
||||||
WebSocketManager,
|
WebSocketManager,
|
||||||
WorkerSendPayloadOp,
|
WorkerSendPayloadOp,
|
||||||
WorkerRecievePayloadOp,
|
WorkerReceivePayloadOp,
|
||||||
WorkerShardingStrategy,
|
WorkerShardingStrategy,
|
||||||
WebSocketShardEvents,
|
WebSocketShardEvents,
|
||||||
type WorkerRecievePayload,
|
type WorkerReceivePayload,
|
||||||
type WorkerSendPayload,
|
type WorkerSendPayload,
|
||||||
type SessionInfo,
|
type SessionInfo,
|
||||||
} from '../../src/index.js';
|
} from '../../src/index.js';
|
||||||
@@ -58,8 +58,8 @@ vi.mock('node:worker_threads', async () => {
|
|||||||
// same deal here
|
// same deal here
|
||||||
setImmediate(() => {
|
setImmediate(() => {
|
||||||
const message = {
|
const message = {
|
||||||
op: WorkerRecievePayloadOp.WorkerReady,
|
op: WorkerReceivePayloadOp.WorkerReady,
|
||||||
} satisfies WorkerRecievePayload;
|
} satisfies WorkerReceivePayload;
|
||||||
this.emit('message', message);
|
this.emit('message', message);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -69,18 +69,18 @@ vi.mock('node:worker_threads', async () => {
|
|||||||
switch (message.op) {
|
switch (message.op) {
|
||||||
case WorkerSendPayloadOp.Connect: {
|
case WorkerSendPayloadOp.Connect: {
|
||||||
const response = {
|
const response = {
|
||||||
op: WorkerRecievePayloadOp.Connected,
|
op: WorkerReceivePayloadOp.Connected,
|
||||||
shardId: message.shardId,
|
shardId: message.shardId,
|
||||||
} satisfies WorkerRecievePayload;
|
} satisfies WorkerReceivePayload;
|
||||||
this.emit('message', response);
|
this.emit('message', response);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WorkerSendPayloadOp.Destroy: {
|
case WorkerSendPayloadOp.Destroy: {
|
||||||
const response = {
|
const response = {
|
||||||
op: WorkerRecievePayloadOp.Destroyed,
|
op: WorkerReceivePayloadOp.Destroyed,
|
||||||
shardId: message.shardId,
|
shardId: message.shardId,
|
||||||
} satisfies WorkerRecievePayload;
|
} satisfies WorkerReceivePayload;
|
||||||
this.emit('message', response);
|
this.emit('message', response);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -88,19 +88,19 @@ vi.mock('node:worker_threads', async () => {
|
|||||||
case WorkerSendPayloadOp.Send: {
|
case WorkerSendPayloadOp.Send: {
|
||||||
if (message.payload.op === GatewayOpcodes.RequestGuildMembers) {
|
if (message.payload.op === GatewayOpcodes.RequestGuildMembers) {
|
||||||
const response = {
|
const response = {
|
||||||
op: WorkerRecievePayloadOp.Event,
|
op: WorkerReceivePayloadOp.Event,
|
||||||
shardId: message.shardId,
|
shardId: message.shardId,
|
||||||
event: WebSocketShardEvents.Dispatch,
|
event: WebSocketShardEvents.Dispatch,
|
||||||
data: memberChunkData,
|
data: memberChunkData,
|
||||||
} satisfies WorkerRecievePayload;
|
} satisfies WorkerReceivePayload;
|
||||||
this.emit('message', response);
|
this.emit('message', response);
|
||||||
|
|
||||||
// Fetch session info
|
// Fetch session info
|
||||||
const sessionFetch = {
|
const sessionFetch = {
|
||||||
op: WorkerRecievePayloadOp.RetrieveSessionInfo,
|
op: WorkerReceivePayloadOp.RetrieveSessionInfo,
|
||||||
shardId: message.shardId,
|
shardId: message.shardId,
|
||||||
nonce: Math.random(),
|
nonce: Math.random(),
|
||||||
} satisfies WorkerRecievePayload;
|
} satisfies WorkerReceivePayload;
|
||||||
this.emit('message', sessionFetch);
|
this.emit('message', sessionFetch);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,10 +112,10 @@ vi.mock('node:worker_threads', async () => {
|
|||||||
message.session ??= sessionInfo;
|
message.session ??= sessionInfo;
|
||||||
|
|
||||||
const session = {
|
const session = {
|
||||||
op: WorkerRecievePayloadOp.UpdateSessionInfo,
|
op: WorkerReceivePayloadOp.UpdateSessionInfo,
|
||||||
shardId: message.session.shardId,
|
shardId: message.session.shardId,
|
||||||
session: { ...message.session, sequence: message.session.sequence + 1 },
|
session: { ...message.session, sequence: message.session.sequence + 1 },
|
||||||
} satisfies WorkerRecievePayload;
|
} satisfies WorkerReceivePayload;
|
||||||
this.emit('message', session);
|
this.emit('message', session);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ import { isMainThread, parentPort } from 'node:worker_threads';
|
|||||||
import { Collection } from '@discordjs/collection';
|
import { Collection } from '@discordjs/collection';
|
||||||
import type { SessionInfo } from '../../ws/WebSocketManager.js';
|
import type { SessionInfo } from '../../ws/WebSocketManager.js';
|
||||||
import {
|
import {
|
||||||
WorkerRecievePayloadOp,
|
WorkerReceivePayloadOp,
|
||||||
WorkerSendPayloadOp,
|
WorkerSendPayloadOp,
|
||||||
type WorkerRecievePayload,
|
type WorkerReceivePayload,
|
||||||
type WorkerSendPayload,
|
type WorkerSendPayload,
|
||||||
} from '../sharding/WorkerShardingStrategy.js';
|
} from '../sharding/WorkerShardingStrategy.js';
|
||||||
import type { FetchingStrategyOptions, IContextFetchingStrategy } from './IContextFetchingStrategy.js';
|
import type { FetchingStrategyOptions, IContextFetchingStrategy } from './IContextFetchingStrategy.js';
|
||||||
@@ -35,10 +35,10 @@ export class WorkerContextFetchingStrategy implements IContextFetchingStrategy {
|
|||||||
public async retrieveSessionInfo(shardId: number): Promise<SessionInfo | null> {
|
public async retrieveSessionInfo(shardId: number): Promise<SessionInfo | null> {
|
||||||
const nonce = Math.random();
|
const nonce = Math.random();
|
||||||
const payload = {
|
const payload = {
|
||||||
op: WorkerRecievePayloadOp.RetrieveSessionInfo,
|
op: WorkerReceivePayloadOp.RetrieveSessionInfo,
|
||||||
shardId,
|
shardId,
|
||||||
nonce,
|
nonce,
|
||||||
} satisfies WorkerRecievePayload;
|
} satisfies WorkerReceivePayload;
|
||||||
// eslint-disable-next-line no-promise-executor-return
|
// eslint-disable-next-line no-promise-executor-return
|
||||||
const promise = new Promise<SessionInfo | null>((resolve) => this.sessionPromises.set(nonce, resolve));
|
const promise = new Promise<SessionInfo | null>((resolve) => this.sessionPromises.set(nonce, resolve));
|
||||||
parentPort!.postMessage(payload);
|
parentPort!.postMessage(payload);
|
||||||
@@ -47,19 +47,19 @@ export class WorkerContextFetchingStrategy implements IContextFetchingStrategy {
|
|||||||
|
|
||||||
public updateSessionInfo(shardId: number, sessionInfo: SessionInfo | null) {
|
public updateSessionInfo(shardId: number, sessionInfo: SessionInfo | null) {
|
||||||
const payload = {
|
const payload = {
|
||||||
op: WorkerRecievePayloadOp.UpdateSessionInfo,
|
op: WorkerReceivePayloadOp.UpdateSessionInfo,
|
||||||
shardId,
|
shardId,
|
||||||
session: sessionInfo,
|
session: sessionInfo,
|
||||||
} satisfies WorkerRecievePayload;
|
} satisfies WorkerReceivePayload;
|
||||||
parentPort!.postMessage(payload);
|
parentPort!.postMessage(payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async waitForIdentify(): Promise<void> {
|
public async waitForIdentify(): Promise<void> {
|
||||||
const nonce = Math.random();
|
const nonce = Math.random();
|
||||||
const payload = {
|
const payload = {
|
||||||
op: WorkerRecievePayloadOp.WaitForIdentify,
|
op: WorkerReceivePayloadOp.WaitForIdentify,
|
||||||
nonce,
|
nonce,
|
||||||
} satisfies WorkerRecievePayload;
|
} satisfies WorkerReceivePayload;
|
||||||
// eslint-disable-next-line no-promise-executor-return
|
// eslint-disable-next-line no-promise-executor-return
|
||||||
const promise = new Promise<void>((resolve) => this.waitForIdentifyPromises.set(nonce, resolve));
|
const promise = new Promise<void>((resolve) => this.waitForIdentifyPromises.set(nonce, resolve));
|
||||||
parentPort!.postMessage(payload);
|
parentPort!.postMessage(payload);
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ export type WorkerSendPayload =
|
|||||||
| { op: WorkerSendPayloadOp.Destroy; options?: WebSocketShardDestroyOptions; shardId: number }
|
| { op: WorkerSendPayloadOp.Destroy; options?: WebSocketShardDestroyOptions; shardId: number }
|
||||||
| { op: WorkerSendPayloadOp.Send; payload: GatewaySendPayload; shardId: number };
|
| { op: WorkerSendPayloadOp.Send; payload: GatewaySendPayload; shardId: number };
|
||||||
|
|
||||||
export enum WorkerRecievePayloadOp {
|
export enum WorkerReceivePayloadOp {
|
||||||
Connected,
|
Connected,
|
||||||
Destroyed,
|
Destroyed,
|
||||||
Event,
|
Event,
|
||||||
@@ -41,16 +41,16 @@ export enum WorkerRecievePayloadOp {
|
|||||||
WorkerReady,
|
WorkerReady,
|
||||||
}
|
}
|
||||||
|
|
||||||
export type WorkerRecievePayload =
|
export type WorkerReceivePayload =
|
||||||
// Can't seem to get a type-safe union based off of the event, so I'm sadly leaving data as any for now
|
// Can't seem to get a type-safe union based off of the event, so I'm sadly leaving data as any for now
|
||||||
| { data: any; event: WebSocketShardEvents; op: WorkerRecievePayloadOp.Event; shardId: number }
|
| { data: any; event: WebSocketShardEvents; op: WorkerReceivePayloadOp.Event; shardId: number }
|
||||||
| { nonce: number; op: WorkerRecievePayloadOp.FetchStatusResponse; status: WebSocketShardStatus }
|
| { nonce: number; op: WorkerReceivePayloadOp.FetchStatusResponse; status: WebSocketShardStatus }
|
||||||
| { nonce: number; op: WorkerRecievePayloadOp.RetrieveSessionInfo; shardId: number }
|
| { nonce: number; op: WorkerReceivePayloadOp.RetrieveSessionInfo; shardId: number }
|
||||||
| { nonce: number; op: WorkerRecievePayloadOp.WaitForIdentify }
|
| { nonce: number; op: WorkerReceivePayloadOp.WaitForIdentify }
|
||||||
| { op: WorkerRecievePayloadOp.Connected; shardId: number }
|
| { op: WorkerReceivePayloadOp.Connected; shardId: number }
|
||||||
| { op: WorkerRecievePayloadOp.Destroyed; shardId: number }
|
| { op: WorkerReceivePayloadOp.Destroyed; shardId: number }
|
||||||
| { op: WorkerRecievePayloadOp.UpdateSessionInfo; session: SessionInfo | null; shardId: number }
|
| { op: WorkerReceivePayloadOp.UpdateSessionInfo; session: SessionInfo | null; shardId: number }
|
||||||
| { op: WorkerRecievePayloadOp.WorkerReady };
|
| { op: WorkerReceivePayloadOp.WorkerReady };
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Options for a {@link WorkerShardingStrategy}
|
* Options for a {@link WorkerShardingStrategy}
|
||||||
@@ -218,7 +218,7 @@ export class WorkerShardingStrategy implements IShardingStrategy {
|
|||||||
.on('messageerror', (err) => {
|
.on('messageerror', (err) => {
|
||||||
throw err;
|
throw err;
|
||||||
})
|
})
|
||||||
.on('message', async (payload: WorkerRecievePayload) => this.onMessage(worker, payload));
|
.on('message', async (payload: WorkerReceivePayload) => this.onMessage(worker, payload));
|
||||||
|
|
||||||
this.#workers.push(worker);
|
this.#workers.push(worker);
|
||||||
for (const shardId of workerData.shardIds) {
|
for (const shardId of workerData.shardIds) {
|
||||||
@@ -250,8 +250,8 @@ export class WorkerShardingStrategy implements IShardingStrategy {
|
|||||||
|
|
||||||
private async waitForWorkerReady(worker: Worker): Promise<void> {
|
private async waitForWorkerReady(worker: Worker): Promise<void> {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
const handler = (payload: WorkerRecievePayload) => {
|
const handler = (payload: WorkerReceivePayload) => {
|
||||||
if (payload.op === WorkerRecievePayloadOp.WorkerReady) {
|
if (payload.op === WorkerReceivePayloadOp.WorkerReady) {
|
||||||
resolve();
|
resolve();
|
||||||
worker.off('message', handler);
|
worker.off('message', handler);
|
||||||
}
|
}
|
||||||
@@ -261,26 +261,26 @@ export class WorkerShardingStrategy implements IShardingStrategy {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private async onMessage(worker: Worker, payload: WorkerRecievePayload) {
|
private async onMessage(worker: Worker, payload: WorkerReceivePayload) {
|
||||||
switch (payload.op) {
|
switch (payload.op) {
|
||||||
case WorkerRecievePayloadOp.Connected: {
|
case WorkerReceivePayloadOp.Connected: {
|
||||||
this.connectPromises.get(payload.shardId)?.();
|
this.connectPromises.get(payload.shardId)?.();
|
||||||
this.connectPromises.delete(payload.shardId);
|
this.connectPromises.delete(payload.shardId);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WorkerRecievePayloadOp.Destroyed: {
|
case WorkerReceivePayloadOp.Destroyed: {
|
||||||
this.destroyPromises.get(payload.shardId)?.();
|
this.destroyPromises.get(payload.shardId)?.();
|
||||||
this.destroyPromises.delete(payload.shardId);
|
this.destroyPromises.delete(payload.shardId);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WorkerRecievePayloadOp.Event: {
|
case WorkerReceivePayloadOp.Event: {
|
||||||
this.manager.emit(payload.event, { ...payload.data, shardId: payload.shardId });
|
this.manager.emit(payload.event, { ...payload.data, shardId: payload.shardId });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WorkerRecievePayloadOp.RetrieveSessionInfo: {
|
case WorkerReceivePayloadOp.RetrieveSessionInfo: {
|
||||||
const session = await this.manager.options.retrieveSessionInfo(payload.shardId);
|
const session = await this.manager.options.retrieveSessionInfo(payload.shardId);
|
||||||
const response: WorkerSendPayload = {
|
const response: WorkerSendPayload = {
|
||||||
op: WorkerSendPayloadOp.SessionInfoResponse,
|
op: WorkerSendPayloadOp.SessionInfoResponse,
|
||||||
@@ -291,12 +291,12 @@ export class WorkerShardingStrategy implements IShardingStrategy {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WorkerRecievePayloadOp.UpdateSessionInfo: {
|
case WorkerReceivePayloadOp.UpdateSessionInfo: {
|
||||||
await this.manager.options.updateSessionInfo(payload.shardId, payload.session);
|
await this.manager.options.updateSessionInfo(payload.shardId, payload.session);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WorkerRecievePayloadOp.WaitForIdentify: {
|
case WorkerReceivePayloadOp.WaitForIdentify: {
|
||||||
await this.throttler.waitForIdentify();
|
await this.throttler.waitForIdentify();
|
||||||
const response: WorkerSendPayload = {
|
const response: WorkerSendPayload = {
|
||||||
op: WorkerSendPayloadOp.ShardCanIdentify,
|
op: WorkerSendPayloadOp.ShardCanIdentify,
|
||||||
@@ -306,13 +306,13 @@ export class WorkerShardingStrategy implements IShardingStrategy {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WorkerRecievePayloadOp.FetchStatusResponse: {
|
case WorkerReceivePayloadOp.FetchStatusResponse: {
|
||||||
this.fetchStatusPromises.get(payload.nonce)?.(payload.status);
|
this.fetchStatusPromises.get(payload.nonce)?.(payload.status);
|
||||||
this.fetchStatusPromises.delete(payload.nonce);
|
this.fetchStatusPromises.delete(payload.nonce);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WorkerRecievePayloadOp.WorkerReady: {
|
case WorkerReceivePayloadOp.WorkerReady: {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ import { Collection } from '@discordjs/collection';
|
|||||||
import type { Awaitable } from '@discordjs/util';
|
import type { Awaitable } from '@discordjs/util';
|
||||||
import { WorkerContextFetchingStrategy } from '../strategies/context/WorkerContextFetchingStrategy.js';
|
import { WorkerContextFetchingStrategy } from '../strategies/context/WorkerContextFetchingStrategy.js';
|
||||||
import {
|
import {
|
||||||
WorkerRecievePayloadOp,
|
WorkerReceivePayloadOp,
|
||||||
WorkerSendPayloadOp,
|
WorkerSendPayloadOp,
|
||||||
type WorkerData,
|
type WorkerData,
|
||||||
type WorkerRecievePayload,
|
type WorkerReceivePayload,
|
||||||
type WorkerSendPayload,
|
type WorkerSendPayload,
|
||||||
} from '../strategies/sharding/WorkerShardingStrategy.js';
|
} from '../strategies/sharding/WorkerShardingStrategy.js';
|
||||||
import type { WebSocketShardDestroyOptions } from '../ws/WebSocketShard.js';
|
import type { WebSocketShardDestroyOptions } from '../ws/WebSocketShard.js';
|
||||||
@@ -84,8 +84,8 @@ export class WorkerBootstrapper {
|
|||||||
switch (payload.op) {
|
switch (payload.op) {
|
||||||
case WorkerSendPayloadOp.Connect: {
|
case WorkerSendPayloadOp.Connect: {
|
||||||
await this.connect(payload.shardId);
|
await this.connect(payload.shardId);
|
||||||
const response: WorkerRecievePayload = {
|
const response: WorkerReceivePayload = {
|
||||||
op: WorkerRecievePayloadOp.Connected,
|
op: WorkerReceivePayloadOp.Connected,
|
||||||
shardId: payload.shardId,
|
shardId: payload.shardId,
|
||||||
};
|
};
|
||||||
parentPort!.postMessage(response);
|
parentPort!.postMessage(response);
|
||||||
@@ -94,8 +94,8 @@ export class WorkerBootstrapper {
|
|||||||
|
|
||||||
case WorkerSendPayloadOp.Destroy: {
|
case WorkerSendPayloadOp.Destroy: {
|
||||||
await this.destroy(payload.shardId, payload.options);
|
await this.destroy(payload.shardId, payload.options);
|
||||||
const response: WorkerRecievePayload = {
|
const response: WorkerReceivePayload = {
|
||||||
op: WorkerRecievePayloadOp.Destroyed,
|
op: WorkerReceivePayloadOp.Destroyed,
|
||||||
shardId: payload.shardId,
|
shardId: payload.shardId,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -128,10 +128,10 @@ export class WorkerBootstrapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const response = {
|
const response = {
|
||||||
op: WorkerRecievePayloadOp.FetchStatusResponse,
|
op: WorkerReceivePayloadOp.FetchStatusResponse,
|
||||||
status: shard.status,
|
status: shard.status,
|
||||||
nonce: payload.nonce,
|
nonce: payload.nonce,
|
||||||
} satisfies WorkerRecievePayload;
|
} satisfies WorkerReceivePayload;
|
||||||
|
|
||||||
parentPort!.postMessage(response);
|
parentPort!.postMessage(response);
|
||||||
break;
|
break;
|
||||||
@@ -151,11 +151,11 @@ export class WorkerBootstrapper {
|
|||||||
// @ts-expect-error: Event types incompatible
|
// @ts-expect-error: Event types incompatible
|
||||||
shard.on(event, (data) => {
|
shard.on(event, (data) => {
|
||||||
const payload = {
|
const payload = {
|
||||||
op: WorkerRecievePayloadOp.Event,
|
op: WorkerReceivePayloadOp.Event,
|
||||||
event,
|
event,
|
||||||
data,
|
data,
|
||||||
shardId,
|
shardId,
|
||||||
} satisfies WorkerRecievePayload;
|
} satisfies WorkerReceivePayload;
|
||||||
parentPort!.postMessage(payload);
|
parentPort!.postMessage(payload);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -169,8 +169,8 @@ export class WorkerBootstrapper {
|
|||||||
this.setupThreadEvents();
|
this.setupThreadEvents();
|
||||||
|
|
||||||
const message = {
|
const message = {
|
||||||
op: WorkerRecievePayloadOp.WorkerReady,
|
op: WorkerReceivePayloadOp.WorkerReady,
|
||||||
} satisfies WorkerRecievePayload;
|
} satisfies WorkerReceivePayload;
|
||||||
parentPort!.postMessage(message);
|
parentPort!.postMessage(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user