galactic-bot/@types/Shared.d.ts
2023-12-05 17:47:54 +02:00

76 lines
1.5 KiB
TypeScript

import { WriteOptions, LoggerClient } from '@navy.gif/logger';
import { ClientOptions } from './Client.ts';
export type CommandOption = {
[key: string]: unknown
}
export type Command = {
name: string,
options: {
[key: string]: CommandOption
}
}
export type CommandsDef = {
type: 'global' | 'guild',
commands: Command[],
guilds: string[],
clientId: string
}
export type IPCMessage = {
id?: string,
_start?: ClientOptions,
_ready?: boolean,
_disconnect?: boolean,
_reconnecting?: boolean,
_fetchProp?: string,
_sFetchProp?: string,
_sFetchPropShard?: number,
_sEval?: string,
_sEvalShard?: number,
_eval?: string,
_result?: unknown,
_error?: Error,
_sRespawnAll?: {
shardDelay: number,
respawnDelay: number,
timeout: number
},
_mEval?: string,
_mEvalResult?: boolean
_logger?: boolean,
_api?: boolean,
_commands?: CommandsDef,
_shutdown?: boolean,
_fatal?: boolean,
success?: boolean
script?: string,
debug?: boolean,
type?: string,
data?: unknown,
shards?: number[]
}
export type PlainError = {
name: string;
message: string;
stack?: string;
}
export type EnvObject = {
[key: string]: unknown,
SHARDING_MANAGER: boolean
SHARD_ID: number
SHARD_COUNT: number
DISCORD_TOKEN: string | null
}
export type Loggable<T> = {
createLogger: (comp: object, options?: WriteOptions) => LoggerClient
} & T;
export type Hookable<T> = {
ready: boolean
} & T