@modern-js/plugin-express 1.21.3 → 2.0.0-beta.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.
package/CHANGELOG.md CHANGED
@@ -1,13 +1,35 @@
1
1
  # @modern-js/plugin-express
2
2
 
3
- ## 1.21.3
4
-
5
- ### Patch Changes
6
-
7
- - @modern-js/bff-core@1.21.3
8
- - @modern-js/bff-runtime@1.21.3
9
- - @modern-js/types@1.21.3
10
- - @modern-js/utils@1.21.3
3
+ ## 2.0.0-beta.0
4
+
5
+ ### Major Changes
6
+
7
+ - dda38c9: chore: v2
8
+
9
+ ### Patch Changes
10
+
11
+ - 8d24bed25: fix: compat Hook API in /server namespace
12
+ fix: 在 @modern-js/runtime/server 命名空间下兼容 Hook API
13
+ - 3bbea92b2: feat: support Hook、Middleware new API
14
+ feat: 支持 Hook、Middleware 的新 API
15
+ - Updated dependencies [a2509bf]
16
+ - Updated dependencies [edd1cfb1a]
17
+ - Updated dependencies [cc971eabf]
18
+ - Updated dependencies [5b9049f]
19
+ - Updated dependencies [6bda14ed7]
20
+ - Updated dependencies [b8bbe036c]
21
+ - Updated dependencies [d5a31df78]
22
+ - Updated dependencies [dda38c9]
23
+ - Updated dependencies [102d32e4b]
24
+ - Updated dependencies [8b8e1bb57]
25
+ - Updated dependencies [3bbea92b2]
26
+ - Updated dependencies [abf3421]
27
+ - Updated dependencies [543be95]
28
+ - Updated dependencies [14b712d]
29
+ - @modern-js/bff-core@2.0.0-beta.0
30
+ - @modern-js/utils@2.0.0-beta.0
31
+ - @modern-js/types@2.0.0-beta.0
32
+ - @modern-js/bff-runtime@2.0.0-beta.0
11
33
 
12
34
  ## 1.21.2
13
35
 
