@modern-js/bff-core 2.7.1-alpha.6 → 2.8.0

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.
Files changed (38) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/package.json +8 -8
  3. package/dist/js/modern/api.js +0 -69
  4. package/dist/js/modern/client/generate-client.js +0 -79
  5. package/dist/js/modern/client/index.js +0 -1
  6. package/dist/js/modern/client/result.js +0 -22
  7. package/dist/js/modern/errors/http.js +0 -16
  8. package/dist/js/modern/index.js +0 -23
  9. package/dist/js/modern/operators/http.js +0 -210
  10. package/dist/js/modern/router/constants.js +0 -32
  11. package/dist/js/modern/router/index.js +0 -236
  12. package/dist/js/modern/router/types.js +0 -0
  13. package/dist/js/modern/router/utils.js +0 -83
  14. package/dist/js/modern/types.js +0 -45
  15. package/dist/js/modern/utils/alias.js +0 -76
  16. package/dist/js/modern/utils/debug.js +0 -5
  17. package/dist/js/modern/utils/index.js +0 -8
  18. package/dist/js/modern/utils/meta.js +0 -8
  19. package/dist/js/modern/utils/storage.js +0 -42
  20. package/dist/js/modern/utils/validate.js +0 -43
  21. package/dist/js/node/api.js +0 -98
  22. package/dist/js/node/client/generate-client.js +0 -109
  23. package/dist/js/node/client/index.js +0 -17
  24. package/dist/js/node/client/result.js +0 -46
  25. package/dist/js/node/errors/http.js +0 -40
  26. package/dist/js/node/index.js +0 -48
  27. package/dist/js/node/operators/http.js +0 -241
  28. package/dist/js/node/router/constants.js +0 -61
  29. package/dist/js/node/router/index.js +0 -256
  30. package/dist/js/node/router/types.js +0 -15
  31. package/dist/js/node/router/utils.js +0 -116
  32. package/dist/js/node/types.js +0 -73
  33. package/dist/js/node/utils/alias.js +0 -107
  34. package/dist/js/node/utils/debug.js +0 -28
  35. package/dist/js/node/utils/index.js +0 -32
  36. package/dist/js/node/utils/meta.js +0 -32
  37. package/dist/js/node/utils/storage.js +0 -71
  38. package/dist/js/node/utils/validate.js +0 -74
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # @modern-js/bff-core
2
2
 
3
+ ## 2.8.0
4
+
5
+ ### Patch Changes
6
+
7
+ - 4cfea8ce49: fix: remove esbuild from bff-core
8
+ fix: 从 bff-core 移除 esbuild
9
+ - Updated dependencies [1104a9f18b]
10
+ - Updated dependencies [1f6ca2c7fb]
11
+ - @modern-js/utils@2.8.0
12
+ - @modern-js/bff-runtime@2.8.0
13
+
3
14
  ## 2.7.0
4
15
 
5
16
  ### Minor Changes
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "2.7.1-alpha.6",
14
+ "version": "2.8.0",
15
15
  "jsnext:source": "./src/index.ts",
16
16
  "types": "./dist/types/index.d.ts",
17
17
  "main": "./dist/cjs/index.js",
@@ -25,15 +25,12 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@babel/runtime": "^7.18.0",
28
- "@modern-js/bff-runtime": "2.7.0",
29
- "@modern-js/utils": "2.7.0",
30
28
  "koa-compose": "^4.1.0",
31
- "reflect-metadata": "^0.1.13"
29
+ "reflect-metadata": "^0.1.13",
30
+ "@modern-js/bff-runtime": "2.8.0",
31
+ "@modern-js/utils": "2.8.0"
32
32
  },
33
33
  "devDependencies": {
34
- "@modern-js/types": "2.7.0",
35
- "@scripts/build": "2.7.0",
36
- "@scripts/jest-config": "2.7.0",
37
34
  "@types/jest": "^27",
38
35
  "@types/koa-compose": "^3.2.5",
39
36
  "@types/node": "^14",
@@ -42,7 +39,10 @@
42
39
  "tsconfig-paths": "^4.1.2",
43
40
  "type-fest": "2.15.0",
44
41
  "typescript": "^4",
45
- "zod": "^3.17.3"
42
+ "zod": "^3.17.3",
43
+ "@modern-js/types": "2.8.0",
44
+ "@scripts/build": "2.8.0",
45
+ "@scripts/jest-config": "2.8.0"
46
46
  },
