Marcos Susaña bd951397a2
feat: Reduce dependencies (#221)
* feat: add support for new Discord application emojis features

* feat: add support for new Discord application emojis features

* feat: applications emojis routes

* chore: switch typings provider

* fix: unnecesary type

* feat: magic bytes

* chore: move api-types

* chore: ?

* fix: omg npm

* chore: apply formatting

* fix: for fast merge

---------

Co-authored-by: Tony Supremacy <165050835+VanStk@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-21 22:58:40 -04:00

101 lines
2.4 KiB
TypeScript

import type { ApiRequestOptions, HttpMethods } from '../..';
import type { GatewayDispatchPayload } from '../../types';
export interface WorkerShardInfo {
open: boolean;
shardId: number;
latency: number;
resumable: boolean;
}
export type WorkerInfo = { shards: WorkerShardInfo[] };
type CreateWorkerMessage<T extends string, D extends object = {}> = {
type: T;
workerId: number;
} & D;
export type WorkerRequestConnect = CreateWorkerMessage<'CONNECT_QUEUE', { shardId: number }>;
export type WorkerReceivePayload = CreateWorkerMessage<
'RECEIVE_PAYLOAD',
{ shardId: number; payload: GatewayDispatchPayload }
>;
export type WorkerSendResultPayload = CreateWorkerMessage<'RESULT_PAYLOAD', { nonce: string }>;
export type WorkerSendCacheRequest = CreateWorkerMessage<
'CACHE_REQUEST',
{
nonce: string;
method:
| 'scan'
| 'bulkGet'
| 'get'
| 'bulkSet'
| 'set'
| 'bulkPatch'
| 'patch'
| 'values'
| 'keys'
| 'count'
| 'bulkRemove'
| 'remove'
| 'flush'
| 'contains'
| 'getToRelationship'
| 'bulkAddToRelationShip'
| 'addToRelationship'
| 'removeRelationship'
| 'removeToRelationship';
args: any[];
}
>;
export type WorkerSendShardInfo = CreateWorkerMessage<'SHARD_INFO', WorkerShardInfo & { nonce: string }>;
export type WorkerSendInfo = CreateWorkerMessage<'WORKER_INFO', WorkerInfo & { nonce: string }>;
export type WorkerReady = CreateWorkerMessage<'WORKER_READY'>;
export type WorkerStart = CreateWorkerMessage<'WORKER_START'>;
export type WorkerSendApiRequest = CreateWorkerMessage<
'WORKER_API_REQUEST',
{
method: HttpMethods;
url: `/${string}`;
requestOptions: ApiRequestOptions;
nonce: string;
}
>;
export type WorkerExecuteEval = CreateWorkerMessage<
'EXECUTE_EVAL',
{
func: string;
nonce: string;
toWorkerId: number;
}
>;
export type WorkerSendEvalResponse = CreateWorkerMessage<
'EVAL_RESPONSE',
{
response: any;
nonce: string;
}
>;
export type WorkerSendEval = CreateWorkerMessage<
'EVAL',
{
func: string;
nonce: string;
toWorkerId: number;
}
>;
export type WorkerMessage =
| WorkerRequestConnect
| WorkerReceivePayload
| WorkerSendResultPayload
| WorkerSendCacheRequest
| WorkerSendShardInfo
| WorkerSendInfo
| WorkerReady
| WorkerSendApiRequest
| WorkerExecuteEval
| WorkerSendEvalResponse
| WorkerSendEval
| WorkerStart;