@@ -23,7 +23,8 @@ export default (() => ({
23
23
  return {
24
24
  source: {
25
25
  alias: {
26
- '@modern-js/runtime/server': relativeRuntimePath
26
+ '@modern-js/runtime/server': relativeRuntimePath,
27
+ '@modern-js/runtime/express': relativeRuntimePath
27
28
  }
28
29
  }
29
30
  };
@@ -31,7 +32,8 @@ export default (() => ({
31
32
  return {
32
33
  source: {
33
34
  alias: {
34
- '@modern-js/runtime/server': serverRuntimePath
35
+ '@modern-js/runtime/server': serverRuntimePath,
36
+ '@modern-js/runtime/express': serverRuntimePath
35
37
  }
36
38
  }
37
39
  };
@@ -51,6 +51,7 @@ const initApp = app => {
51
51
  export default (() => ({
52
52
  name: '@modern-js/plugin-express',
53
53
  pre: ['@modern-js/plugin-bff'],
54
+ post: ['@modern-js/plugin-server'],
54
55
  setup: api => ({
55
56
  async prepareApiServer({
56
57
  pwd,
@@ -133,7 +134,15 @@ export default (() => ({
133
134
 
134
135
  prepareWebServer({
135
136
  config
136
- }) {
137
+ }, next) {
138
+ var _userConfig$server;
139
+
140
+ const userConfig = api.useConfigContext();
141
+
142
+ if (userConfig !== null && userConfig !== void 0 && (_userConfig$server = userConfig.server) !== null && _userConfig$server !== void 0 && _userConfig$server.disableFrameworkExt) {
143
+ return next();
144
+ }
145
+
137
146
  const app = express();
138
147
  initApp(app);
139
148
 
@@ -145,7 +154,14 @@ export default (() => ({
145
154
  initMiddlewares(middleware, app);
146
155
  }
147
156
 
148
- return (req, res) => new Promise((resolve, reject) => {
157
+ return ctx => new Promise((resolve, reject) => {
158
+ const {
159
+ source: {
160
+ req,
161
+ res
162
+ }
163
+ } = ctx;
164
+
149
165
  const handler = err => {
150
166
  if (err) {
151
167
  return reject(err);
@@ -37,7 +37,8 @@ var _default = () => ({
37
37
  return {
38
38
  source: {
39
39
  alias: {
40
- '@modern-js/runtime/server': relativeRuntimePath
40
+ '@modern-js/runtime/server': relativeRuntimePath,
41
+ '@modern-js/runtime/express': relativeRuntimePath
41
42
  }
42
43
  }
43
44
  };
@@ -45,7 +46,8 @@ var _default = () => ({
45
46
  return {
46
47
  source: {
47
48
  alias: {
48
- '@modern-js/runtime/server': serverRuntimePath
49
+ '@modern-js/runtime/server': serverRuntimePath,
50
+ '@modern-js/runtime/express': serverRuntimePath
49
51
  }
50
52
  }
51
53
  };
@@ -71,6 +71,7 @@ const initApp = app => {
71
71
  var _default = () => ({
72
72
  name: '@modern-js/plugin-express',
73
73
  pre: ['@modern-js/plugin-bff'],
74
+ post: ['@modern-js/plugin-server'],
74
75
  setup: api => ({
75
76
  async prepareApiServer({
76
77
  pwd,
@@ -153,7 +154,15 @@ var _default = () => ({
153
154
 
154
155
  prepareWebServer({
155
156
  config
156
- }) {
157
+ }, next) {
158
+ var _userConfig$server;
159
+
160
+ const userConfig = api.useConfigContext();
161
+
162
+ if (userConfig !== null && userConfig !== void 0 && (_userConfig$server = userConfig.server) !== null && _userConfig$server !== void 0 && _userConfig$server.disableFrameworkExt) {
163
+ return next();
164
+ }
165
+
157
166
  const app = (0, _express.default)();
158
167
  initApp(app);
159
168
 
@@ -165,7 +174,14 @@ var _default = () => ({
165
174
  initMiddlewares(middleware, app);
166
175
  }
167
176
 
168
- return (req, res) => new Promise((resolve, reject) => {
177
+ return ctx => new Promise((resolve, reject) => {
178
+ const {
179
+ source: {
180
+ req,
181
+ res
182
+ }
183
+ } = ctx;
184
+
169
185
  const handler = err => {
170
186
  if (err) {
171
187
  return reject(err);
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "1.21.3",
14
+ "version": "2.0.0-beta.0",
15
15
  "jsnext:source": "./src/index.ts",
16
16
  "types": "./dist/types/index.d.ts",
17
17
  "main": "./dist/js/node/index.js",
@@ -34,10 +34,10 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "@babel/runtime": "^7.18.0",
37
- "@modern-js/bff-core": "1.21.3",
38
- "@modern-js/bff-runtime": "1.21.3",
39
- "@modern-js/types": "1.21.3",
40
- "@modern-js/utils": "1.21.3",
37
+ "@modern-js/bff-core": "2.0.0-beta.0",
38
+ "@modern-js/bff-runtime": "2.0.0-beta.0",
39
+ "@modern-js/types": "2.0.0-beta.0",
40
+ "@modern-js/utils": "2.0.0-beta.0",
41
41
  "cookie-parser": "^1.4.5",
42
42
  "finalhandler": "^1.1.2",
43
43
  "formidable": "^1.2.2",
@@ -45,10 +45,10 @@
45
45
  "type-is": "^1.6.18"
46
46
  },
47
47
  "devDependencies": {
48
- "@modern-js/core": "1.21.3",
49
- "@modern-js/server-core": "1.21.3",
50
- "@scripts/build": "1.21.3",
51
- "@scripts/jest-config": "1.21.3",
48
+ "@modern-js/core": "2.0.0-beta.0",
49
+ "@modern-js/server-core": "2.0.0-beta.0",
50
+ "@scripts/build": "2.0.0-beta.0",
51
+ "@scripts/jest-config": "2.0.0-beta.0",
52
52
  "@types/cookie-parser": "^1.4.2",
53
53
  "@types/express": "^4.17.13",
54
54
  "@types/finalhandler": "^1.1.1",
@@ -75,32 +75,9 @@
75
75
  "registry": "https://registry.npmjs.org/",
76
76
  "access": "public"
77
77
  },
78
- "wireit": {
79
- "build": {
80
- "command": "modern build",
81
- "files": [
82
- "src/**/*",
83
- "tsconfig.json",
84
- "package.json"
85
- ],
86
- "output": [
87
- "dist/**/*"
88
- ]
89
- },
90
- "test": {
91
- "command": "jest --passWithNoTests",
92
- "files": [
93
- "src/**/*",
94
- "tsconfig.json",
95
- "package.json",
96
- "tests/**/*"
97
- ],
98
- "output": []
99
- }
100
- },
101
78
  "scripts": {
102
79
  "new": "modern new",
103
- "build": "wireit",
104
- "test": "wireit"
80
+ "build": "modern build",
81
+ "test": "jest --passWithNoTests"
105
82
  }
106
83
  }
package/types.d.ts CHANGED
@@ -1,10 +1,40 @@
1
1
  /// <reference path="./dist/types/index.d.ts" />
2
2
 
3
+ declare module '@modern-js/runtime/express' {
4
+ import { Request, Response, RequestHandler } from 'express';
5
+
6
+ type Context = { req: Request; res: Response };
7
+
8
+ export const Pipe: import('./src/runtime').Pipe;
9
+ export const Middleware: import('./src/runtime').Middleware;
10
+
11
+ export function useContext(): Context;
12
+
13
+ export type { RequestHandler };
14
+
15
+ export * from '@modern-js/bff-core';
16
+ }
17
+
18
+ // Todo: remove on next version
3
19
  declare module '@modern-js/runtime/server' {
4
20
  import { Request, Response, RequestHandler } from 'express';
5
21
 
22
+ import type { AfterMatchContext, AfterRenderContext, NextFunction } from '@modern-js/types';
23
+
24
+ export type AfterRenderHook = (
25
+ context: AfterRenderContext,
26
+ next: NextFunction,
27
+ ) => void;
28
+
29
+ export type AfterMatchHook = (
30
+ context: AfterMatchContext,
31
+ next: NextFunction,
32
+ ) => void;
33
+
6
34
  type ExpressOptions = {
7
35
  addMiddleware: (...input: RequestHandler[]) => void;
36
+ afterRender: (hook: AfterRenderHook) => void;
37
+ afterMatch: (hook: AfterMatchHook) => void;
8
38
  };
9
39
 
10
40
  type ExpressAttacher = (options: ExpressOptions) => void;
@@ -18,5 +48,7 @@ declare module '@modern-js/runtime/server' {
18
48
 
19
49
  export function hook(attacher: ExpressAttacher): ExpressAttacher;
20
50
 
51
+ export type { RequestHandler };
52
+
21
53
  export * from '@modern-js/bff-core';
22
54
  }