@modern-js/plugin-server 2.0.0-beta.3 → 2.0.0-beta.4

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,5 +1,43 @@
1
1
  # @modern-js/plugin-server
2
2
 
3
+ ## 2.0.0-beta.4
4
+
5
+ ### Major Changes
6
+
7
+ - dda38c9c3e: chore: v2
8
+
9
+ ### Patch Changes
10
+
11
+ - 3bbea92b2a: feat: support Hook、Middleware new API
12
+ feat: 支持 Hook、Middleware 的新 API
13
+ - Updated dependencies [9b915e0c10]
14
+ - Updated dependencies [7879e8f]
15
+ - Updated dependencies [d4e8e6fb90]
16
+ - Updated dependencies [6aca875]
17
+ - Updated dependencies [2e6031955e]
18
+ - Updated dependencies [7b7d12c]
19
+ - Updated dependencies [92f0eade39]
20
+ - Updated dependencies [edd1cfb1af]
21
+ - Updated dependencies [cc971eabfc]
22
+ - Updated dependencies [5b9049f2e9]
23
+ - Updated dependencies [a8642da58f]
24
+ - Updated dependencies [92004d1906]
25
+ - Updated dependencies [b8bbe036c7]
26
+ - Updated dependencies [c2bb0f1745]
27
+ - Updated dependencies [d5a31df781]
28
+ - Updated dependencies [dda38c9c3e]
29
+ - Updated dependencies [3bbea92b2a]
30
+ - Updated dependencies [b710adb843]
31
+ - Updated dependencies [ea7cf06]
32
+ - Updated dependencies [bbe4c4a]
33
+ - Updated dependencies [e4558a0]
34
+ - Updated dependencies [abf3421a75]
35
+ - Updated dependencies [543be9558e]
36
+ - Updated dependencies [14b712da84]
37
+ - @modern-js/server-utils@2.0.0-beta.4
38
+ - @modern-js/utils@2.0.0-beta.4
39
+ - @modern-js/babel-compiler@2.0.0-beta.4
40
+
3
41
  ## 2.0.0-beta.3
4
42
 
5
43
  ### Major Changes
