seyfert/src/common/bot/watcher.ts
2024-09-02 18:01:34 -04:00

41 lines
1.0 KiB
TypeScript

import type { GatewayDispatchPayload, GatewaySendPayload } from '../../types';
import type { ShardManager, ShardManagerOptions } from '../../websocket';
import type { MakePartial } from '../types/util';
export interface WatcherOptions
extends MakePartial<
Omit<ShardManager['options'], 'handlePayload' | 'info' | 'token' | 'intents'>,
| 'compress'
| 'presence'
| 'properties'
| 'shardEnd'
| 'shardStart'
| 'spawnShardDelay'
| 'totalShards'
| 'url'
| 'version'
| 'resharding'
| 'debug'
> {
filePath: string;
transpileCommand: string;
srcPath: string;
argv?: string[];
handlePayload?: ShardManagerOptions['handlePayload'];
info?: ShardManagerOptions['info'];
token?: ShardManagerOptions['token'];
intents?: ShardManagerOptions['intents'];
}
export interface WatcherPayload {
type: 'PAYLOAD';
shardId: number;
payload: GatewayDispatchPayload;
}
export interface WatcherSendToShard {
type: 'SEND_TO_SHARD';
shardId: number;
payload: GatewaySendPayload;
}