From 3ca49bf3305f60091b41b77926442f6de9591374 Mon Sep 17 00:00:00 2001 From: unnoq Date: Wed, 5 Mar 2025 15:26:45 +0700 Subject: [PATCH] refactor(client, server)!: minify link and handler options --- packages/client/src/adapters/fetch/index.ts | 1 + .../client/src/adapters/fetch/rpc-link.ts | 13 ++++++------- .../adapters/standard/rpc-link-codec.test.ts | 9 +++------ .../src/adapters/standard/rpc-link-codec.ts | 15 +++++++-------- .../adapters/fetch/openapi-handler.test.ts | 19 ------------------- .../src/adapters/fetch/openapi-handler.ts | 11 ++++++----- .../src/adapters/node/openapi-handler.test.ts | 19 ------------------- .../src/adapters/node/openapi-handler.ts | 13 +++++++------ .../openapi/src/adapters/standard/index.ts | 1 - .../adapters/standard/openapi-codec.test.ts | 4 ---- .../src/adapters/standard/openapi-codec.ts | 4 ++-- .../src/adapters/standard/openapi-handler.ts | 4 ---- .../src/adapters/fetch/rpc-handler.test.ts | 3 ++- .../server/src/adapters/fetch/rpc-handler.ts | 11 +++++++---- .../src/adapters/node/rpc-handler.test.ts | 3 ++- .../server/src/adapters/node/rpc-handler.ts | 10 ++++++---- .../src/adapters/standard/handler.test.ts | 6 +++--- .../server/src/adapters/standard/handler.ts | 2 +- .../server/src/adapters/standard/index.ts | 1 - .../src/adapters/standard/rpc-codec.test.ts | 8 +------- .../server/src/adapters/standard/rpc-codec.ts | 11 ++--------- .../src/adapters/standard/rpc-handler.ts | 8 -------- 22 files changed, 56 insertions(+), 120 deletions(-) delete mode 100644 packages/openapi/src/adapters/standard/openapi-handler.ts delete mode 100644 packages/server/src/adapters/standard/rpc-handler.ts diff --git a/packages/client/src/adapters/fetch/index.ts b/packages/client/src/adapters/fetch/index.ts index 817f22851..fa9383e42 100644 --- a/packages/client/src/adapters/fetch/index.ts +++ b/packages/client/src/adapters/fetch/index.ts @@ -1,2 +1,3 @@ +export * from './link-fetch-client' export * from './rpc-link' export * from './types' diff --git a/packages/client/src/adapters/fetch/rpc-link.ts b/packages/client/src/adapters/fetch/rpc-link.ts index 90f1f686f..01e7a9fed 100644 --- a/packages/client/src/adapters/fetch/rpc-link.ts +++ b/packages/client/src/adapters/fetch/rpc-link.ts @@ -1,21 +1,20 @@ import type { ClientContext, ClientLink, ClientOptionsOut } from '../../types' import type { StandardLinkOptions, StandardRPCLinkCodecOptions } from '../standard' import type { LinkFetchClientOptions } from './link-fetch-client' -import { StandardLink, StandardRPCLinkCodec } from '../standard' +import { RPCSerializer, StandardLink, StandardRPCLinkCodec } from '../standard' import { LinkFetchClient } from './link-fetch-client' export interface RPCLinkOptions - extends StandardLinkOptions, StandardRPCLinkCodecOptions, LinkFetchClientOptions { - linkCodec?: StandardRPCLinkCodec - linkClient?: LinkFetchClient -} + extends StandardLinkOptions, StandardRPCLinkCodecOptions, LinkFetchClientOptions {} export class RPCLink implements ClientLink { private readonly standardLink: StandardLink constructor(options: RPCLinkOptions) { - const linkCodec = options.linkCodec ?? new StandardRPCLinkCodec(options) - const linkClient = options.linkClient ?? new LinkFetchClient(options) + const serializer = new RPCSerializer() + const linkCodec = new StandardRPCLinkCodec(serializer, options) + const linkClient = new LinkFetchClient(options) + this.standardLink = new StandardLink(linkCodec, linkClient, options) } diff --git a/packages/client/src/adapters/standard/rpc-link-codec.test.ts b/packages/client/src/adapters/standard/rpc-link-codec.test.ts index 9fefa83f5..47ae9d4c1 100644 --- a/packages/client/src/adapters/standard/rpc-link-codec.test.ts +++ b/packages/client/src/adapters/standard/rpc-link-codec.test.ts @@ -14,9 +14,8 @@ describe('standardRPCLinkCodec', () => { describe('encode', () => { const method = vi.fn() - const codec = new StandardRPCLinkCodec({ + const codec = new StandardRPCLinkCodec(serializer, { url: 'http://localhost:3000', - rpcSerializer: serializer, method, headers: () => ({ 'x-custom-header': 'custom-value' }), }) @@ -78,9 +77,8 @@ describe('standardRPCLinkCodec', () => { ['blob inside', { blob: new Blob(['blob'], { type: 'text/plain' }) }], ['event-iterator', (async function* () { })()], ])('fallback method when method=GET: %s', async (_, input) => { - const codec = new StandardRPCLinkCodec({ + const codec = new StandardRPCLinkCodec(serializer, { url: 'http://localhost:3000', - rpcSerializer: serializer, method: 'GET', maxUrlLength: 100, fallbackMethod: 'PATCH', @@ -101,9 +99,8 @@ describe('standardRPCLinkCodec', () => { }) describe('decode', () => { - const codec = new StandardRPCLinkCodec({ + const codec = new StandardRPCLinkCodec(serializer, { url: 'http://localhost:3000', - rpcSerializer: serializer, }) it('should decode output', async () => { diff --git a/packages/client/src/adapters/standard/rpc-link-codec.ts b/packages/client/src/adapters/standard/rpc-link-codec.ts index ee2eb72b6..cc4d86d0a 100644 --- a/packages/client/src/adapters/standard/rpc-link-codec.ts +++ b/packages/client/src/adapters/standard/rpc-link-codec.ts @@ -1,9 +1,9 @@ import type { StandardHeaders, StandardLazyResponse, StandardRequest } from '@orpc/standard-server' import type { ClientContext, ClientOptionsOut } from '../../types' +import type { RPCSerializer } from './rpc-serializer' import type { StandardLinkCodec } from './types' import { isAsyncIteratorObject, stringifyJSON, trim, value, type Value } from '@orpc/shared' import { ORPCError } from '../../error' -import { RPCSerializer } from './rpc-serializer' type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' @@ -55,8 +55,6 @@ export interface StandardRPCLinkCodecOptions { path: readonly string[], input: unknown, ]> - - rpcSerializer?: RPCSerializer } export class StandardRPCLinkCodec implements StandardLinkCodec { @@ -65,15 +63,16 @@ export class StandardRPCLinkCodec implements StandardLi private readonly fallbackMethod: Exclude['fallbackMethod'], undefined> private readonly expectedMethod: Exclude['method'], undefined> private readonly headers: Exclude['headers'], undefined> - private readonly rpcSerializer: Exclude['rpcSerializer'], undefined> - constructor(options: StandardRPCLinkCodecOptions) { + constructor( + private readonly serializer: RPCSerializer, + options: StandardRPCLinkCodecOptions, + ) { this.baseUrl = options.url this.maxUrlLength = options.maxUrlLength ?? 2083 this.fallbackMethod = options.fallbackMethod ?? 'POST' this.expectedMethod = options.method ?? this.fallbackMethod this.headers = options.headers ?? {} - this.rpcSerializer = options.rpcSerializer ?? new RPCSerializer() } async encode(path: readonly string[], input: unknown, options: ClientOptionsOut): Promise { @@ -82,7 +81,7 @@ export class StandardRPCLinkCodec implements StandardLi const baseUrl = await value(this.baseUrl, options, path, input) const url = new URL(`${trim(baseUrl.toString(), '/')}/${path.map(encodeURIComponent).join('/')}`) - const serialized = this.rpcSerializer.serialize(input) + const serialized = this.serializer.serialize(input) if ( expectedMethod === 'GET' @@ -126,7 +125,7 @@ export class StandardRPCLinkCodec implements StandardLi isBodyOk = true - return this.rpcSerializer.deserialize(body) + return this.serializer.deserialize(body) } catch (error) { if (!isBodyOk) { diff --git a/packages/openapi/src/adapters/fetch/openapi-handler.test.ts b/packages/openapi/src/adapters/fetch/openapi-handler.test.ts index 0afeb3fc1..c987c01b9 100644 --- a/packages/openapi/src/adapters/fetch/openapi-handler.test.ts +++ b/packages/openapi/src/adapters/fetch/openapi-handler.test.ts @@ -2,7 +2,6 @@ import { StandardHandler } from '@orpc/server/standard' import { toFetchResponse, toStandardLazyRequest } from '@orpc/standard-server-fetch' import { describe, expect, it, vi } from 'vitest' import { router } from '../../../../server/tests/shared' -import { OpenAPICodec, OpenAPIMatcher } from '../standard' import { OpenAPIHandler } from './openapi-handler' vi.mock('@orpc/server/standard', async origin => ({ @@ -93,22 +92,4 @@ describe('openAPIHandler', () => { expect(vi.mocked(toFetchResponse)).not.toHaveBeenCalled() }) - - it('standardHandler constructor', async () => { - const options = { - codec: new OpenAPICodec(), - matcher: new OpenAPIMatcher(), - interceptors: [vi.fn()], - } - - const handler = new OpenAPIHandler(router, options) - - expect(StandardHandler).toHaveBeenCalledOnce() - expect(StandardHandler).toHaveBeenCalledWith( - router, - options.matcher, - options.codec, - options, - ) - }) }) diff --git a/packages/openapi/src/adapters/fetch/openapi-handler.ts b/packages/openapi/src/adapters/fetch/openapi-handler.ts index 70ab95e4a..878b43071 100644 --- a/packages/openapi/src/adapters/fetch/openapi-handler.ts +++ b/packages/openapi/src/adapters/fetch/openapi-handler.ts @@ -1,9 +1,9 @@ import type { Context, Router } from '@orpc/server' import type { FetchHandler, FetchHandleResult } from '@orpc/server/fetch' -import type { StandardHandleOptions } from '@orpc/server/standard' +import type { StandardHandleOptions, StandardHandlerOptions } from '@orpc/server/standard' import type { MaybeOptionalOptions } from '@orpc/shared' import type { ToFetchResponseOptions } from '@orpc/standard-server-fetch' -import type { OpenAPIHandlerOptions } from '../standard' +import { OpenAPISerializer } from '@orpc/openapi-client/standard' import { StandardHandler } from '@orpc/server/standard' import { toFetchResponse, toStandardLazyRequest } from '@orpc/standard-server-fetch' import { OpenAPICodec, OpenAPIMatcher } from '../standard' @@ -11,9 +11,10 @@ import { OpenAPICodec, OpenAPIMatcher } from '../standard' export class OpenAPIHandler implements FetchHandler { private readonly standardHandler: StandardHandler - constructor(router: Router, options?: NoInfer>) { - const matcher = options?.matcher ?? new OpenAPIMatcher() - const codec = options?.codec ?? new OpenAPICodec() + constructor(router: Router, options: NoInfer> = {}) { + const serializer = new OpenAPISerializer() + const matcher = new OpenAPIMatcher() + const codec = new OpenAPICodec(serializer) this.standardHandler = new StandardHandler(router, matcher, codec, options) } diff --git a/packages/openapi/src/adapters/node/openapi-handler.test.ts b/packages/openapi/src/adapters/node/openapi-handler.test.ts index 84f398338..b70c3ebcb 100644 --- a/packages/openapi/src/adapters/node/openapi-handler.test.ts +++ b/packages/openapi/src/adapters/node/openapi-handler.test.ts @@ -2,7 +2,6 @@ import { StandardHandler } from '@orpc/server/standard' import { sendStandardResponse, toStandardLazyRequest } from '@orpc/standard-server-node' import inject from 'light-my-request' import { router } from '../../../../server/tests/shared' -import { OpenAPICodec, OpenAPIMatcher } from '../standard' import { OpenAPIHandler } from './openapi-handler' vi.mock('@orpc/standard-server-node', () => ({ @@ -110,22 +109,4 @@ describe('openapiHandler', async () => { expect(sendStandardResponse).not.toHaveBeenCalled() }) - - it('standardHandler constructor', async () => { - const options = { - codec: new OpenAPICodec(), - matcher: new OpenAPIMatcher(), - interceptors: [vi.fn()], - } - - const handler = new OpenAPIHandler(router, options) - - expect(StandardHandler).toHaveBeenCalledOnce() - expect(StandardHandler).toHaveBeenCalledWith( - router, - options.matcher, - options.codec, - options, - ) - }) }) diff --git a/packages/openapi/src/adapters/node/openapi-handler.ts b/packages/openapi/src/adapters/node/openapi-handler.ts index b176a6a23..bf1714eb9 100644 --- a/packages/openapi/src/adapters/node/openapi-handler.ts +++ b/packages/openapi/src/adapters/node/openapi-handler.ts @@ -1,9 +1,9 @@ import type { Context, Router } from '@orpc/server' import type { NodeHttpHandler, NodeHttpHandleResult, NodeHttpRequest, NodeHttpResponse } from '@orpc/server/node' -import type { StandardHandleOptions } from '@orpc/server/standard' +import type { StandardHandleOptions, StandardHandlerOptions } from '@orpc/server/standard' import type { MaybeOptionalOptions } from '@orpc/shared' import type { SendStandardResponseOptions } from '@orpc/standard-server-node' -import type { OpenAPIHandlerOptions } from '../standard' +import { OpenAPISerializer } from '@orpc/openapi-client/standard' import { StandardHandler } from '@orpc/server/standard' import { sendStandardResponse, toStandardLazyRequest } from '@orpc/standard-server-node' import { OpenAPICodec, OpenAPIMatcher } from '../standard' @@ -11,11 +11,12 @@ import { OpenAPICodec, OpenAPIMatcher } from '../standard' export class OpenAPIHandler implements NodeHttpHandler { private readonly standardHandler: StandardHandler - constructor(router: Router, options?: NoInfer>) { - const matcher = options?.matcher ?? new OpenAPIMatcher() - const codec = options?.codec ?? new OpenAPICodec() + constructor(router: Router, options: NoInfer> = {}) { + const serializer = new OpenAPISerializer() + const matcher = new OpenAPIMatcher() + const codec = new OpenAPICodec(serializer) - this.standardHandler = new StandardHandler(router, matcher, codec, { ...options }) + this.standardHandler = new StandardHandler(router, matcher, codec, options) } async handle( diff --git a/packages/openapi/src/adapters/standard/index.ts b/packages/openapi/src/adapters/standard/index.ts index c5c8905ee..2eaf56d09 100644 --- a/packages/openapi/src/adapters/standard/index.ts +++ b/packages/openapi/src/adapters/standard/index.ts @@ -1,3 +1,2 @@ export * from './openapi-codec' -export * from './openapi-handler' export * from './openapi-matcher' diff --git a/packages/openapi/src/adapters/standard/openapi-codec.test.ts b/packages/openapi/src/adapters/standard/openapi-codec.test.ts index 19bf90db5..cd1814e55 100644 --- a/packages/openapi/src/adapters/standard/openapi-codec.test.ts +++ b/packages/openapi/src/adapters/standard/openapi-codec.test.ts @@ -209,8 +209,4 @@ describe('openAPICodec', () => { expect(serializer.serialize).toHaveBeenCalledOnce() expect(serializer.serialize).toHaveBeenCalledWith(error.toJSON()) }) - - it('work without arguments', async () => { - const codec = new OpenAPICodec() - }) }) diff --git a/packages/openapi/src/adapters/standard/openapi-codec.ts b/packages/openapi/src/adapters/standard/openapi-codec.ts index faff1a21c..011425338 100644 --- a/packages/openapi/src/adapters/standard/openapi-codec.ts +++ b/packages/openapi/src/adapters/standard/openapi-codec.ts @@ -1,14 +1,14 @@ import type { ORPCError } from '@orpc/client' +import type { OpenAPISerializer } from '@orpc/openapi-client/standard' import type { AnyProcedure } from '@orpc/server' import type { StandardCodec, StandardParams } from '@orpc/server/standard' import type { StandardBody, StandardHeaders, StandardLazyRequest, StandardResponse } from '@orpc/standard-server' import { fallbackContractConfig } from '@orpc/contract' -import { OpenAPISerializer } from '@orpc/openapi-client/standard' import { isObject } from '@orpc/shared' export class OpenAPICodec implements StandardCodec { constructor( - private readonly serializer: OpenAPISerializer = new OpenAPISerializer(), + private readonly serializer: OpenAPISerializer, ) { } diff --git a/packages/openapi/src/adapters/standard/openapi-handler.ts b/packages/openapi/src/adapters/standard/openapi-handler.ts deleted file mode 100644 index de1e1c3d6..000000000 --- a/packages/openapi/src/adapters/standard/openapi-handler.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { Context } from '@orpc/server' -import type { RPCHandlerOptions } from '@orpc/server/standard' - -export interface OpenAPIHandlerOptions extends RPCHandlerOptions {} diff --git a/packages/server/src/adapters/fetch/rpc-handler.test.ts b/packages/server/src/adapters/fetch/rpc-handler.test.ts index 0d1a41dea..7b80cb85d 100644 --- a/packages/server/src/adapters/fetch/rpc-handler.test.ts +++ b/packages/server/src/adapters/fetch/rpc-handler.test.ts @@ -1,3 +1,4 @@ +import { RPCSerializer } from '@orpc/client/standard' import { toFetchResponse, toStandardLazyRequest } from '@orpc/standard-server-fetch' import { router } from '../../../tests/shared' import { RPCCodec, RPCMatcher, StandardHandler } from '../standard' @@ -91,7 +92,7 @@ describe('rpcHandler', () => { it('standardHandler constructor', async () => { const options = { - codec: new RPCCodec(), + codec: new RPCCodec(new RPCSerializer()), matcher: new RPCMatcher(), interceptors: [vi.fn()], } diff --git a/packages/server/src/adapters/fetch/rpc-handler.ts b/packages/server/src/adapters/fetch/rpc-handler.ts index 7694e7203..9e8905c7f 100644 --- a/packages/server/src/adapters/fetch/rpc-handler.ts +++ b/packages/server/src/adapters/fetch/rpc-handler.ts @@ -2,17 +2,20 @@ import type { MaybeOptionalOptions } from '@orpc/shared' import type { ToFetchResponseOptions } from '@orpc/standard-server-fetch' import type { Context } from '../../context' import type { Router } from '../../router' -import type { RPCHandlerOptions, StandardHandleOptions } from '../standard' +import type { StandardHandleOptions, StandardHandlerOptions } from '../standard' import type { FetchHandler, FetchHandleResult } from './types' +import { RPCSerializer } from '@orpc/client/standard' import { toFetchResponse, toStandardLazyRequest } from '@orpc/standard-server-fetch' import { RPCCodec, RPCMatcher, StandardHandler } from '../standard' export class RPCHandler implements FetchHandler { private readonly standardHandler: StandardHandler - constructor(router: Router, options?: NoInfer>) { - const matcher = options?.matcher ?? new RPCMatcher() - const codec = options?.codec ?? new RPCCodec() + constructor(router: Router, options: NoInfer> = {}) { + const serializer = new RPCSerializer() + const matcher = new RPCMatcher() + const codec = new RPCCodec(serializer) + this.standardHandler = new StandardHandler(router, matcher, codec, options) } diff --git a/packages/server/src/adapters/node/rpc-handler.test.ts b/packages/server/src/adapters/node/rpc-handler.test.ts index da9fedffa..65ae1095e 100644 --- a/packages/server/src/adapters/node/rpc-handler.test.ts +++ b/packages/server/src/adapters/node/rpc-handler.test.ts @@ -1,3 +1,4 @@ +import { RPCSerializer } from '@orpc/client/standard' import { sendStandardResponse, toStandardLazyRequest } from '@orpc/standard-server-node' import inject from 'light-my-request' import { router } from '../../../tests/shared' @@ -112,7 +113,7 @@ describe('rpcHandler', async () => { it('standardHandler constructor', async () => { const options = { - codec: new RPCCodec(), + codec: new RPCCodec(new RPCSerializer()), matcher: new RPCMatcher(), interceptors: [vi.fn()], } diff --git a/packages/server/src/adapters/node/rpc-handler.ts b/packages/server/src/adapters/node/rpc-handler.ts index d633a39df..e806420eb 100644 --- a/packages/server/src/adapters/node/rpc-handler.ts +++ b/packages/server/src/adapters/node/rpc-handler.ts @@ -2,17 +2,19 @@ import type { MaybeOptionalOptions } from '@orpc/shared' import type { SendStandardResponseOptions } from '@orpc/standard-server-node' import type { Context } from '../../context' import type { Router } from '../../router' -import type { RPCHandlerOptions, StandardHandleOptions } from '../standard' +import type { StandardHandleOptions, StandardHandlerOptions } from '../standard' import type { NodeHttpHandler, NodeHttpHandleResult, NodeHttpRequest, NodeHttpResponse } from './types' +import { RPCSerializer } from '@orpc/client/standard' import { sendStandardResponse, toStandardLazyRequest } from '@orpc/standard-server-node' import { RPCCodec, RPCMatcher, StandardHandler } from '../standard' export class RPCHandler implements NodeHttpHandler { private readonly standardHandler: StandardHandler - constructor(router: Router, options?: NoInfer>) { - const codec = options?.codec ?? new RPCCodec() - const matcher = options?.matcher ?? new RPCMatcher() + constructor(router: Router, options: NoInfer> = {}) { + const serializer = new RPCSerializer() + const matcher = new RPCMatcher() + const codec = new RPCCodec(serializer) this.standardHandler = new StandardHandler(router, matcher, codec, options) } diff --git a/packages/server/src/adapters/standard/handler.test.ts b/packages/server/src/adapters/standard/handler.test.ts index 487539500..2a3116d38 100644 --- a/packages/server/src/adapters/standard/handler.test.ts +++ b/packages/server/src/adapters/standard/handler.test.ts @@ -53,7 +53,7 @@ describe('standardHandler', () => { } it('should call matcher.init once', async () => { - const handler = new StandardHandler(router, matcher, codec) + const handler = new StandardHandler(router, matcher, codec, {}) expect(matcher.init).toHaveBeenCalledOnce() expect(matcher.init).toHaveBeenCalledWith(router) }) @@ -319,7 +319,7 @@ describe('standardHandler', () => { params: { id: '__id__' }, }) - const handler = new StandardHandler(router, matcher, codec) + const handler = new StandardHandler(router, matcher, codec, {}) expect(await handler.handle(request, { context: { db: 'postgres' } })).toEqual({ matched: true, @@ -337,7 +337,7 @@ describe('standardHandler', () => { params: { id: '__id__' }, }) - const handler = new StandardHandler(router, matcher, codec) + const handler = new StandardHandler(router, matcher, codec, {}) const client = vi.fn().mockReturnValueOnce('__output__') vi.mocked(createProcedureClient).mockReturnValueOnce(client) diff --git a/packages/server/src/adapters/standard/handler.ts b/packages/server/src/adapters/standard/handler.ts index adeb681b4..54bf3b83c 100644 --- a/packages/server/src/adapters/standard/handler.ts +++ b/packages/server/src/adapters/standard/handler.ts @@ -52,7 +52,7 @@ export class StandardHandler { router: Router, private readonly matcher: StandardMatcher, private readonly codec: StandardCodec, - private readonly options: NoInfer> = {}, + private readonly options: NoInfer>, ) { this.plugin = new CompositePlugin(options.plugins) diff --git a/packages/server/src/adapters/standard/index.ts b/packages/server/src/adapters/standard/index.ts index d6728eb49..643a61770 100644 --- a/packages/server/src/adapters/standard/index.ts +++ b/packages/server/src/adapters/standard/index.ts @@ -1,5 +1,4 @@ export * from './handler' export * from './rpc-codec' -export * from './rpc-handler' export * from './rpc-matcher' export * from './types' diff --git a/packages/server/src/adapters/standard/rpc-codec.test.ts b/packages/server/src/adapters/standard/rpc-codec.test.ts index 59050452a..e041ded5f 100644 --- a/packages/server/src/adapters/standard/rpc-codec.test.ts +++ b/packages/server/src/adapters/standard/rpc-codec.test.ts @@ -12,9 +12,7 @@ describe('rpcCodec', () => { deserialize: vi.fn(), } as any - const codec = new RPCCodec({ - serializer, - }) + const codec = new RPCCodec(serializer) describe('.decode', () => { it('with GET method', async () => { @@ -97,8 +95,4 @@ describe('rpcCodec', () => { expect(serializer.serialize).toHaveBeenCalledOnce() expect(serializer.serialize).toHaveBeenCalledWith(error.toJSON()) }) - - it('work without arguments', () => { - const codec = new RPCCodec() - }) }) diff --git a/packages/server/src/adapters/standard/rpc-codec.ts b/packages/server/src/adapters/standard/rpc-codec.ts index 4c139def9..45d30ecb3 100644 --- a/packages/server/src/adapters/standard/rpc-codec.ts +++ b/packages/server/src/adapters/standard/rpc-codec.ts @@ -1,21 +1,14 @@ import type { ORPCError } from '@orpc/client' +import type { RPCSerializer } from '@orpc/client/standard' import type { StandardBody, StandardLazyRequest, StandardResponse } from '@orpc/standard-server' import type { AnyProcedure } from '../../procedure' import type { StandardCodec, StandardParams } from './types' -import { RPCSerializer } from '@orpc/client/standard' import { parseEmptyableJSON } from '@orpc/shared' -export interface StandardCodecOptions { - serializer?: RPCSerializer -} - export class RPCCodec implements StandardCodec { - private readonly serializer: RPCSerializer - constructor( - options: StandardCodecOptions = {}, + private readonly serializer: RPCSerializer, ) { - this.serializer = options.serializer ?? new RPCSerializer() } async decode(request: StandardLazyRequest, _params: StandardParams | undefined, _procedure: AnyProcedure): Promise { diff --git a/packages/server/src/adapters/standard/rpc-handler.ts b/packages/server/src/adapters/standard/rpc-handler.ts deleted file mode 100644 index b9b5f3013..000000000 --- a/packages/server/src/adapters/standard/rpc-handler.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { Context } from '../../context' -import type { StandardHandlerOptions } from './handler' -import type { StandardCodec, StandardMatcher } from './types' - -export interface RPCHandlerOptions extends StandardHandlerOptions { - matcher?: StandardMatcher - codec?: StandardCodec -}