@arifwidianto/rpc-agent
Version:
RPC Agent for both client and server, extends more methods easily
30 lines (29 loc) • 944 B
TypeScript
import { Config, RpcMethod as ExtensionMethod } from "./rpc.interface";
import { DynamicSchema as ExtensionSchema } from "./schema.interface";
export type ExtensionStatus = "active" | "inactive" | "error";
export interface ExtensionConfig extends Config {
enabled: boolean;
[key: string]: unknown;
}
export interface ExtensionMetadata {
name: string;
version: string;
description: string;
author?: string;
dependencies?: string[];
[key: string]: unknown;
}
export { RpcMethod as ExtensionMethod } from "./rpc.interface";
export { DynamicSchema as ExtensionSchema } from "./schema.interface";
export interface Extension {
name: string;
status: ExtensionStatus;
config: ExtensionConfig;
metadata: ExtensionMetadata;
methods: Record<string, ExtensionMethod>;
validate?: (params: unknown) => Promise<{
valid: boolean;
message?: string;
}>;
schema?: ExtensionSchema;
}