@modern-js/plugin-express 2.0.0-beta.3 → 2.0.0-beta.6

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.
@@ -1,35 +1,87 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ var __export = (target, all) => {
22
+ for (var name in all)
23
+ __defProp(target, name, { get: all[name], enumerable: true });
24
+ };
25
+ var __copyProps = (to, from, except, desc) => {
26
+ if (from && typeof from === "object" || typeof from === "function") {
27
+ for (let key of __getOwnPropNames(from))
28
+ if (!__hasOwnProp.call(to, key) && key !== except)
29
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
30
+ }
31
+ return to;
32
+ };
33
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
34
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
35
+ mod
36
+ ));
37
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
+ var __async = (__this, __arguments, generator) => {
39
+ return new Promise((resolve, reject) => {
40
+ var fulfilled = (value) => {
41
+ try {
42
+ step(generator.next(value));
43
+ } catch (e) {
44
+ reject(e);
45
+ }
46
+ };
47
+ var rejected = (value) => {
48
+ try {
49
+ step(generator.throw(value));
50
+ } catch (e) {
51
+ reject(e);
52
+ }
53
+ };
54
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
55
+ step((generator = generator.apply(__this, __arguments)).next());
56
+ });
57
+ };
58
+ var utils_exports = {};
59
+ __export(utils_exports, {
60
+ createRouteHandler: () => createRouteHandler,
61
+ isNormalMethod: () => isNormalMethod
5
62
  });
