diff --git a/packages/devtools-rpc/src/client.ts b/packages/devtools-rpc/src/client.ts index 15ad3ae4..fbe0fe7f 100644 --- a/packages/devtools-rpc/src/client.ts +++ b/packages/devtools-rpc/src/client.ts @@ -1,4 +1,4 @@ -import type { BirpcOptions } from 'birpc' +import type { BirpcOptions, BirpcReturn } from 'birpc' import { createBirpc } from 'birpc' export function createRpcClient< @@ -10,7 +10,7 @@ export function createRpcClient< preset: BirpcOptions rpcOptions?: Partial> }, -) { +): BirpcReturn { const { preset, rpcOptions = {} } = options return createBirpc(functions, { ...preset, diff --git a/packages/devtools-rpc/src/presets/ws/client.ts b/packages/devtools-rpc/src/presets/ws/client.ts index 066b8733..a4640c5f 100644 --- a/packages/devtools-rpc/src/presets/ws/client.ts +++ b/packages/devtools-rpc/src/presets/ws/client.ts @@ -1,3 +1,4 @@ +import type { RpcClientPreset } from '..' import { parse, stringify } from 'structured-clone-es' import { defineRpcClientPreset } from '..' @@ -10,7 +11,12 @@ export interface WebSocketRpcClientOptions { function NOOP() {} -export const createWsRpcPreset = defineRpcClientPreset((options: WebSocketRpcClientOptions) => { +export const createWsRpcPreset: RpcClientPreset<(options: WebSocketRpcClientOptions) => { + on: (handler: (data: string) => void) => void + post: (data: string) => void + serialize: (obj: any) => string + deserialize: (str: string) => unknown +}> = defineRpcClientPreset((options: WebSocketRpcClientOptions) => { const ws = new WebSocket(options.url) const { onConnected = NOOP, diff --git a/packages/devtools-rpc/src/presets/ws/server.ts b/packages/devtools-rpc/src/presets/ws/server.ts index 1be309cc..26adcd50 100644 --- a/packages/devtools-rpc/src/presets/ws/server.ts +++ b/packages/devtools-rpc/src/presets/ws/server.ts @@ -1,5 +1,6 @@ import type { BirpcGroup, BirpcOptions, ChannelOptions } from 'birpc' import type { WebSocket } from 'ws' +import type { RpcServerPreset } from '..' import { parse, stringify } from 'structured-clone-es' import { WebSocketServer } from 'ws' import { defineRpcServerPreset } from '..' @@ -12,7 +13,7 @@ export interface WebSocketRpcServerOptions { function NOOP() {} -export const createWsRpcPreset = defineRpcServerPreset((options: WebSocketRpcServerOptions) => { +export const createWsRpcPreset: RpcServerPreset<(options: WebSocketRpcServerOptions) => (rpc: BirpcGroup, options?: Pick, 'serialize' | 'deserialize'>) => void> = defineRpcServerPreset((options: WebSocketRpcServerOptions) => { const { port, onConnected = NOOP, diff --git a/packages/devtools-rpc/src/server.ts b/packages/devtools-rpc/src/server.ts index 4c1c31a6..8db87a71 100644 --- a/packages/devtools-rpc/src/server.ts +++ b/packages/devtools-rpc/src/server.ts @@ -10,7 +10,7 @@ export function createRpcServer< preset: (rpc: BirpcGroup) => void rpcOptions?: EventOptions }, -) { +): BirpcGroup { const rpc = createBirpcGroup(functions, [], options?.rpcOptions ?? {}) options?.preset(rpc) diff --git a/packages/devtools-rpc/tsdown.config.ts b/packages/devtools-rpc/tsdown.config.ts index 34ed6d67..9aac4673 100644 --- a/packages/devtools-rpc/tsdown.config.ts +++ b/packages/devtools-rpc/tsdown.config.ts @@ -6,9 +6,11 @@ export default defineConfig([{ ], clean: true, fixedExtension: true, + dts: { isolatedDeclarations: true }, }, { entry: ['src/presets/ws/client.ts', 'src/presets/ws/server.ts', 'src/presets/index.ts'], clean: true, fixedExtension: true, outDir: 'dist/presets', + dts: { isolatedDeclarations: true }, }]) diff --git a/packages/devtools/src/dirs.ts b/packages/devtools/src/dirs.ts index c4e56e5a..4258d9c3 100644 --- a/packages/devtools/src/dirs.ts +++ b/packages/devtools/src/dirs.ts @@ -1,3 +1,3 @@ import { fileURLToPath } from 'node:url' -export const distDir = fileURLToPath(new URL('../dist/public', import.meta.url)) +export const distDir: string = fileURLToPath(new URL('../dist/public', import.meta.url)) diff --git a/packages/devtools/tsdown.config.ts b/packages/devtools/tsdown.config.ts index dc375b49..69c8fa99 100644 --- a/packages/devtools/tsdown.config.ts +++ b/packages/devtools/tsdown.config.ts @@ -11,4 +11,5 @@ export default defineConfig({ clean: false, target: 'esnext', fixedExtension: true, + dts: { isolatedDeclarations: true }, })