@orpc/server 0.0.0-next.3191601 → 0.0.0-next.32a6de9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/fetch/index.d.mts +3 -3
- package/dist/adapters/fetch/index.d.ts +3 -3
- package/dist/adapters/fetch/index.mjs +3 -3
- package/dist/adapters/hono/index.d.mts +3 -3
- package/dist/adapters/hono/index.d.ts +3 -3
- package/dist/adapters/hono/index.mjs +3 -3
- package/dist/adapters/next/index.d.mts +3 -3
- package/dist/adapters/next/index.d.ts +3 -3
- package/dist/adapters/next/index.mjs +3 -3
- package/dist/adapters/node/index.d.mts +3 -3
- package/dist/adapters/node/index.d.ts +3 -3
- package/dist/adapters/node/index.mjs +2 -2
- package/dist/adapters/standard/index.d.mts +3 -3
- package/dist/adapters/standard/index.d.ts +3 -3
- package/dist/adapters/standard/index.mjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/plugins/index.d.mts +39 -3
- package/dist/plugins/index.d.ts +39 -3
- package/dist/plugins/index.mjs +90 -1
- package/dist/shared/{server.DUF89eb-.d.ts → server.BFt8M4Cr.d.ts} +1 -1
- package/dist/shared/{server.Cud5qk0c.d.ts → server.Bc6jnvPE.d.ts} +1 -1
- package/dist/shared/{server.CzxlqYZL.d.mts → server.BlxK0o8R.d.mts} +1 -1
- package/dist/shared/{server.e3W6AG3-.mjs → server.C37gDhSZ.mjs} +16 -22
- package/dist/shared/{server.Prfzu_zf.mjs → server.CCPFkKqC.mjs} +1 -1
- package/dist/shared/{server.DGnN7q3R.d.mts → server.CCgy73tk.d.mts} +1 -1
- package/dist/shared/{server.DCCkTG29.mjs → server.DJrRF9vD.mjs} +1 -1
- package/dist/shared/{server.BHlRCrf_.d.ts → server.DuTpqr2w.d.ts} +1 -1
- package/dist/shared/{server.B77ImKAP.d.mts → server.JgWzFqlo.d.mts} +1 -1
- package/package.json +7 -7
@@ -1,9 +1,9 @@
|
|
1
1
|
import { C as Context, R as Router } from '../../shared/server.DLt5njUb.mjs';
|
2
2
|
import { Interceptor, ThrowableError, MaybeOptionalOptions } from '@orpc/shared';
|
3
|
-
import {
|
4
|
-
import { F as FriendlyStandardHandleOptions } from '../../shared/server.
|
3
|
+
import { g as StandardHandlerPlugin, S as StandardHandleOptions, i as StandardHandler } from '../../shared/server.BlxK0o8R.mjs';
|
4
|
+
import { F as FriendlyStandardHandleOptions } from '../../shared/server.CCgy73tk.mjs';
|
5
5
|
import { ToFetchResponseOptions } from '@orpc/standard-server-fetch';
|
6
|
-
import { S as StandardRPCHandlerOptions } from '../../shared/server.
|
6
|
+
import { S as StandardRPCHandlerOptions } from '../../shared/server.JgWzFqlo.mjs';
|
7
7
|
import '@orpc/client';
|
8
8
|
import '@orpc/contract';
|
9
9
|
import '@orpc/standard-server';
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { C as Context, R as Router } from '../../shared/server.DLt5njUb.js';
|
2
2
|
import { Interceptor, ThrowableError, MaybeOptionalOptions } from '@orpc/shared';
|
3
|
-
import {
|
4
|
-
import { F as FriendlyStandardHandleOptions } from '../../shared/server.
|
3
|
+
import { g as StandardHandlerPlugin, S as StandardHandleOptions, i as StandardHandler } from '../../shared/server.DuTpqr2w.js';
|
4
|
+
import { F as FriendlyStandardHandleOptions } from '../../shared/server.Bc6jnvPE.js';
|
5
5
|
import { ToFetchResponseOptions } from '@orpc/standard-server-fetch';
|
6
|
-
import { S as StandardRPCHandlerOptions } from '../../shared/server.
|
6
|
+
import { S as StandardRPCHandlerOptions } from '../../shared/server.BFt8M4Cr.js';
|
7
7
|
import '@orpc/client';
|
8
8
|
import '@orpc/contract';
|
9
9
|
import '@orpc/standard-server';
|
@@ -1,9 +1,9 @@
|
|
1
|
-
export { B as BodyLimitPlugin, F as FetchHandler, R as RPCHandler } from '../../shared/server.
|
1
|
+
export { B as BodyLimitPlugin, F as FetchHandler, R as RPCHandler } from '../../shared/server.CCPFkKqC.mjs';
|
2
2
|
import '@orpc/client';
|
3
3
|
import '@orpc/client/standard';
|
4
|
-
import '../../shared/server.
|
4
|
+
import '../../shared/server.DJrRF9vD.mjs';
|
5
5
|
import '@orpc/shared';
|
6
|
-
import '../../shared/server.
|
6
|
+
import '../../shared/server.C37gDhSZ.mjs';
|
7
7
|
import '@orpc/contract';
|
8
8
|
import '@orpc/standard-server-fetch';
|
9
9
|
import '../../shared/server.BVwwTHyO.mjs';
|
@@ -3,10 +3,10 @@ export { BodyLimitPlugin, BodyLimitPluginOptions, FetchHandleResult, FetchHandle
|
|
3
3
|
import { Value, MaybeOptionalOptions } from '@orpc/shared';
|
4
4
|
import { Context as Context$1, MiddlewareHandler } from 'hono';
|
5
5
|
import { C as Context } from '../../shared/server.DLt5njUb.mjs';
|
6
|
-
import { S as StandardHandleOptions } from '../../shared/server.
|
7
|
-
import '../../shared/server.
|
6
|
+
import { S as StandardHandleOptions } from '../../shared/server.BlxK0o8R.mjs';
|
7
|
+
import '../../shared/server.CCgy73tk.mjs';
|
8
8
|
import '@orpc/standard-server-fetch';
|
9
|
-
import '../../shared/server.
|
9
|
+
import '../../shared/server.JgWzFqlo.mjs';
|
10
10
|
import '@orpc/client/standard';
|
11
11
|
import '@orpc/client';
|
12
12
|
import '@orpc/contract';
|
@@ -3,10 +3,10 @@ export { BodyLimitPlugin, BodyLimitPluginOptions, FetchHandleResult, FetchHandle
|
|
3
3
|
import { Value, MaybeOptionalOptions } from '@orpc/shared';
|
4
4
|
import { Context as Context$1, MiddlewareHandler } from 'hono';
|
5
5
|
import { C as Context } from '../../shared/server.DLt5njUb.js';
|
6
|
-
import { S as StandardHandleOptions } from '../../shared/server.
|
7
|
-
import '../../shared/server.
|
6
|
+
import { S as StandardHandleOptions } from '../../shared/server.DuTpqr2w.js';
|
7
|
+
import '../../shared/server.Bc6jnvPE.js';
|
8
8
|
import '@orpc/standard-server-fetch';
|
9
|
-
import '../../shared/server.
|
9
|
+
import '../../shared/server.BFt8M4Cr.js';
|
10
10
|
import '@orpc/client/standard';
|
11
11
|
import '@orpc/client';
|
12
12
|
import '@orpc/contract';
|
@@ -1,9 +1,9 @@
|
|
1
|
-
export { B as BodyLimitPlugin, F as FetchHandler, R as RPCHandler } from '../../shared/server.
|
1
|
+
export { B as BodyLimitPlugin, F as FetchHandler, R as RPCHandler } from '../../shared/server.CCPFkKqC.mjs';
|
2
2
|
import { value } from '@orpc/shared';
|
3
3
|
import '@orpc/client';
|
4
4
|
import '@orpc/client/standard';
|
5
|
-
import '../../shared/server.
|
6
|
-
import '../../shared/server.
|
5
|
+
import '../../shared/server.DJrRF9vD.mjs';
|
6
|
+
import '../../shared/server.C37gDhSZ.mjs';
|
7
7
|
import '@orpc/contract';
|
8
8
|
import '@orpc/standard-server-fetch';
|
9
9
|
import '../../shared/server.BVwwTHyO.mjs';
|
@@ -3,10 +3,10 @@ export { BodyLimitPlugin, BodyLimitPluginOptions, FetchHandleResult, FetchHandle
|
|
3
3
|
import { Value, MaybeOptionalOptions } from '@orpc/shared';
|
4
4
|
import { NextRequest } from 'next/server';
|
5
5
|
import { C as Context } from '../../shared/server.DLt5njUb.mjs';
|
6
|
-
import { S as StandardHandleOptions } from '../../shared/server.
|
7
|
-
import '../../shared/server.
|
6
|
+
import { S as StandardHandleOptions } from '../../shared/server.BlxK0o8R.mjs';
|
7
|
+
import '../../shared/server.CCgy73tk.mjs';
|
8
8
|
import '@orpc/standard-server-fetch';
|
9
|
-
import '../../shared/server.
|
9
|
+
import '../../shared/server.JgWzFqlo.mjs';
|
10
10
|
import '@orpc/client/standard';
|
11
11
|
import '@orpc/client';
|
12
12
|
import '@orpc/contract';
|
@@ -3,10 +3,10 @@ export { BodyLimitPlugin, BodyLimitPluginOptions, FetchHandleResult, FetchHandle
|
|
3
3
|
import { Value, MaybeOptionalOptions } from '@orpc/shared';
|
4
4
|
import { NextRequest } from 'next/server';
|
5
5
|
import { C as Context } from '../../shared/server.DLt5njUb.js';
|
6
|
-
import { S as StandardHandleOptions } from '../../shared/server.
|
7
|
-
import '../../shared/server.
|
6
|
+
import { S as StandardHandleOptions } from '../../shared/server.DuTpqr2w.js';
|
7
|
+
import '../../shared/server.Bc6jnvPE.js';
|
8
8
|
import '@orpc/standard-server-fetch';
|
9
|
-
import '../../shared/server.
|
9
|
+
import '../../shared/server.BFt8M4Cr.js';
|
10
10
|
import '@orpc/client/standard';
|
11
11
|
import '@orpc/client';
|
12
12
|
import '@orpc/contract';
|
@@ -1,9 +1,9 @@
|
|
1
|
-
export { B as BodyLimitPlugin, F as FetchHandler, R as RPCHandler } from '../../shared/server.
|
1
|
+
export { B as BodyLimitPlugin, F as FetchHandler, R as RPCHandler } from '../../shared/server.CCPFkKqC.mjs';
|
2
2
|
import { value } from '@orpc/shared';
|
3
3
|
import '@orpc/client';
|
4
4
|
import '@orpc/client/standard';
|
5
|
-
import '../../shared/server.
|
6
|
-
import '../../shared/server.
|
5
|
+
import '../../shared/server.DJrRF9vD.mjs';
|
6
|
+
import '../../shared/server.C37gDhSZ.mjs';
|
7
7
|
import '@orpc/contract';
|
8
8
|
import '@orpc/standard-server-fetch';
|
9
9
|
import '../../shared/server.BVwwTHyO.mjs';
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { C as Context, R as Router } from '../../shared/server.DLt5njUb.mjs';
|
2
2
|
import { Interceptor, ThrowableError, MaybeOptionalOptions } from '@orpc/shared';
|
3
3
|
import { SendStandardResponseOptions, NodeHttpRequest, NodeHttpResponse } from '@orpc/standard-server-node';
|
4
|
-
import {
|
5
|
-
import { F as FriendlyStandardHandleOptions } from '../../shared/server.
|
6
|
-
import { S as StandardRPCHandlerOptions } from '../../shared/server.
|
4
|
+
import { g as StandardHandlerPlugin, S as StandardHandleOptions, i as StandardHandler } from '../../shared/server.BlxK0o8R.mjs';
|
5
|
+
import { F as FriendlyStandardHandleOptions } from '../../shared/server.CCgy73tk.mjs';
|
6
|
+
import { S as StandardRPCHandlerOptions } from '../../shared/server.JgWzFqlo.mjs';
|
7
7
|
import '@orpc/client';
|
8
8
|
import '@orpc/contract';
|
9
9
|
import '@orpc/standard-server';
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { C as Context, R as Router } from '../../shared/server.DLt5njUb.js';
|
2
2
|
import { Interceptor, ThrowableError, MaybeOptionalOptions } from '@orpc/shared';
|
3
3
|
import { SendStandardResponseOptions, NodeHttpRequest, NodeHttpResponse } from '@orpc/standard-server-node';
|
4
|
-
import {
|
5
|
-
import { F as FriendlyStandardHandleOptions } from '../../shared/server.
|
6
|
-
import { S as StandardRPCHandlerOptions } from '../../shared/server.
|
4
|
+
import { g as StandardHandlerPlugin, S as StandardHandleOptions, i as StandardHandler } from '../../shared/server.DuTpqr2w.js';
|
5
|
+
import { F as FriendlyStandardHandleOptions } from '../../shared/server.Bc6jnvPE.js';
|
6
|
+
import { S as StandardRPCHandlerOptions } from '../../shared/server.BFt8M4Cr.js';
|
7
7
|
import '@orpc/client';
|
8
8
|
import '@orpc/contract';
|
9
9
|
import '@orpc/standard-server';
|
@@ -3,8 +3,8 @@ import { toArray, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
|
|
3
3
|
import { toStandardLazyRequest, sendStandardResponse } from '@orpc/standard-server-node';
|
4
4
|
import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.BVwwTHyO.mjs';
|
5
5
|
import { StandardRPCJsonSerializer, StandardRPCSerializer } from '@orpc/client/standard';
|
6
|
-
import { S as StandardHandler, b as StandardRPCMatcher, a as StandardRPCCodec } from '../../shared/server.
|
7
|
-
import '../../shared/server.
|
6
|
+
import { S as StandardHandler, b as StandardRPCMatcher, a as StandardRPCCodec } from '../../shared/server.DJrRF9vD.mjs';
|
7
|
+
import '../../shared/server.C37gDhSZ.mjs';
|
8
8
|
import '@orpc/contract';
|
9
9
|
|
10
10
|
class BodyLimitPlugin {
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import {
|
2
|
-
export { S as StandardHandleOptions,
|
1
|
+
import { b as StandardCodec, c as StandardParams, d as StandardMatcher, e as StandardMatchResult } from '../../shared/server.BlxK0o8R.mjs';
|
2
|
+
export { S as StandardHandleOptions, f as StandardHandleResult, i as StandardHandler, h as StandardHandlerInterceptorOptions, a as StandardHandlerOptions, g as StandardHandlerPlugin } from '../../shared/server.BlxK0o8R.mjs';
|
3
3
|
import { ORPCError, HTTPPath } from '@orpc/client';
|
4
4
|
import { StandardRPCSerializer } from '@orpc/client/standard';
|
5
5
|
import { StandardLazyRequest, StandardResponse } from '@orpc/standard-server';
|
6
6
|
import { A as AnyProcedure, a as AnyRouter } from '../../shared/server.DLt5njUb.mjs';
|
7
|
-
export { S as StandardRPCHandlerOptions } from '../../shared/server.
|
7
|
+
export { S as StandardRPCHandlerOptions } from '../../shared/server.JgWzFqlo.mjs';
|
8
8
|
import '@orpc/contract';
|
9
9
|
import '@orpc/shared';
|
10
10
|
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import {
|
2
|
-
export { S as StandardHandleOptions,
|
1
|
+
import { b as StandardCodec, c as StandardParams, d as StandardMatcher, e as StandardMatchResult } from '../../shared/server.DuTpqr2w.js';
|
2
|
+
export { S as StandardHandleOptions, f as StandardHandleResult, i as StandardHandler, h as StandardHandlerInterceptorOptions, a as StandardHandlerOptions, g as StandardHandlerPlugin } from '../../shared/server.DuTpqr2w.js';
|
3
3
|
import { ORPCError, HTTPPath } from '@orpc/client';
|
4
4
|
import { StandardRPCSerializer } from '@orpc/client/standard';
|
5
5
|
import { StandardLazyRequest, StandardResponse } from '@orpc/standard-server';
|
6
6
|
import { A as AnyProcedure, a as AnyRouter } from '../../shared/server.DLt5njUb.js';
|
7
|
-
export { S as StandardRPCHandlerOptions } from '../../shared/server.
|
7
|
+
export { S as StandardRPCHandlerOptions } from '../../shared/server.BFt8M4Cr.js';
|
8
8
|
import '@orpc/contract';
|
9
9
|
import '@orpc/shared';
|
10
10
|
|
@@ -1,6 +1,6 @@
|
|
1
|
-
export { S as StandardHandler, a as StandardRPCCodec, b as StandardRPCMatcher } from '../../shared/server.
|
1
|
+
export { S as StandardHandler, a as StandardRPCCodec, b as StandardRPCMatcher } from '../../shared/server.DJrRF9vD.mjs';
|
2
2
|
import '@orpc/client';
|
3
3
|
import '@orpc/shared';
|
4
|
-
import '../../shared/server.
|
4
|
+
import '../../shared/server.C37gDhSZ.mjs';
|
5
5
|
import '@orpc/contract';
|
6
6
|
import '@orpc/client/standard';
|
package/dist/index.mjs
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import { mergeErrorMap, mergeMeta, mergeRoute, mergePrefix, mergeTags, isContractProcedure, getContractRouter } from '@orpc/contract';
|
2
2
|
export { ValidationError, eventIterator, type } from '@orpc/contract';
|
3
|
-
import { P as Procedure, b as addMiddleware, c as createProcedureClient, e as enhanceRouter, l as lazy, s as setHiddenRouterContract, i as isProcedure, d as isLazy, f as createAssertedLazyProcedure, g as getRouter } from './shared/server.
|
4
|
-
export { L as LAZY_SYMBOL, p as call, r as createAccessibleLazyRouter, a as createContractedProcedure, h as createORPCErrorConstructorMap, q as getHiddenRouterContract, j as getLazyMeta, n as isStartWithMiddlewares, m as mergeCurrentContext, o as mergeMiddlewares, k as middlewareOutputFn, w as resolveContractProcedures, t as traverseContractProcedures, u as unlazy, x as unlazyRouter, v as validateORPCError } from './shared/server.
|
3
|
+
import { P as Procedure, b as addMiddleware, c as createProcedureClient, e as enhanceRouter, l as lazy, s as setHiddenRouterContract, i as isProcedure, d as isLazy, f as createAssertedLazyProcedure, g as getRouter } from './shared/server.C37gDhSZ.mjs';
|
4
|
+
export { L as LAZY_SYMBOL, p as call, r as createAccessibleLazyRouter, a as createContractedProcedure, h as createORPCErrorConstructorMap, q as getHiddenRouterContract, j as getLazyMeta, n as isStartWithMiddlewares, m as mergeCurrentContext, o as mergeMiddlewares, k as middlewareOutputFn, w as resolveContractProcedures, t as traverseContractProcedures, u as unlazy, x as unlazyRouter, v as validateORPCError } from './shared/server.C37gDhSZ.mjs';
|
5
5
|
import { toORPCError } from '@orpc/client';
|
6
6
|
export { ORPCError, isDefinedError, safe } from '@orpc/client';
|
7
7
|
export { onError, onFinish, onStart, onSuccess } from '@orpc/shared';
|
package/dist/plugins/index.d.mts
CHANGED
@@ -1,9 +1,45 @@
|
|
1
|
-
import { b as StandardHandlerInterceptorOptions, c as StandardHandlerPlugin, a as StandardHandlerOptions } from '../shared/server.CzxlqYZL.mjs';
|
2
1
|
import { Value } from '@orpc/shared';
|
2
|
+
import { StandardRequest, StandardHeaders } from '@orpc/standard-server';
|
3
|
+
import { BatchResponseBodyItem } from '@orpc/standard-server/batch';
|
4
|
+
import { h as StandardHandlerInterceptorOptions, g as StandardHandlerPlugin, a as StandardHandlerOptions } from '../shared/server.BlxK0o8R.mjs';
|
3
5
|
import { C as Context } from '../shared/server.DLt5njUb.mjs';
|
4
6
|
import '@orpc/client';
|
5
7
|
import '@orpc/contract';
|
6
|
-
|
8
|
+
|
9
|
+
interface BatchHandlerOptions<T extends Context> {
|
10
|
+
/**
|
11
|
+
* The max size of the batch allowed.
|
12
|
+
*
|
13
|
+
* @default 10
|
14
|
+
*/
|
15
|
+
maxSize?: Value<number, [StandardHandlerInterceptorOptions<T>]>;
|
16
|
+
/**
|
17
|
+
* Map the request before processing it.
|
18
|
+
*
|
19
|
+
* @default merged back batch request headers into the request
|
20
|
+
*/
|
21
|
+
mapRequestItem?(request: StandardRequest, batchOptions: StandardHandlerInterceptorOptions<T>): StandardRequest;
|
22
|
+
/**
|
23
|
+
* Success batch response status code.
|
24
|
+
*
|
25
|
+
* @default 207
|
26
|
+
*/
|
27
|
+
successStatus?: Value<number, [responses: Promise<BatchResponseBodyItem>[], batchOptions: StandardHandlerInterceptorOptions<T>]>;
|
28
|
+
/**
|
29
|
+
* success batch response headers.
|
30
|
+
*
|
31
|
+
* @default {}
|
32
|
+
*/
|
33
|
+
headers?: Value<StandardHeaders, [responses: Promise<BatchResponseBodyItem>[], batchOptions: StandardHandlerInterceptorOptions<T>]>;
|
34
|
+
}
|
35
|
+
declare class BatchHandlerPlugin<T extends Context> implements StandardHandlerPlugin<T> {
|
36
|
+
private readonly maxSize;
|
37
|
+
private readonly mapRequestItem;
|
38
|
+
private readonly successStatus;
|
39
|
+
private readonly headers;
|
40
|
+
constructor(options?: BatchHandlerOptions<T>);
|
41
|
+
init(options: StandardHandlerOptions<T>): void;
|
42
|
+
}
|
7
43
|
|
8
44
|
interface CORSOptions<T extends Context> {
|
9
45
|
origin?: Value<string | readonly string[] | null | undefined, [origin: string, options: StandardHandlerInterceptorOptions<T>]>;
|
@@ -27,4 +63,4 @@ declare class ResponseHeadersPlugin<T extends ResponseHeadersPluginContext> impl
|
|
27
63
|
init(options: StandardHandlerOptions<T>): void;
|
28
64
|
}
|
29
65
|
|
30
|
-
export { type CORSOptions, CORSPlugin, ResponseHeadersPlugin, type ResponseHeadersPluginContext };
|
66
|
+
export { type BatchHandlerOptions, BatchHandlerPlugin, type CORSOptions, CORSPlugin, ResponseHeadersPlugin, type ResponseHeadersPluginContext };
|
package/dist/plugins/index.d.ts
CHANGED
@@ -1,9 +1,45 @@
|
|
1
|
-
import { b as StandardHandlerInterceptorOptions, c as StandardHandlerPlugin, a as StandardHandlerOptions } from '../shared/server.BHlRCrf_.js';
|
2
1
|
import { Value } from '@orpc/shared';
|
2
|
+
import { StandardRequest, StandardHeaders } from '@orpc/standard-server';
|
3
|
+
import { BatchResponseBodyItem } from '@orpc/standard-server/batch';
|
4
|
+
import { h as StandardHandlerInterceptorOptions, g as StandardHandlerPlugin, a as StandardHandlerOptions } from '../shared/server.DuTpqr2w.js';
|
3
5
|
import { C as Context } from '../shared/server.DLt5njUb.js';
|
4
6
|
import '@orpc/client';
|
5
7
|
import '@orpc/contract';
|
6
|
-
|
8
|
+
|
9
|
+
interface BatchHandlerOptions<T extends Context> {
|
10
|
+
/**
|
11
|
+
* The max size of the batch allowed.
|
12
|
+
*
|
13
|
+
* @default 10
|
14
|
+
*/
|
15
|
+
maxSize?: Value<number, [StandardHandlerInterceptorOptions<T>]>;
|
16
|
+
/**
|
17
|
+
* Map the request before processing it.
|
18
|
+
*
|
19
|
+
* @default merged back batch request headers into the request
|
20
|
+
*/
|
21
|
+
mapRequestItem?(request: StandardRequest, batchOptions: StandardHandlerInterceptorOptions<T>): StandardRequest;
|
22
|
+
/**
|
23
|
+
* Success batch response status code.
|
24
|
+
*
|
25
|
+
* @default 207
|
26
|
+
*/
|
27
|
+
successStatus?: Value<number, [responses: Promise<BatchResponseBodyItem>[], batchOptions: StandardHandlerInterceptorOptions<T>]>;
|
28
|
+
/**
|
29
|
+
* success batch response headers.
|
30
|
+
*
|
31
|
+
* @default {}
|
32
|
+
*/
|
33
|
+
headers?: Value<StandardHeaders, [responses: Promise<BatchResponseBodyItem>[], batchOptions: StandardHandlerInterceptorOptions<T>]>;
|
34
|
+
}
|
35
|
+
declare class BatchHandlerPlugin<T extends Context> implements StandardHandlerPlugin<T> {
|
36
|
+
private readonly maxSize;
|
37
|
+
private readonly mapRequestItem;
|
38
|
+
private readonly successStatus;
|
39
|
+
private readonly headers;
|
40
|
+
constructor(options?: BatchHandlerOptions<T>);
|
41
|
+
init(options: StandardHandlerOptions<T>): void;
|
42
|
+
}
|
7
43
|
|
8
44
|
interface CORSOptions<T extends Context> {
|
9
45
|
origin?: Value<string | readonly string[] | null | undefined, [origin: string, options: StandardHandlerInterceptorOptions<T>]>;
|
@@ -27,4 +63,4 @@ declare class ResponseHeadersPlugin<T extends ResponseHeadersPluginContext> impl
|
|
27
63
|
init(options: StandardHandlerOptions<T>): void;
|
28
64
|
}
|
29
65
|
|
30
|
-
export { type CORSOptions, CORSPlugin, ResponseHeadersPlugin, type ResponseHeadersPluginContext };
|
66
|
+
export { type BatchHandlerOptions, BatchHandlerPlugin, type CORSOptions, CORSPlugin, ResponseHeadersPlugin, type ResponseHeadersPluginContext };
|
package/dist/plugins/index.mjs
CHANGED
@@ -1,4 +1,93 @@
|
|
1
1
|
import { value } from '@orpc/shared';
|
2
|
+
import { parseBatchRequest, toBatchResponse } from '@orpc/standard-server/batch';
|
3
|
+
|
4
|
+
class BatchHandlerPlugin {
|
5
|
+
maxSize;
|
6
|
+
mapRequestItem;
|
7
|
+
successStatus;
|
8
|
+
headers;
|
9
|
+
constructor(options = {}) {
|
10
|
+
this.maxSize = options.maxSize ?? 10;
|
11
|
+
this.mapRequestItem = options.mapRequestItem ?? ((request, { request: batchRequest }) => ({
|
12
|
+
...request,
|
13
|
+
headers: {
|
14
|
+
...batchRequest.headers,
|
15
|
+
...request.headers
|
16
|
+
}
|
17
|
+
}));
|
18
|
+
this.successStatus = options.successStatus ?? 207;
|
19
|
+
this.headers = options.headers ?? {};
|
20
|
+
}
|
21
|
+
init(options) {
|
22
|
+
options.rootInterceptors ??= [];
|
23
|
+
options.rootInterceptors.unshift(async (options2) => {
|
24
|
+
if (options2.request.headers["x-orpc-batch"] !== "1") {
|
25
|
+
return options2.next();
|
26
|
+
}
|
27
|
+
let isParsing = false;
|
28
|
+
try {
|
29
|
+
isParsing = true;
|
30
|
+
const parsed = parseBatchRequest({ ...options2.request, body: await options2.request.body() });
|
31
|
+
isParsing = false;
|
32
|
+
const maxSize = await value(this.maxSize, options2);
|
33
|
+
if (parsed.length > maxSize) {
|
34
|
+
return {
|
35
|
+
matched: true,
|
36
|
+
response: {
|
37
|
+
status: 413,
|
38
|
+
headers: {},
|
39
|
+
body: "Batch request size exceeds the maximum allowed size"
|
40
|
+
}
|
41
|
+
};
|
42
|
+
}
|
43
|
+
const responses = parsed.map(
|
44
|
+
(request, index) => {
|
45
|
+
const mapped = this.mapRequestItem(request, options2);
|
46
|
+
return options2.next({ ...options2, request: { ...mapped, body: () => Promise.resolve(mapped.body) } }).then(({ response: response2, matched }) => {
|
47
|
+
if (matched) {
|
48
|
+
return { ...response2, index };
|
49
|
+
}
|
50
|
+
return { index, status: 404, headers: {}, body: "No procedure matched" };
|
51
|
+
}).catch(() => {
|
52
|
+
return { index, status: 500, headers: {}, body: "Internal server error" };
|
53
|
+
});
|
54
|
+
}
|
55
|
+
);
|
56
|
+
await Promise.race(responses);
|
57
|
+
const status = await value(this.successStatus, responses, options2);
|
58
|
+
const headers = await value(this.headers, responses, options2);
|
59
|
+
const response = toBatchResponse({
|
60
|
+
status,
|
61
|
+
headers,
|
62
|
+
body: async function* () {
|
63
|
+
const promises = [...responses];
|
64
|
+
while (true) {
|
65
|
+
const handling = promises.filter((p) => p !== void 0);
|
66
|
+
if (handling.length === 0) {
|
67
|
+
return;
|
68
|
+
}
|
69
|
+
const result = await Promise.race(handling);
|
70
|
+
promises[result.index] = void 0;
|
71
|
+
yield result;
|
72
|
+
}
|
73
|
+
}()
|
74
|
+
});
|
75
|
+
return {
|
76
|
+
matched: true,
|
77
|
+
response
|
78
|
+
};
|
79
|
+
} catch (cause) {
|
80
|
+
if (isParsing) {
|
81
|
+
return {
|
82
|
+
matched: true,
|
83
|
+
response: { status: 400, headers: {}, body: "Invalid batch request, this could be caused by a malformed request body or a missing header" }
|
84
|
+
};
|
85
|
+
}
|
86
|
+
throw cause;
|
87
|
+
}
|
88
|
+
});
|
89
|
+
}
|
90
|
+
}
|
2
91
|
|
3
92
|
class CORSPlugin {
|
4
93
|
options;
|
@@ -104,4 +193,4 @@ class ResponseHeadersPlugin {
|
|
104
193
|
}
|
105
194
|
}
|
106
195
|
|
107
|
-
export { CORSPlugin, ResponseHeadersPlugin };
|
196
|
+
export { BatchHandlerPlugin, CORSPlugin, ResponseHeadersPlugin };
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { StandardRPCJsonSerializerOptions } from '@orpc/client/standard';
|
2
2
|
import { C as Context } from './server.DLt5njUb.js';
|
3
|
-
import { a as StandardHandlerOptions } from './server.
|
3
|
+
import { a as StandardHandlerOptions } from './server.DuTpqr2w.js';
|
4
4
|
|
5
5
|
interface StandardRPCHandlerOptions<T extends Context> extends StandardHandlerOptions<T>, StandardRPCJsonSerializerOptions {
|
6
6
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { C as Context } from './server.DLt5njUb.js';
|
2
|
-
import { S as StandardHandleOptions } from './server.
|
2
|
+
import { S as StandardHandleOptions } from './server.DuTpqr2w.js';
|
3
3
|
|
4
4
|
type FriendlyStandardHandleOptions<T extends Context> = Omit<StandardHandleOptions<T>, 'context'> & (Record<never, never> extends T ? {
|
5
5
|
context?: T;
|
@@ -63,4 +63,4 @@ declare class StandardHandler<T extends Context> {
|
|
63
63
|
handle(request: StandardLazyRequest, options: StandardHandleOptions<T>): Promise<StandardHandleResult>;
|
64
64
|
}
|
65
65
|
|
66
|
-
export { type StandardHandleOptions as S, type StandardHandlerOptions as a, type
|
66
|
+
export { type StandardHandleOptions as S, type StandardHandlerOptions as a, type StandardCodec as b, type StandardParams as c, type StandardMatcher as d, type StandardMatchResult as e, type StandardHandleResult as f, type StandardHandlerPlugin as g, type StandardHandlerInterceptorOptions as h, StandardHandler as i };
|
@@ -169,35 +169,29 @@ async function executeProcedureInternal(procedure, options) {
|
|
169
169
|
const middlewares = procedure["~orpc"].middlewares;
|
170
170
|
const inputValidationIndex = Math.min(Math.max(0, procedure["~orpc"].inputValidationIndex), middlewares.length);
|
171
171
|
const outputValidationIndex = Math.min(Math.max(0, procedure["~orpc"].outputValidationIndex), middlewares.length);
|
172
|
-
|
173
|
-
|
174
|
-
let currentInput = options.input;
|
175
|
-
const next = async (...[nextOptions]) => {
|
176
|
-
const index = currentIndex;
|
177
|
-
const midContext = nextOptions?.context ?? {};
|
178
|
-
currentIndex += 1;
|
179
|
-
currentContext = mergeCurrentContext(currentContext, midContext);
|
172
|
+
const next = async (index, context, input) => {
|
173
|
+
let currentInput = input;
|
180
174
|
if (index === inputValidationIndex) {
|
181
175
|
currentInput = await validateInput(procedure, currentInput);
|
182
176
|
}
|
183
177
|
const mid = middlewares[index];
|
184
|
-
const
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
178
|
+
const output = mid ? (await mid({
|
179
|
+
...options,
|
180
|
+
context,
|
181
|
+
next: async (...[nextOptions]) => {
|
182
|
+
const nextContext = nextOptions?.context ?? {};
|
183
|
+
return {
|
184
|
+
output: await next(index + 1, mergeCurrentContext(context, nextContext), currentInput),
|
185
|
+
context: nextContext
|
186
|
+
};
|
187
|
+
}
|
188
|
+
}, currentInput, middlewareOutputFn)).output : await procedure["~orpc"].handler({ ...options, context, input: currentInput });
|
191
189
|
if (index === outputValidationIndex) {
|
192
|
-
|
193
|
-
return {
|
194
|
-
context: result.context,
|
195
|
-
output: validatedOutput
|
196
|
-
};
|
190
|
+
return await validateOutput(procedure, output);
|
197
191
|
}
|
198
|
-
return
|
192
|
+
return output;
|
199
193
|
};
|
200
|
-
return (
|
194
|
+
return next(0, options.context, options.input);
|
201
195
|
}
|
202
196
|
|
203
197
|
const HIDDEN_ROUTER_CONTRACT_SYMBOL = Symbol("ORPC_HIDDEN_ROUTER_CONTRACT");
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ORPCError } from '@orpc/client';
|
2
2
|
import { StandardRPCJsonSerializer, StandardRPCSerializer } from '@orpc/client/standard';
|
3
|
-
import { S as StandardHandler, b as StandardRPCMatcher, a as StandardRPCCodec } from './server.
|
3
|
+
import { S as StandardHandler, b as StandardRPCMatcher, a as StandardRPCCodec } from './server.DJrRF9vD.mjs';
|
4
4
|
import { toArray, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
|
5
5
|
import { toStandardLazyRequest, toFetchResponse } from '@orpc/standard-server-fetch';
|
6
6
|
import { r as resolveFriendlyStandardHandleOptions } from './server.BVwwTHyO.mjs';
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { C as Context } from './server.DLt5njUb.mjs';
|
2
|
-
import { S as StandardHandleOptions } from './server.
|
2
|
+
import { S as StandardHandleOptions } from './server.BlxK0o8R.mjs';
|
3
3
|
|
4
4
|
type FriendlyStandardHandleOptions<T extends Context> = Omit<StandardHandleOptions<T>, 'context'> & (Record<never, never> extends T ? {
|
5
5
|
context?: T;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ORPCError, toORPCError } from '@orpc/client';
|
2
2
|
import { toArray, intercept, parseEmptyableJSON } from '@orpc/shared';
|
3
|
-
import { c as createProcedureClient, t as traverseContractProcedures, i as isProcedure, u as unlazy, g as getRouter, a as createContractedProcedure } from './server.
|
3
|
+
import { c as createProcedureClient, t as traverseContractProcedures, i as isProcedure, u as unlazy, g as getRouter, a as createContractedProcedure } from './server.C37gDhSZ.mjs';
|
4
4
|
import { toHttpPath } from '@orpc/client/standard';
|
5
5
|
|
6
6
|
class StandardHandler {
|
@@ -63,4 +63,4 @@ declare class StandardHandler<T extends Context> {
|
|
63
63
|
handle(request: StandardLazyRequest, options: StandardHandleOptions<T>): Promise<StandardHandleResult>;
|
64
64
|
}
|
65
65
|
|
66
|
-
export { type StandardHandleOptions as S, type StandardHandlerOptions as a, type
|
66
|
+
export { type StandardHandleOptions as S, type StandardHandlerOptions as a, type StandardCodec as b, type StandardParams as c, type StandardMatcher as d, type StandardMatchResult as e, type StandardHandleResult as f, type StandardHandlerPlugin as g, type StandardHandlerInterceptorOptions as h, StandardHandler as i };
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { StandardRPCJsonSerializerOptions } from '@orpc/client/standard';
|
2
2
|
import { C as Context } from './server.DLt5njUb.mjs';
|
3
|
-
import { a as StandardHandlerOptions } from './server.
|
3
|
+
import { a as StandardHandlerOptions } from './server.BlxK0o8R.mjs';
|
4
4
|
|
5
5
|
interface StandardRPCHandlerOptions<T extends Context> extends StandardHandlerOptions<T>, StandardRPCJsonSerializerOptions {
|
6
6
|
}
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@orpc/server",
|
3
3
|
"type": "module",
|
4
|
-
"version": "0.0.0-next.
|
4
|
+
"version": "0.0.0-next.32a6de9",
|
5
5
|
"license": "MIT",
|
6
6
|
"homepage": "https://orpc.unnoq.com",
|
7
7
|
"repository": {
|
@@ -58,12 +58,12 @@
|
|
58
58
|
"next": ">=14.0.0"
|
59
59
|
},
|
60
60
|
"dependencies": {
|
61
|
-
"@orpc/client": "0.0.0-next.
|
62
|
-
"@orpc/contract": "0.0.0-next.
|
63
|
-
"@orpc/
|
64
|
-
"@orpc/standard-server
|
65
|
-
"@orpc/
|
66
|
-
"@orpc/standard-server-node": "0.0.0-next.
|
61
|
+
"@orpc/client": "0.0.0-next.32a6de9",
|
62
|
+
"@orpc/contract": "0.0.0-next.32a6de9",
|
63
|
+
"@orpc/shared": "0.0.0-next.32a6de9",
|
64
|
+
"@orpc/standard-server": "0.0.0-next.32a6de9",
|
65
|
+
"@orpc/standard-server-fetch": "0.0.0-next.32a6de9",
|
66
|
+
"@orpc/standard-server-node": "0.0.0-next.32a6de9"
|
67
67
|
},
|
68
68
|
"devDependencies": {
|
69
69
|
"supertest": "^7.0.0"
|