47
47
  "peerDependencies": {
48
48
  "zod": "^3.17.3",
@@ -1,69 +0,0 @@
1
- var __async = (__this, __arguments, generator) => {
2
- return new Promise((resolve, reject) => {
3
- var fulfilled = (value) => {
4
- try {
5
- step(generator.next(value));
6
- } catch (e) {
7
- reject(e);
8
- }
9
- };
10
- var rejected = (value) => {
11
- try {
12
- step(generator.throw(value));
13
- } catch (e) {
14
- reject(e);
15
- }
16
- };
17
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
- step((generator = generator.apply(__this, __arguments)).next());
19
- });
20
- };
21
- import "reflect-metadata";
22
- import compose from "koa-compose";
23
- import { validateFunction, HANDLER_WITH_META } from "./utils";
24
- function Api(...args) {
25
- const handler = args.pop();
26
- validateFunction(handler, "Apihandler");
27
- const operators = args;
28
- const metadataHelper = {
29
- getMetadata(key) {
30
- return Reflect.getMetadata(key, runner);
31
- },
32
- setMetadata(key, value) {
33
- return Reflect.defineMetadata(key, value, runner);
34
- }
35
- };
36
- for (const operator of operators) {
37
- if (operator.metadata) {
38
- operator.metadata(metadataHelper);
39
- }
40
- }
41
- const validateHandlers = operators.filter((operator) => operator.validate).map((operator) => operator.validate);
42
- const pipeHandlers = operators.filter((operator) => operator.execute).map((operator) => operator.execute);
43
- function runner(inputs) {
44
- return __async(this, null, function* () {
45
- const executeHelper = {
46
- result: null,
47
- get inputs() {
48
- return inputs;
49
- },
50
- set inputs(val) {
51
- inputs = val;
52
- }
53
- };
54
- const stack = [...validateHandlers, ...pipeHandlers];
55
- stack.push((helper, next) => __async(this, null, function* () {
56
- const res = yield handler(helper.inputs);
57
- helper.result = res;
58
- return next();
59
- }));
60
- yield compose(stack)(executeHelper);
61
- return executeHelper.result;
62
- });
63
- }
64
- runner[HANDLER_WITH_META] = true;
65
- return runner;
66
- }
67
- export {
68
- Api
69
- };
@@ -1,79 +0,0 @@
1
- var __async = (__this, __arguments, generator) => {
2
- return new Promise((resolve, reject) => {
3
- var fulfilled = (value) => {
4
- try {
5
- step(generator.next(value));
6
- } catch (e) {
7
- reject(e);
8
- }
9
- };
10
- var rejected = (value) => {
11
- try {
12
- step(generator.throw(value));
13
- } catch (e) {
14
- reject(e);
15
- }
16
- };
17
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
- step((generator = generator.apply(__this, __arguments)).next());
19
- });
20
- };
21
- import * as path from "path";
22
- import { ApiRouter } from "../router";
23
- import { Ok, Err } from "./result";
24
- const DEFAULT_CLIENT_REQUEST_CREATOR = "@modern-js/create-request";
25
- const generateClient = (_0) => __async(void 0, [_0], function* ({
26
- resourcePath,
27
- apiDir,
28
- prefix,
29
- port,
30
- target,
31
- requestCreator,
32
- fetcher,
33
- requireResolve = require.resolve
34
- }) {
35
- if (!requestCreator) {
36
- requestCreator = requireResolve(
37
- `${DEFAULT_CLIENT_REQUEST_CREATOR}${target ? `/${target}` : ""}`
38
- ).replace(/\\/g, "/");
39
- } else {
40
- let resolvedPath = requestCreator;
41
- try {
42
- resolvedPath = path.dirname(requireResolve(requestCreator));
43
- } catch (error) {
44
- }
45
- requestCreator = `${resolvedPath}${target ? `/${target}` : ""}`.replace(
46
- /\\/g,
47
- "/"
48
- );
49
- }
50
- const apiRouter = new ApiRouter({
51
- apiDir,
52
- prefix
53
- });
54
- const handlerInfos = apiRouter.getSingleModuleHandlers(resourcePath);
55
- if (!handlerInfos) {
56
- return Err(`generate client error: Cannot require module ${resourcePath}`);
57
- }
58
- let handlersCode = "";
59
- for (const handlerInfo of handlerInfos) {
60
- const { name, httpMethod, routePath } = handlerInfo;
61
- let exportStatement = `const ${name} =`;
62
- if (name.toLowerCase() === "default") {
63
- exportStatement = "default";
64
- }
65
- const upperHttpMethod = httpMethod.toUpperCase();
66
- const routeName = routePath;
67
- handlersCode += `export ${exportStatement} createRequest('${routeName}', '${upperHttpMethod}', ${process.env.PORT || String(port)}${fetcher ? `, fetch` : ""});
68
- `;
69
- }
70
- const importCode = `import { createRequest } from '${requestCreator}';
71
- ${fetcher ? `import { fetch } from '${fetcher}';
72
- ` : ""}`;
73
- return Ok(`${importCode}
74
- ${handlersCode}`);
75
- });
76
- export {
77
- DEFAULT_CLIENT_REQUEST_CREATOR,
78
- generateClient
79
- };
@@ -1 +0,0 @@
1
- export * from "./generate-client";
@@ -1,22 +0,0 @@
1
- const Err = (value) => {
2
- const err = {
3
- kind: "Err",
4
- value,
5
- isErr: true,
6
- isOk: false
7
- };
8
- return err;
9
- };
10
- const Ok = (value) => {
11
- const ok = {
12
- kind: "Ok",
13
- value,
14
- isErr: false,
15
- isOk: true
16
- };
17
- return ok;
18
- };
19
- export {
20
- Err,
21
- Ok
22
- };
@@ -1,16 +0,0 @@
1
- class HttpError extends Error {
2
- constructor(status, message) {
3
- super(message);
4
- this.status = status;
5
- }
6
- }
7
- class ValidationError extends HttpError {
8
- constructor(status, message) {
9
- super(status, message);
10
- this.code = "VALIDATION_ERROR";
11
- }
12
- }
13
- export {
14
- HttpError,
15
- ValidationError
16
- };
@@ -1,23 +0,0 @@
1
- import { Api } from "./api";
2
- import { HttpError, ValidationError } from "./errors/http";
3
- export * from "./router";
4
- export * from "./types";
5
- export * from "./client";
6
- export * from "./operators/http";
7
- import {
8
- getRelativeRuntimePath,
9
- HANDLER_WITH_META,
10
- isWithMetaHandler,
11
- createStorage,
12
- registerPaths
13
- } from "./utils";
14
- export {
15
- Api,
16
- HANDLER_WITH_META,
17
- HttpError,
18
- ValidationError,
19
- createStorage,
20
- getRelativeRuntimePath,
21
- isWithMetaHandler,
22
- registerPaths
23
- };
@@ -1,210 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __async = (__this, __arguments, generator) => {
21
- return new Promise((resolve, reject) => {
22
- var fulfilled = (value) => {
23
- try {
24
- step(generator.next(value));
25
- } catch (e) {
26
- reject(e);
27
- }
28
- };
29
- var rejected = (value) => {
30
- try {
31
- step(generator.throw(value));
32
- } catch (e) {
33
- reject(e);
34
- }
35
- };
36
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
- step((generator = generator.apply(__this, __arguments)).next());
38
- });
39
- };
40
- import {
41
- HttpMetadata,
42
- OperatorType,
43
- HttpMethod,
44
- TriggerType,
45
- ResponseMetaType
46
- } from "../types";
47
- import { ValidationError } from "../errors/http";
48
- const validateInput = (schema, input) => __async(void 0, null, function* () {
49
- try {
50
- return yield schema.parseAsync(input);
51
- } catch (error) {
52
- const { z: zod } = require("zod");
53
- if (error instanceof zod.ZodError) {
54
- throw new ValidationError(400, error.message);
55
- }
56
- throw error;
57
- }
58
- });
59
- const createHttpOperator = (method) => {
60
- return (urlPath) => {
61
- return {
62
- name: method,
63
- metadata({ setMetadata }) {
64
- setMetadata(OperatorType.Trigger, {
65
- type: TriggerType.Http,
66
- path: urlPath,
67
- method
68
- });
69
- }
70
- };
71
- };
72
- };
73
- const Get = createHttpOperator(HttpMethod.Get);
74
- const Post = createHttpOperator(HttpMethod.Post);
75
- const Put = createHttpOperator(HttpMethod.Put);
76
- const Delete = createHttpOperator(HttpMethod.Delete);
77
- const Connect = createHttpOperator(HttpMethod.Connect);
78
- const Trace = createHttpOperator(HttpMethod.Trace);
79
- const Patch = createHttpOperator(HttpMethod.Patch);
80
- const Option = createHttpOperator(HttpMethod.Option);
81
- const Head = createHttpOperator(HttpMethod.Head);
82
- const Data = (schema) => {
83
- return {
84
- name: HttpMetadata.Data,
85
- metadata({ setMetadata }) {
86
- setMetadata(HttpMetadata.Data, schema);
87
- },
88
- validate(helper, next) {
89
- return __async(this, null, function* () {
90
- const {
91
- inputs: { data }
92
- } = helper;
93
- helper.inputs = __spreadProps(__spreadValues({}, helper.inputs), {
94
- data: yield validateInput(schema, data)
95
- });
96
- return next();
97
- });
98
- }
99
- };
100
- };
101
- const Query = (schema) => {
102
- return {
103
- name: HttpMetadata.Query,
104
- metadata({ setMetadata }) {
105
- setMetadata(HttpMetadata.Query, schema);
106
- },
107
- validate(helper, next) {
108
- return __async(this, null, function* () {
109
- const {
110
- inputs: { query }
111
- } = helper;
112
- helper.inputs = __spreadProps(__spreadValues({}, helper.inputs), {
113
- query: yield validateInput(schema, query)
114
- });
115
- return next();
116
- });
117
- }
118
- };
119
- };
120
- const Params = (schema) => {
121
- return {
122
- name: HttpMetadata.Params,
123
- metadata({ setMetadata }) {
124
- setMetadata(HttpMetadata.Params, schema);
125
- },
126
- validate(helper, next) {
127
- return __async(this, null, function* () {
128
- const {
129
- inputs: { params }
130
- } = helper;
131
- helper.inputs = __spreadProps(__spreadValues({}, helper.inputs), {
132
- params: yield validateInput(schema, params)
133
- });
134
- return next();
135
- });
136
- }
137
- };
138
- };
139
- const Headers = (schema) => {
140
- return {
141
- name: HttpMetadata.Headers,
142
- metadata({ setMetadata }) {
143
- setMetadata(HttpMetadata.Headers, schema);
144
- },
145
- validate(helper, next) {
146
- return __async(this, null, function* () {
147
- const {
148
- inputs: { headers }
149
- } = helper;
150
- helper.inputs = __spreadProps(__spreadValues({}, helper.inputs), {
151
- headers: yield validateInput(schema, headers)
152
- });
153
- return next();
154
- });
155
- }
156
- };
157
- };
158
- const setResponseMeta = (helper, type, value) => {
159
- const responseMetaData = helper.getMetadata(HttpMetadata.Response) || [];
160
- helper.setMetadata(HttpMetadata.Response, [
161
- ...responseMetaData,
162
- {
163
- type,
164
- value
165
- }
166
- ]);
167
- };
168
- const HttpCode = (statusCode) => {
169
- return {
170
- name: "HttpCode",
171
- metadata(helper) {
172
- setResponseMeta(helper, ResponseMetaType.StatusCode, statusCode);
173
- }
174
- };
175
- };
176
- const SetHeaders = (headers) => {
177
- return {
178
- name: "SetHeaders",
179
- metadata(helper) {
180
- setResponseMeta(helper, ResponseMetaType.Headers, headers);
181
- }
182
- };
183
- };
184
- const Redirect = (url) => {
185
- return {
186
- name: "Redirect",
187
- metadata(helper) {
188
- setResponseMeta(helper, ResponseMetaType.Redirect, url);
189
- }
190
- };
191
- };
192
- export {
193
- Connect,
194
- Data,
195
- Delete,
196
- Get,
197
- Head,
198
- Headers,
199
- HttpCode,
200
- Option,
201
- Params,
202
- Patch,
203
- Post,
204
- Put,
205
- Query,
206
- Redirect,
207
- SetHeaders,
208
- Trace,
209
- createHttpOperator
210
- };
@@ -1,32 +0,0 @@
1
- import { HttpMethod } from "../types";
2
- const AllHttpMethods = Object.values(HttpMethod);
3
- var APIMode = /* @__PURE__ */ ((APIMode2) => {
4
- APIMode2["FARMEWORK"] = "framework";
5
- APIMode2["FUNCTION"] = "function";
6
- return APIMode2;
7
- })(APIMode || {});
8
- const FRAMEWORK_MODE_LAMBDA_DIR = "lambda";
9
- const FRAMEWORK_MODE_APP_DIR = "app";
10
- const INDEX_SUFFIX = "index";
11
- const API_DIR = "api";
12
- const API_FILE_RULES = [
13
- "**/*.[tj]s",
14
- "!**/_*",
15
- "!**/_*/**/*.[tj]s",
16
- "!**/*.test.js",
17
- "!**/*.test.ts",
18
- "!**/*.d.ts",
19
- "!__test__/*.ts",
20
- "!__tests__/*.ts",
21
- "!node_modules/**",
22
- "!bootstrap.js"
23
- ];
24
- export {
25
- APIMode,
26
- API_DIR,
27
- API_FILE_RULES,
28
- AllHttpMethods,
29
- FRAMEWORK_MODE_APP_DIR,
30
- FRAMEWORK_MODE_LAMBDA_DIR,
31
- INDEX_SUFFIX
32
- };