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

Sign up to get free protection for your applications and to get access to all the features.
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