@modern-js/bff-core 1.1.3 → 1.2.1-beta.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.
@@ -23,6 +23,7 @@ export function Api(...args) {
23
23
  }
24
24
 
25
25
  const validateHandlers = operators.filter(operator => operator.validate).map(operator => operator.validate);
26
+ const pipeHandlers = operators.filter(operator => operator.pipe).map(operator => operator.pipe);
26
27
 
27
28
  async function runner(inputs) {
28
29
  const executeHelper = {
@@ -30,10 +31,15 @@ export function Api(...args) {
30
31
 
31
32
  get inputs() {
32
33
  return inputs;
34
+ },
35
+
36
+ set inputs(val) {
37
+ // eslint-disable-next-line no-param-reassign
38
+ inputs = val;
33
39
  }
34
40
 
35
41
  };
36
- const stack = [...validateHandlers];
42
+ const stack = [...validateHandlers, ...pipeHandlers];
37
43
  stack.push(async (helper, next) => {
38
44
  const res = await handler(inputs);
39
45
  helper.result = res;
@@ -173,17 +173,5 @@ export const Redirect = url => {
173
173
  setResponseMeta(helper, ResponseMetaType.Redirect, url);
174
174
  }
175
175
 
176
- };
177
- };
178
- export const Middleware = middleware => {
179
- return {
180
- name: 'Middleware',
181
-
182
- metadata({
183
- setMetadata
184
- }) {
185
- setMetadata(OperatorType.Middleware, middleware);
186
- }
187
-
188
176
  };
189
177
  };
@@ -35,6 +35,7 @@ function Api(...args) {
35
35
  }
36
36
 
37
37
  const validateHandlers = operators.filter(operator => operator.validate).map(operator => operator.validate);
38
+ const pipeHandlers = operators.filter(operator => operator.pipe).map(operator => operator.pipe);
38
39
 
39
40
  async function runner(inputs) {
40
41
  const executeHelper = {
@@ -42,10 +43,15 @@ function Api(...args) {
42
43
 
43
44
  get inputs() {
44
45
  return inputs;
46
+ },
47
+
48
+ set inputs(val) {
49
+ // eslint-disable-next-line no-param-reassign
50
+ inputs = val;
45
51
  }
46
52
 
47
53
  };
48
- const stack = [...validateHandlers];
54
+ const stack = [...validateHandlers, ...pipeHandlers];
49
55
  stack.push(async (helper, next) => {
50
56
  const res = await handler(inputs);
51
57
  helper.result = res;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createHttpOperator = exports.Trace = exports.SetHeaders = exports.Redirect = exports.Query = exports.Put = exports.Post = exports.Patch = exports.Params = exports.Option = exports.Middleware = exports.HttpCode = exports.Headers = exports.Head = exports.Get = exports.Delete = exports.Data = exports.Connect = void 0;
6
+ exports.createHttpOperator = exports.Trace = exports.SetHeaders = exports.Redirect = exports.Query = exports.Put = exports.Post = exports.Patch = exports.Params = exports.Option = exports.HttpCode = exports.Headers = exports.Head = exports.Get = exports.Delete = exports.Data = exports.Connect = void 0;
7
7
 
8
8
  var _types = require("../types");
9
9
 
@@ -213,19 +213,4 @@ const Redirect = url => {
213
213
  };
214
214
  };
215
215
 
216
- exports.Redirect = Redirect;
217
-
218
- const Middleware = middleware => {
219
- return {
220
- name: 'Middleware',
221
-
222
- metadata({
223
- setMetadata
224
- }) {
225
- setMetadata(_types.OperatorType.Middleware, middleware);
226
- }
227
-
228
- };
229
- };
230
-
231
- exports.Middleware = Middleware;
216
+ exports.Redirect = Redirect;
@@ -1,5 +1,5 @@
1
1
  import type { z } from 'zod';
2
- import { Operator, HttpMethod, ApiMiddleware, ResponseMetaType } from '../types';
2
+ import { Operator, HttpMethod, ResponseMetaType } from '../types';
3
3
  export interface ResponseMeta {
4
4
  type: ResponseMetaType;
5
5
  value: unknown;
@@ -28,5 +28,4 @@ export declare const Headers: <T>(schema: z.ZodType<T, z.ZodTypeDef, T>) => Oper
28
28
  }>;
29
29
  export declare const HttpCode: (statusCode: number) => Operator<void>;
30
30
  export declare const SetHeaders: (headers: Record<string, string>) => Operator<void>;
31
- export declare const Redirect: (url: string) => Operator<void>;
32
- export declare const Middleware: (middleware: ApiMiddleware) => Operator<void>;
31
+ export declare const Redirect: (url: string) => Operator<void>;
@@ -31,10 +31,10 @@ export declare enum HttpMethod {
31
31
  Head = "HEAD",
32
32
  }
33
33
  export declare type InputSchemaMeata = Extract<HttpMetadata, HttpMetadata.Data | HttpMetadata.Query | HttpMetadata.Headers | HttpMetadata.Params>;
34
- export declare type ValidateFunc = (helper: ExecuteHelper, next: () => Promise<any>) => Promise<any>;
34
+ export declare type ExecuteFunc = (helper: ExecuteHelper, next: () => Promise<any>) => Promise<any>;
35
35
  export declare type ExecuteHelper = {
36
36
  result?: any;
37
- readonly inputs: any;
37
+ inputs: any;
38
38
  };
39
39
  export declare type MetadataHelper = {
40
40
  setMetadata: <T = any>(key: any, value: T) => void;
@@ -44,7 +44,8 @@ export declare type Operator<Input> = {
44
44
  name: string;
45
45
  inputType?: Input;
46
46
  metadata?: (helper: MetadataHelper) => void;
47
- validate?: ValidateFunc;
47
+ validate?: ExecuteFunc;
48
+ pipe?: ExecuteFunc;
48
49
  };
49
50
  export declare type MaybeAsync<T> = Promise<T> | T;
50
51
  export declare type ApiRunner<Input extends object | void | unknown, Output extends MaybeAsync<any>> = (...args: Input extends void ? never : [input: Input]) => Output;
@@ -52,5 +53,4 @@ export declare type NonNullable<T> = Exclude<T, null | undefined>;
52
53
  export declare type ExtractInputType<T> = { [key in keyof T]: T[key] extends Operator<any> ? NonNullable<T[key]['inputType']> : void };
53
54
  export declare type ArrayToObject<T, R = {}> = T extends [infer First, ...infer Rest] ? First extends PromiseLike<infer PromiseValue> ? PromiseValue : First extends object ? Merge<First, ArrayToObject<Rest, R>> : ArrayToObject<Rest, R> : R;
54
55
  export declare type AsyncFunction = (...args: any[]) => Promise<any>;
55
- export declare const httpMethods: HttpMethod[];
56
- export declare type ApiMiddleware = (next: () => any | Promise<any>) => any;
56
+ export declare const httpMethods: HttpMethod[];
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "1.1.3",
14
+ "version": "1.2.1-beta.1",
15
15
  "jsnext:source": "./src/index.ts",
16
16
  "types": "./dist/types/index.d.ts",
17
17
  "main": "./dist/js/node/index.js",
@@ -25,8 +25,8 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@babel/runtime": "^7.18.0",
28
- "@modern-js/bff-runtime": "^1.3.0",
29
- "@modern-js/utils": "^1.7.12",
28
+ "@modern-js/bff-runtime": "^1.4.0",
29
+ "@modern-js/utils": "^1.8.0",
30
30
  "esbuild": "^0.14.38",
31
31
  "esbuild-register": "^3.3.3",
32
32
  "koa-compose": "^4.1.0",
@@ -58,7 +58,8 @@
58
58
  },
59
59
  "publishConfig": {
60
60
  "registry": "https://registry.npmjs.org/",
61
- "access": "public"
61
+ "access": "public",
62
+ "types": "./dist/types/index.d.ts"
62
63
  },
63
64
  "wireit": {
64
65
  "build": {