@@ -1,53 +1,72 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import { compile } from '@modern-js/server-utils';
4
- import { SHARED_DIR, SERVER_DIR } from '@modern-js/utils';
5
- const TS_CONFIG_FILENAME = 'tsconfig.json';
6
- export default (() => ({
7
- name: '@modern-js/plugin-server',
8
- setup: api => ({
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 fs from "fs";
22
+ import path from "path";
23
+ import { compile } from "@modern-js/server-utils";
24
+ import { SHARED_DIR, SERVER_DIR } from "@modern-js/utils";
25
+ const TS_CONFIG_FILENAME = "tsconfig.json";
26
+ var cli_default = () => ({
27
+ name: "@modern-js/plugin-server",
28
+ setup: (api) => ({
9
29
  config() {
10
30
  return {};
11
31
  },
12
- async afterBuild() {
13
- const {
14
- appDirectory,
15
- distDirectory
16
- } = api.useAppContext();
17
- const modernConfig = api.useResolvedConfigContext();
18
- const distDir = path.resolve(distDirectory);
19
- const serverDir = path.resolve(appDirectory, SERVER_DIR);
20
- const sharedDir = path.resolve(appDirectory, SHARED_DIR);
21
- const tsconfigPath = path.resolve(appDirectory, TS_CONFIG_FILENAME);
22
- const sourceDirs = [];
23
- if (fs.existsSync(serverDir)) {
24
- sourceDirs.push(serverDir);
25
- }
26
- if (fs.existsSync(sharedDir)) {
27
- sourceDirs.push(sharedDir);
28
- }
29
- const {
30
- server
31
- } = modernConfig;
32
- const {
33
- alias,
34
- globalVars
35
- } = modernConfig.source;
36
- const {
37
- babel
38
- } = modernConfig.tools;
39
- if (sourceDirs.length > 0) {
40
- await compile(appDirectory, {
41
- server,
42
- alias,
43
- globalVars,
44
- babelConfig: babel
45
- }, {
46
- sourceDirs,
47
- distDir,
48
- tsconfigPath
49
- });
50
- }
32
+ afterBuild() {
33
+ return __async(this, null, function* () {
34
+ const { appDirectory, distDirectory } = api.useAppContext();
35
+ const modernConfig = api.useResolvedConfigContext();
36
+ const distDir = path.resolve(distDirectory);
37
+ const serverDir = path.resolve(appDirectory, SERVER_DIR);
38
+ const sharedDir = path.resolve(appDirectory, SHARED_DIR);
39
+ const tsconfigPath = path.resolve(appDirectory, TS_CONFIG_FILENAME);
40
+ const sourceDirs = [];
41
+ if (fs.existsSync(serverDir)) {
42
+ sourceDirs.push(serverDir);
43
+ }
44
+ if (fs.existsSync(sharedDir)) {
45
+ sourceDirs.push(sharedDir);
46
+ }
47
+ const { server } = modernConfig;
48
+ const { alias, globalVars } = modernConfig.source;
49
+ const { babel } = modernConfig.tools;
50
+ if (sourceDirs.length > 0) {
51
+ yield compile(
52
+ appDirectory,
53
+ {
54
+ server,
55
+ alias,
56
+ globalVars,
57
+ babelConfig: babel
58
+ },
59
+ {
60
+ sourceDirs,
61
+ distDir,
62
+ tsconfigPath
63
+ }
64
+ );
65
+ }
66
+ });
51
67
  }
52
68
  })
53
- }));
69
+ });
70
+ export {
71
+ cli_default as default
72
+ };
File without changes
@@ -1,57 +1,75 @@
1
- const _excluded = ["default", "middleware"];
2
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
3
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
4
- 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; }
5
- import path from 'path';
6
- import { isProd, logger, requireExistModule, SERVER_DIR } from '@modern-js/utils';
7
- const WEB_APP_NAME = 'index';
8
- var HOOKS;
9
- (function (HOOKS) {
10
- HOOKS["AFTER_MATCH"] = "afterMatch";
11
- HOOKS["AFTER_RENDER"] = "afterRender";
12
- })(HOOKS || (HOOKS = {}));
1
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
2
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
3
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
4
+ var __objRest = (source, exclude) => {
5
+ var target = {};
6
+ for (var prop in source)
7
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
8
+ target[prop] = source[prop];
9
+ if (source != null && __getOwnPropSymbols)
10
+ for (var prop of __getOwnPropSymbols(source)) {
11
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
12
+ target[prop] = source[prop];
13
+ }
14
+ return target;
15
+ };
16
+ import path from "path";
17
+ import {
18
+ isProd,
19
+ logger,
20
+ requireExistModule,
21
+ SERVER_DIR
22
+ } from "@modern-js/utils";
23
+ const WEB_APP_NAME = "index";
24
+ var HOOKS = /* @__PURE__ */ ((HOOKS2) => {
25
+ HOOKS2["AFTER_MATCH"] = "afterMatch";
26
+ HOOKS2["AFTER_RENDER"] = "afterRender";
27
+ return HOOKS2;
28
+ })(HOOKS || {});
13
29
  class Storage {
14
30
  constructor() {
15
- _defineProperty(this, "middlewares", []);
16
- _defineProperty(this, "hooks", {});
31
+ this.middlewares = [];
32
+ this.hooks = {};
17
33
  }
18
34
  reset() {
19
35
  this.middlewares = [];
20
36
  this.hooks = {};
21
37
  }
22
38
  }
23
- const createTransformAPI = storage => new Proxy({}, {
24
- get(target, name) {
25
- if (name === 'addMiddleware') {
26
- return fn => storage.middlewares.push(fn);
39
+ const createTransformAPI = (storage) => new Proxy(
40
+ {},
41
+ {
42
+ get(target, name) {
43
+ if (name === "addMiddleware") {
44
+ return (fn) => storage.middlewares.push(fn);
45
+ }
46
+ return (fn) => {
47
+ logger.warn(
48
+ "declare hook in default export is to be deprecated, use named export instead"
49
+ );
50
+ storage.hooks[name] = fn;
51
+ };
27
52
  }
28
- return fn => {
29
- logger.warn('declare hook in default export is to be deprecated, use named export instead');
30
- storage.hooks[name] = fn;
31
- };
32
53
  }
33
- });
34
- const compose = middlewares => {
54
+ );
55
+ const compose = (middlewares) => {
35
56
  return (ctx, resolve, reject) => {
36
57
  let i = 0;
37
58
  const dispatch = () => {
38
- var _handler, _handler$catch;
59
+ var _a, _b;
39
60
  const handler = middlewares[i++];
40
61
  if (!handler) {
41
62
  return resolve();
42
63
  }
43
- return (_handler = handler(ctx, dispatch)) === null || _handler === void 0 ? void 0 : (_handler$catch = _handler.catch) === null || _handler$catch === void 0 ? void 0 : _handler$catch.call(_handler, reject);
64
+ return (_b = (_a = handler(ctx, dispatch)) == null ? void 0 : _a.catch) == null ? void 0 : _b.call(_a, reject);
44
65
  };
45
66
  return dispatch;
46
67
  };
47
68
  };
48
- export default (() => ({
49
- name: '@modern-js/plugin-server',
50
- setup: api => {
51
- const {
52
- appDirectory,
53
- distDirectory
54
- } = api.useAppContext();
69
+ var server_default = () => ({
70
+ name: "@modern-js/plugin-server",
71
+ setup: (api) => {
72
+ const { appDirectory, distDirectory } = api.useAppContext();
55
73
  const storage = new Storage();
56
74
  const transformAPI = createTransformAPI(storage);
57
75
  const pwd = isProd() ? distDirectory : appDirectory;
@@ -60,17 +78,11 @@ export default (() => ({
60
78
  const mod = requireExistModule(webAppPath, {
61
79
  interop: false
62
80
  });
63
- const {
64
- default: defaultExports,
65
- middleware
66
- } = mod,
67
- hooks = _objectWithoutProperties(mod, _excluded);
81
+ const _a = mod, { default: defaultExports, middleware } = _a, hooks = __objRest(_a, ["default", "middleware"]);
68
82
  if (defaultExports) {
69
83
  defaultExports(transformAPI);
70
84
  }
71
-
72
- // named export hooks will overrides hooks in default export function
73
- Object.values(HOOKS).forEach(key => {
85
+ Object.values(HOOKS).forEach((key) => {
74
86
  const fn = hooks[key];
75
87
  if (fn) {
76
88
  storage.hooks[key] = fn;
@@ -88,10 +100,8 @@ export default (() => ({
88
100
  storage.reset();
89
101
  loadMod();
90
102
  },
91
- gather({
92
- addWebMiddleware
93
- }) {
94
- storage.middlewares.forEach(mid => {
103
+ gather({ addWebMiddleware }) {
104
+ storage.middlewares.forEach((mid) => {
95
105
  addWebMiddleware(mid);
96
106
  });
97
107
  },
@@ -107,21 +117,15 @@ export default (() => ({
107
117
  }
108
118
  return storage.hooks.afterRender(context, next);
109
119
  },
110
- prepareWebServer({
111
- config
112
- }) {
113
- const {
114
- middleware
115
- } = config;
120
+ prepareWebServer({ config }) {
121
+ const { middleware } = config;
116
122
  const factory = compose(middleware);
117
- return ctx => {
123
+ return (ctx) => {
118
124
  const {
119
- source: {
120
- res
121
- }
125
+ source: { res }
122
126
  } = ctx;
123
127
  return new Promise((resolve, reject) => {
124
- res.on('finish', err => {
128
+ res.on("finish", (err) => {
125
129
  if (err) {
126
130
  return reject(err);
127
131
  }
@@ -134,4 +138,7 @@ export default (() => ({
134
138
  }
135
139
  };
136
140
  }
137
- }));
141
+ });
142
+ export {
143
+ server_default as default
144
+ };
@@ -1,61 +1,97 @@
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 __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
+ mod
22
+ ));
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var stdin_exports = {};
25
+ __export(stdin_exports, {
26
+ default: () => cli_default
5
27
  });
6
- exports.default = void 0;
7
- var _fs = _interopRequireDefault(require("fs"));
8
- var _path = _interopRequireDefault(require("path"));
9
- var _serverUtils = require("@modern-js/server-utils");
10
- var _utils = require("@modern-js/utils");
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- const TS_CONFIG_FILENAME = 'tsconfig.json';
13
- var _default = () => ({
14
- name: '@modern-js/plugin-server',
15
- setup: api => ({
28
+ module.exports = __toCommonJS(stdin_exports);
29
+ var import_fs = __toESM(require("fs"));
30
+ var import_path = __toESM(require("path"));
31
+ var import_server_utils = require("@modern-js/server-utils");
32
+ var import_utils = require("@modern-js/utils");
33
+ var __async = (__this, __arguments, generator) => {
34
+ return new Promise((resolve, reject) => {
35
+ var fulfilled = (value) => {
36
+ try {
37
+ step(generator.next(value));
38
+ } catch (e) {
39
+ reject(e);
40
+ }
41
+ };
42
+ var rejected = (value) => {
43
+ try {
44
+ step(generator.throw(value));
45
+ } catch (e) {
46
+ reject(e);
47
+ }
48
+ };
49
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
50
+ step((generator = generator.apply(__this, __arguments)).next());
51
+ });
52
+ };
53
+ const TS_CONFIG_FILENAME = "tsconfig.json";
54
+ var cli_default = () => ({
55
+ name: "@modern-js/plugin-server",
56
+ setup: (api) => ({
16
57
  config() {
17
58
  return {};
18
59
  },
19
- async afterBuild() {
20
- const {
21
- appDirectory,
22
- distDirectory
23
- } = api.useAppContext();
24
- const modernConfig = api.useResolvedConfigContext();
25
- const distDir = _path.default.resolve(distDirectory);
26
- const serverDir = _path.default.resolve(appDirectory, _utils.SERVER_DIR);
27
- const sharedDir = _path.default.resolve(appDirectory, _utils.SHARED_DIR);
28
- const tsconfigPath = _path.default.resolve(appDirectory, TS_CONFIG_FILENAME);
29
- const sourceDirs = [];
30
- if (_fs.default.existsSync(serverDir)) {
31
- sourceDirs.push(serverDir);
32
- }
33
- if (_fs.default.existsSync(sharedDir)) {
34
- sourceDirs.push(sharedDir);
35
- }
36
- const {
37
- server
38
- } = modernConfig;
39
- const {
40
- alias,
41
- globalVars
42
- } = modernConfig.source;
43
- const {
44
- babel
45
- } = modernConfig.tools;
46
- if (sourceDirs.length > 0) {
47
- await (0, _serverUtils.compile)(appDirectory, {
48
- server,
49
- alias,
50
- globalVars,
51
- babelConfig: babel
52
- }, {
53
- sourceDirs,
54
- distDir,
55
- tsconfigPath
56
- });
57
- }
60
+ afterBuild() {
61
+ return __async(this, null, function* () {
62
+ const { appDirectory, distDirectory } = api.useAppContext();
63
+ const modernConfig = api.useResolvedConfigContext();
64
+ const distDir = import_path.default.resolve(distDirectory);
65
+ const serverDir = import_path.default.resolve(appDirectory, import_utils.SERVER_DIR);
66
+ const sharedDir = import_path.default.resolve(appDirectory, import_utils.SHARED_DIR);
67
+ const tsconfigPath = import_path.default.resolve(appDirectory, TS_CONFIG_FILENAME);
68
+ const sourceDirs = [];
69
+ if (import_fs.default.existsSync(serverDir)) {
70
+ sourceDirs.push(serverDir);
71
+ }
72
+ if (import_fs.default.existsSync(sharedDir)) {
73
+ sourceDirs.push(sharedDir);
74
+ }
75
+ const { server } = modernConfig;
76
+ const { alias, globalVars } = modernConfig.source;
77
+ const { babel } = modernConfig.tools;
78
+ if (sourceDirs.length > 0) {
79
+ yield (0, import_server_utils.compile)(
80
+ appDirectory,
81
+ {
82
+ server,
83
+ alias,
84
+ globalVars,
85
+ babelConfig: babel
86
+ },
87
+ {
88
+ sourceDirs,
89
+ distDir,
90
+ tsconfigPath
91
+ }
92
+ );
93
+ }
94
+ });
58
95
  }
59
96
  })
60
97
  });
61
- exports.default = _default;
File without changes