mirror of
https://github.com/sern-handler/handler
synced 2026-06-27 18:22:14 +00:00
49 lines
1.2 KiB
TypeScript
49 lines
1.2 KiB
TypeScript
import type { ServerlessDependencies, WebsocketDependencies } from '../../types/handler';
|
|
import { DispatchType, ServerlessStrategy, WebsocketStrategy } from '../platform';
|
|
|
|
export interface DefaultWrapper {
|
|
commands: string;
|
|
defaultPrefix?: string;
|
|
events?: string;
|
|
containerConfig: {
|
|
get: (...keys: (keyof WebsocketDependencies)[]) => unknown[];
|
|
}
|
|
}
|
|
|
|
|
|
export interface WebsocketWrapper {
|
|
readonly platform: WebsocketStrategy;
|
|
commands: string;
|
|
/**
|
|
* @deprecated
|
|
* Please specify this in platform specification
|
|
*/
|
|
defaultPrefix?: string;
|
|
events?: string;
|
|
containerConfig: {
|
|
get: (...keys: (keyof WebsocketDependencies)[]) => unknown[];
|
|
}
|
|
}
|
|
/**
|
|
* @deprecated
|
|
* Type alias for WebsocketWrapper
|
|
*/
|
|
export type Wrapper = WebsocketWrapper | ServerlessWrapper
|
|
|
|
export interface ServerlessWrapper {
|
|
readonly platform: ServerlessStrategy
|
|
containerConfig: {
|
|
get: (...keys: (keyof ServerlessDependencies)[]) => unknown[];
|
|
}
|
|
|
|
}
|
|
|
|
export type AnyWrapper =
|
|
| WebsocketWrapper
|
|
| ServerlessWrapper
|
|
|
|
|
|
export function isServerless(wrapper: AnyWrapper): wrapper is ServerlessWrapper {
|
|
return wrapper.platform.type === DispatchType.Serverless;
|
|
}
|