@orpc/shared 0.35.1 → 0.36.1

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/index.js CHANGED
@@ -35,64 +35,6 @@ function once(fn) {
35
35
  };
36
36
  }
37
37
 
38
- // src/hook.ts
39
- async function executeWithHooks(options) {
40
- const interceptors = convertToArray(options.hooks?.interceptor);
41
- const onStarts = convertToArray(options.hooks?.onStart);
42
- const onSuccesses = convertToArray(options.hooks?.onSuccess);
43
- const onErrors = convertToArray(options.hooks?.onError);
44
- const onFinishes = convertToArray(options.hooks?.onFinish);
45
- let currentExecuteIndex = 0;
46
- const next = async () => {
47
- const execute = interceptors[currentExecuteIndex];
48
- if (execute) {
49
- currentExecuteIndex++;
50
- return await execute(options.input, options.context, {
51
- ...options.meta,
52
- next
53
- });
54
- }
55
- let state = { status: "pending", input: options.input, output: void 0, error: void 0 };
56
- try {
57
- for (const onStart2 of onStarts) {
58
- await onStart2(state, options.context, options.meta);
59
- }
60
- const output = await options.execute();
61
- state = { status: "success", input: options.input, output, error: void 0 };
62
- for (let i = onSuccesses.length - 1; i >= 0; i--) {
63
- await onSuccesses[i](state, options.context, options.meta);
64
- }
65
- } catch (e) {
66
- state = { status: "error", input: options.input, error: toError(e), output: void 0 };
67
- for (let i = onErrors.length - 1; i >= 0; i--) {
68
- try {
69
- await onErrors[i](state, options.context, options.meta);
70
- } catch (e2) {
71
- state = { status: "error", input: options.input, error: toError(e2), output: void 0 };
72
- }
73
- }
74
- }
75
- for (let i = onFinishes.length - 1; i >= 0; i--) {
76
- try {
77
- await onFinishes[i](state, options.context, options.meta);
78
- } catch (e) {
79
- state = { status: "error", input: options.input, error: toError(e), output: void 0 };
80
- }
81
- }
82
- if (state.status === "error") {
83
- throw state.error;
84
- }
85
- return state.output;
86
- };
87
- return await next();
88
- }
89
- function convertToArray(value2) {
90
- if (value2 === void 0) {
91
- return [];
92
- }
93
- return Array.isArray(value2) ? value2 : [value2];
94
- }
95
-
96
38
  // src/interceptor.ts
97
39
  function onStart(callback) {
98
40
  return async (options, ...rest) => {
@@ -134,17 +76,17 @@ function onFinish(callback) {
134
76
  }
135
77
  async function intercept(interceptors, options, main) {
136
78
  let index = 0;
137
- const next = async (nextOptions = options) => {
79
+ const next = async (options2) => {
138
80
  const interceptor = interceptors[index++];
139
81
  if (!interceptor) {
140
- return await main(nextOptions);
82
+ return await main(options2);
141
83
  }
142
84
  return await interceptor({
143
- ...nextOptions,
144
- next
85
+ ...options2,
86
+ next: (newOptions = options2) => next(newOptions)
145
87
  });
146
88
  };
147
- return await next();
89
+ return await next(options);
148
90
  }
149
91
 
150
92
  // src/json.ts
@@ -245,9 +187,7 @@ import { group, guard, mapEntries, mapValues, omit, trim } from "radash";
245
187
  export {
246
188
  ORPC_HANDLER_HEADER,
247
189
  ORPC_HANDLER_VALUE,
248
- convertToArray,
249
190
  createCallableObject,
250
- executeWithHooks,
251
191
  findDeepMatches,
252
192
  get,
253
193
  group,
@@ -2,7 +2,6 @@ export * from './chain';
2
2
  export * from './constants';
3
3
  export * from './error';
4
4
  export * from './function';
5
- export * from './hook';
6
5
  export * from './interceptor';
7
6
  export * from './json';
8
7
  export * from './object';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orpc/shared",
3
3
  "type": "module",
4
- "version": "0.35.1",
4
+ "version": "0.36.1",
5
5
  "license": "MIT",
6
6
  "homepage": "https://orpc.unnoq.com",
7
7
  "repository": {
@@ -29,7 +29,6 @@
29
29
  "dist"
30
30
  ],
31
31
  "dependencies": {
32
- "@standard-schema/spec": "1.0.0-beta.4",
33
32
  "is-what": "^5.0.2",
34
33
  "radash": "^12.1.0",
35
34
  "type-fest": "^4.26.1"
@@ -1,42 +0,0 @@
1
- import type { Arrayable, Promisable } from 'type-fest';
2
- export type OnStartState<TInput> = {
3
- status: 'pending';
4
- input: TInput;
5
- output: undefined;
6
- error: undefined;
7
- };
8
- export type OnSuccessState<TInput, TOutput> = {
9
- status: 'success';
10
- input: TInput;
11
- output: TOutput;
12
- error: undefined;
13
- };
14
- export type OnErrorState<TInput> = {
15
- status: 'error';
16
- input: TInput;
17
- output: undefined;
18
- error: Error;
19
- };
20
- export interface BaseHookMeta<TOutput> {
21
- next(): Promise<TOutput>;
22
- }
23
- export interface Hooks<TInput, TOutput, TContext, TMeta extends (Record<string, any> & {
24
- next?: never;
25
- }) | undefined> {
26
- interceptor?: Arrayable<(input: TInput, context: TContext, meta: (TMeta extends undefined ? unknown : TMeta) & BaseHookMeta<TOutput>) => Promise<TOutput>>;
27
- onStart?: Arrayable<(state: OnStartState<TInput>, context: TContext, meta: TMeta) => Promisable<void>>;
28
- onSuccess?: Arrayable<(state: OnSuccessState<TInput, TOutput>, context: TContext, meta: TMeta) => Promisable<void>>;
29
- onError?: Arrayable<(state: OnErrorState<TInput>, context: TContext, meta: TMeta) => Promisable<void>>;
30
- onFinish?: Arrayable<(state: OnSuccessState<TInput, TOutput> | OnErrorState<TInput>, context: TContext, meta: TMeta) => Promisable<void>>;
31
- }
32
- export declare function executeWithHooks<TInput, TOutput, TContext, TMeta extends (Record<string, any> & {
33
- next?: never;
34
- }) | undefined>(options: {
35
- hooks?: Hooks<TInput, TOutput, TContext, TMeta>;
36
- input: TInput;
37
- context: TContext;
38
- meta: TMeta;
39
- execute: BaseHookMeta<TOutput>['next'];
40
- }): Promise<TOutput>;
41
- export declare function convertToArray<T>(value: undefined | T | readonly T[]): readonly T[];
42
- //# sourceMappingURL=hook.d.ts.map