6
- exports.isNormalMethod = exports.createRouteHandler = void 0;
7
- require("reflect-metadata");
8
- var _bffCore = require("@modern-js/bff-core");
9
- var _bffRuntime = require("@modern-js/bff-runtime");
10
- var _typeIs = _interopRequireDefault(require("type-is"));
11
- var _formidable = _interopRequireDefault(require("formidable"));
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
63
+ module.exports = __toCommonJS(utils_exports);
64
+ var import_reflect_metadata = require("reflect-metadata");
65
+ var import_bff_core = require("@modern-js/bff-core");
66
+ var import_bff_runtime = require("@modern-js/bff-runtime");
67
+ var import_type_is = __toESM(require("type-is"));
68
+ var import_formidable = __toESM(require("formidable"));
16
69
  const handleResponseMeta = (res, handler) => {
17
- const responseMeta = Reflect.getMetadata(_bffCore.HttpMetadata.Response, handler);
70
+ const responseMeta = Reflect.getMetadata(import_bff_core.HttpMetadata.Response, handler);
18
71
  if (Array.isArray(responseMeta)) {
19
72
  for (const meta of responseMeta) {
20
73
  const metaType = meta.type;
21
74
  const metaValue = meta.value;
22
75
  switch (metaType) {
23
- case _bffCore.ResponseMetaType.Headers:
24
- // eslint-disable-next-line @typescript-eslint/ban-types
76
+ case import_bff_core.ResponseMetaType.Headers:
25
77
  for (const [key, value] of Object.entries(metaValue)) {
26
78
  res.append(key, value);
27
79
  }
28
80
  break;
29
- case _bffCore.ResponseMetaType.Redirect:
81
+ case import_bff_core.ResponseMetaType.Redirect:
30
82
  res.redirect(metaValue);
31
83
  break;
32
- case _bffCore.ResponseMetaType.StatusCode:
84
+ case import_bff_core.ResponseMetaType.StatusCode:
33
85
  res.status(metaValue);
34
86
  break;
35
87
  default:
@@ -38,91 +90,86 @@ const handleResponseMeta = (res, handler) => {
38
90
  }
39
91
  }
40
92
  };
41
- const createRouteHandler = handler => {
42
- const apiHandler = async (req, res, next) => {
43
- const input = await getInputFromRequest(req);
44
- if ((0, _bffCore.isWithMetaHandler)(handler)) {
93
+ const createRouteHandler = (handler) => {
94
+ const apiHandler = (req, res, next) => __async(void 0, null, function* () {
95
+ const input = yield getInputFromRequest(req);
96
+ if ((0, import_bff_core.isWithMetaHandler)(handler)) {
45
97
  try {
46
98
  handleResponseMeta(res, handler);
47
99
  if (res.headersSent) {
48
100
  return;
49
101
  }
50
- const result = await handler(input);
51
- if (result && typeof result === 'object') {
52
- // eslint-disable-next-line consistent-return
102
+ const result = yield handler(input);
103
+ if (result && typeof result === "object") {
53
104
  return res.json(result);
54
105
  }
55
106
  } catch (error) {
56
- if (error instanceof _bffCore.ValidationError) {
107
+ if (error instanceof import_bff_core.ValidationError) {
57
108
  res.status(error.status);
58
- // eslint-disable-next-line consistent-return
59
109
  return res.json({
60
110
  message: error.message
61
111
  });
62
112
  }
63
113
  throw error;
64
114
  }
65
- } else if ((0, _bffRuntime.isSchemaHandler)(handler)) {
66
- const result = await handler(input);
67
- if (result.type !== 'HandleSuccess') {
68
- if (result.type === 'InputValidationError') {
115
+ } else if ((0, import_bff_runtime.isSchemaHandler)(handler)) {
116
+ const result1 = yield handler(input);
117
+ if (result1.type !== "HandleSuccess") {
118
+ if (result1.type === "InputValidationError") {
69
119
  res.status(400);
70
120
  } else {
71
121
  res.status(500);
72
122
  }
73
- // eslint-disable-next-line consistent-return
74
- return res.json(result.message);
123
+ return res.json(result1.message);
75
124
  } else {
76
125
  res.status(200);
77
- // eslint-disable-next-line consistent-return
78
- return res.json(result.value);
126
+ return res.json(result1.value);
79
127
  }
80
128
  } else {
81
129
  const args = Object.values(input.params).concat(input);
82
130
  try {
83
- const body = await handler(...args);
84
-
85
- // this should never happen
131
+ const body = yield handler(...args);
86
132
  if (res.headersSent) {
87
- // eslint-disable-next-line consistent-return
88
- return await Promise.resolve();
133
+ return yield Promise.resolve();
89
134
  }
90
- if (typeof body !== 'undefined') {
91
- // eslint-disable-next-line consistent-return
135
+ if (typeof body !== "undefined") {
92
136
  return res.json(body);
93
137
  }
94
138
  } catch (e) {
95
- // eslint-disable-next-line consistent-return
96
139
  return next(e);
97
140
  }
98
141
  }
99
- };
142
+ });
100
143
  Object.defineProperties(apiHandler, Object.getOwnPropertyDescriptors(handler));
101
144
  return apiHandler;
102
145
  };
103
- exports.createRouteHandler = createRouteHandler;
104
- const isNormalMethod = httpMethod => _bffCore.httpMethods.includes(httpMethod);
105
- exports.isNormalMethod = isNormalMethod;
106
- const getInputFromRequest = async request => {
146
+ const isNormalMethod = (httpMethod) => import_bff_core.httpMethods.includes(httpMethod);
147
+ const getInputFromRequest = (request) => __async(void 0, null, function* () {
107
148
  const draft = {
108
149
  params: request.params,
109
150
  query: request.query,
110
151
  headers: request.headers,
111
152
  cookies: request.headers.cookie
112
153
  };
113
- if ((0, _typeIs.default)(request, ['application/json'])) {
154
+ if ((0, import_type_is.default)(request, [
155
+ "application/json"
156
+ ])) {
114
157
  draft.data = request.body;
115
- } else if ((0, _typeIs.default)(request, ['multipart/form-data'])) {
116
- draft.formData = await resolveFormData(request);
117
- } else if ((0, _typeIs.default)(request, ['application/x-www-form-urlencoded'])) {
158
+ } else if ((0, import_type_is.default)(request, [
159
+ "multipart/form-data"
160
+ ])) {
161
+ draft.formData = yield resolveFormData(request);
162
+ } else if ((0, import_type_is.default)(request, [
163
+ "application/x-www-form-urlencoded"
164
+ ])) {
118
165
  draft.formUrlencoded = request.body;
119
166
  } else {
120
167
  draft.body = request.body;
121
168
  }
122
169
  return draft;
123
- };
124
- const resolveFormData = request => {
125
- const form = (0, _formidable.default)({
170
+ });
171
+ const resolveFormData = (request) => {
172
+ const form = (0, import_formidable.default)({
126
173
  multiples: true
127
174
  });
128
175
  return new Promise((resolve, reject) => {
@@ -130,7 +177,12 @@ const resolveFormData = request => {
130
177
  if (err) {
131
178
  reject(err);
132
179
  }
133
- resolve(_objectSpread(_objectSpread({}, fields), files));
180
+ resolve(__spreadValues(__spreadValues({}, fields), files));
134
181
  });
135
182
  });
136
- };
183
+ };
184
+ // Annotate the CommonJS export names for ESM import in node:
185
+ 0 && (module.exports = {
186
+ createRouteHandler,
187
+ isNormalMethod
188
+ });
@@ -0,0 +1,58 @@
1
+ import * as path from "path";
2
+ import { createRuntimeExportsUtils } from "@modern-js/utils";
3
+ import { getRelativeRuntimePath } from "@modern-js/bff-core";
4
+ var cli_default = function() {
5
+ return {
6
+ name: "@modern-js/plugin-express",
7
+ setup: function(api) {
8
+ var bffExportsUtils;
9
+ var useAppContext = api.useAppContext;
10
+ var runtimeModulePath = path.resolve(__dirname, "../runtime");
11
+ return {
12
+ config: function config() {
13
+ var appContext = useAppContext();
14
+ var appDirectory = appContext.appDirectory;
15
+ bffExportsUtils = createRuntimeExportsUtils(appContext.internalDirectory, "server");
16
+ var serverRuntimePath = bffExportsUtils.getPath();
17
+ var relativeRuntimePath = getRelativeRuntimePath(appDirectory, serverRuntimePath);
18
+ if (process.env.NODE_ENV === "production") {
19
+ return {
20
+ source: {
21
+ alias: {
22
+ "@modern-js/runtime/server": relativeRuntimePath,
23
+ "@modern-js/runtime/express": relativeRuntimePath
24
+ }
25
+ }
26
+ };
27
+ } else {
28
+ return {
29
+ source: {
30
+ alias: {
31
+ "@modern-js/runtime/server": serverRuntimePath,
32
+ "@modern-js/runtime/express": serverRuntimePath
33
+ }
34
+ }
35
+ };
36
+ }
37
+ },
38
+ collectServerPlugins: function collectServerPlugins(param) {
39
+ var plugins = param.plugins;
40
+ plugins.push({
41
+ "@modern-js/plugin-express": "@modern-js/plugin-express/server"
42
+ });
43
+ return {
44
+ plugins: plugins
45
+ };
46
+ },
47
+ addRuntimeExports: function addRuntimeExports(input) {
48
+ var currentFile = bffExportsUtils.getPath();
49
+ var relativeRuntimeModulePath = path.relative(path.dirname(currentFile), runtimeModulePath);
50
+ var relativeFramePath = path.relative(path.dirname(currentFile), require.resolve("express"));
51
+ bffExportsUtils.addExport("const pluginRuntime = require('".concat(relativeRuntimeModulePath, "');\n const express = require('").concat(relativeFramePath, "')\n module.exports = {\n express: express,\n ...pluginRuntime\n }\n "));
52
+ return input;
53
+ }
54
+ };
55
+ }
56
+ };
57
+ };
58
+ export { cli_default as default };
@@ -0,0 +1,3 @@
1
+ import { createStorage } from "@modern-js/bff-core";
2
+ var ref = createStorage(), run = ref.run, useContext = ref.useContext;
3
+ export { run, useContext };
@@ -0,0 +1,4 @@
1
+ import plugin from "./plugin";
2
+ export * from "./context";
3
+ var src_default = plugin;
4
+ export { src_default as default };