@modern-js/server 1.15.0 → 1.15.1-beta.2

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.
@@ -0,0 +1,94 @@
1
+ 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; }
2
+
3
+ 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; }
4
+
5
+ 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; }
6
+
7
+ import path from 'path';
8
+ import { resolveBabelConfig } from '@modern-js/server-utils';
9
+ import { fs, getAlias } from '@modern-js/utils';
10
+
11
+ const checkDep = (depName, paths) => {
12
+ let packagePath = '';
13
+
14
+ try {
15
+ packagePath = require.resolve('ts-node', {
16
+ paths
17
+ });
18
+ } catch (error) {}
19
+
20
+ return Boolean(packagePath);
21
+ };
22
+
23
+ export const enableRegister = (projectRoot, config // eslint-disable-next-line consistent-return
24
+ ) => {
25
+ const registerDirs = ['./api', './server', './config/mock', './shared'];
26
+ const TS_CONFIG_FILENAME = `tsconfig.json`;
27
+ const tsconfigPath = path.resolve(projectRoot, TS_CONFIG_FILENAME);
28
+ const isTsProject = fs.existsSync(tsconfigPath);
29
+ const existTsNode = checkDep('ts-node', [projectRoot]);
30
+ const existTsConfigPaths = checkDep('tsconfig-paths', [projectRoot]);
31
+
32
+ if (isTsProject && existTsNode && existTsConfigPaths) {
33
+ const tsNode = require('ts-node');
34
+
35
+ const tsConfigPaths = require('tsconfig-paths');
36
+
37
+ const {
38
+ alias
39
+ } = config.source;
40
+ const aliasOption = getAlias(alias || {}, {
41
+ appDirectory: projectRoot,
42
+ tsconfigPath
43
+ });
44
+ const {
45
+ paths = {},
46
+ absoluteBaseUrl = './'
47
+ } = aliasOption;
48
+ const tsPaths = Object.keys(paths).reduce((o, key) => {
49
+ let tsPath = paths[key];
50
+
51
+ if (typeof tsPath === 'string' && path.isAbsolute(tsPath)) {
52
+ tsPath = path.relative(absoluteBaseUrl, tsPath);
53
+ }
54
+
55
+ if (typeof tsPath === 'string') {
56
+ tsPath = [tsPath];
57
+ }
58
+
59
+ return _objectSpread(_objectSpread({}, o), {}, {
60
+ [`${key}`]: tsPath
61
+ });
62
+ }, {});
63
+ tsConfigPaths.register({
64
+ baseUrl: absoluteBaseUrl || './',
65
+ paths: tsPaths
66
+ });
67
+ tsNode.register({
68
+ project: tsconfigPath,
69
+ // for env.d.ts, https://www.npmjs.com/package/ts-node#missing-types
70
+ files: true
71
+ });
72
+ } else {
73
+ const babelConfig = resolveBabelConfig(projectRoot, config, {
74
+ tsconfigPath,
75
+ syntax: 'es6+',
76
+ type: 'commonjs'
77
+ });
78
+ return require('@babel/register')(_objectSpread(_objectSpread({}, babelConfig), {}, {
79
+ only: [function (filePath) {
80
+ // TODO: wait params
81
+ // FIXME: 删除hardcode,根据 AppContext 中的 metaName 设置路径
82
+ if (filePath.includes(`node_modules${path.sep}.modern-js`)) {
83
+ return true;
84
+ }
85
+
86
+ return registerDirs.some(registerDir => filePath.startsWith(path.join(projectRoot, registerDir)));
87
+ }],
88
+ extensions: ['.js', '.ts'],
89
+ babelrc: false,
90
+ configFile: false,
91
+ root: projectRoot
92
+ }));
93
+ }
94
+ };
@@ -14,7 +14,7 @@ import { getDefaultDevOptions } from "../constants";
14
14
  import { createMockHandler } from "../dev-tools/mock";
15
15
  import SocketServer from "../dev-tools/socket-server";
16
16
  import DevServerPlugin from "../dev-tools/dev-server-plugin";
17
- import { enableRegister } from "../dev-tools/babel/register";
17
+ import { enableRegister } from "../dev-tools/register";
18
18
  import Watcher, { mergeWatchOptions } from "../dev-tools/watcher";
19
19
  export class ModernDevServer extends ModernServer {
20
20
  constructor(options) {
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.enableRegister = void 0;
7
+
8
+ var _path = _interopRequireDefault(require("path"));
9
+
10
+ var _serverUtils = require("@modern-js/server-utils");
11
+
12
+ var _utils = require("@modern-js/utils");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ 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; }
17
+
18
+ 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; }
19
+
20
+ 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; }
21
+
22
+ const checkDep = (depName, paths) => {
23
+ let packagePath = '';
24
+
25
+ try {
26
+ packagePath = require.resolve('ts-node', {
27
+ paths
28
+ });
29
+ } catch (error) {}
30
+
31
+ return Boolean(packagePath);
32
+ };
33
+
34
+ const enableRegister = (projectRoot, config // eslint-disable-next-line consistent-return
35
+ ) => {
36
+ const registerDirs = ['./api', './server', './config/mock', './shared'];
37
+ const TS_CONFIG_FILENAME = `tsconfig.json`;
38
+
39
+ const tsconfigPath = _path.default.resolve(projectRoot, TS_CONFIG_FILENAME);
40
+
41
+ const isTsProject = _utils.fs.existsSync(tsconfigPath);
42
+
43
+ const existTsNode = checkDep('ts-node', [projectRoot]);
44
+ const existTsConfigPaths = checkDep('tsconfig-paths', [projectRoot]);
45
+
46
+ if (isTsProject && existTsNode && existTsConfigPaths) {
47
+ const tsNode = require('ts-node');
48
+
49
+ const tsConfigPaths = require('tsconfig-paths');
50
+
51
+ const {
52
+ alias
53
+ } = config.source;
54
+ const aliasOption = (0, _utils.getAlias)(alias || {}, {
55
+ appDirectory: projectRoot,
56
+ tsconfigPath
57
+ });
58
+ const {
59
+ paths = {},
60
+ absoluteBaseUrl = './'
61
+ } = aliasOption;
62
+ const tsPaths = Object.keys(paths).reduce((o, key) => {
63
+ let tsPath = paths[key];
64
+
65
+ if (typeof tsPath === 'string' && _path.default.isAbsolute(tsPath)) {
66
+ tsPath = _path.default.relative(absoluteBaseUrl, tsPath);
67
+ }
68
+
69
+ if (typeof tsPath === 'string') {
70
+ tsPath = [tsPath];
71
+ }
72
+
73
+ return _objectSpread(_objectSpread({}, o), {}, {
74
+ [`${key}`]: tsPath
75
+ });
76
+ }, {});
77
+ tsConfigPaths.register({
78
+ baseUrl: absoluteBaseUrl || './',
79
+ paths: tsPaths
80
+ });
81
+ tsNode.register({
82
+ project: tsconfigPath,
83
+ // for env.d.ts, https://www.npmjs.com/package/ts-node#missing-types
84
+ files: true
85
+ });
86
+ } else {
87
+ const babelConfig = (0, _serverUtils.resolveBabelConfig)(projectRoot, config, {
88
+ tsconfigPath,
89
+ syntax: 'es6+',
90
+ type: 'commonjs'
91
+ });
92
+ return require('@babel/register')(_objectSpread(_objectSpread({}, babelConfig), {}, {
93
+ only: [function (filePath) {
94
+ // TODO: wait params
95
+ // FIXME: 删除hardcode,根据 AppContext 中的 metaName 设置路径
96
+ if (filePath.includes(`node_modules${_path.default.sep}.modern-js`)) {
97
+ return true;
98
+ }
99
+
100
+ return registerDirs.some(registerDir => filePath.startsWith(_path.default.join(projectRoot, registerDir)));
101
+ }],
102
+ extensions: ['.js', '.ts'],
103
+ babelrc: false,
104
+ configFile: false,
105
+ root: projectRoot
106
+ }));
107
+ }
108
+ };
109
+
110
+ exports.enableRegister = enableRegister;
@@ -25,7 +25,7 @@ var _socketServer = _interopRequireDefault(require("../dev-tools/socket-server")
25
25
 
26
26
  var _devServerPlugin = _interopRequireDefault(require("../dev-tools/dev-server-plugin"));
27
27
 
28
- var _register = require("../dev-tools/babel/register");
28
+ var _register = require("../dev-tools/register");
29
29
 
30
30
  var _watcher = _interopRequireWildcard(require("../dev-tools/watcher"));
31
31
 
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "1.15.0",
14
+ "version": "1.15.1-beta.2",
15
15
  "jsnext:source": "./src/index.ts",
16
16
  "types": "./dist/types/index.d.ts",
17
17
  "main": "./dist/js/node/index.js",
@@ -31,9 +31,9 @@
31
31
  "@babel/core": "^7.18.0",
32
32
  "@babel/register": "^7.17.7",
33
33
  "@modern-js/prod-server": "1.15.0",
34
- "@modern-js/server-utils": "1.15.0",
35
- "@modern-js/webpack": "1.15.0",
34
+ "@modern-js/server-utils": "1.15.1-beta.1",
36
35
  "@modern-js/utils": "1.15.0",
36
+ "@modern-js/webpack": "1.15.0",
37
37
  "devcert": "^1.2.2",
38
38
  "minimatch": "^3.0.4",
39
39
  "path-to-regexp": "^6.2.0",
@@ -50,9 +50,15 @@
50
50
  "@types/node": "^14",
51
51
  "@types/ws": "^7.4.7",
52
52
  "jest": "^27",
53
+ "ts-node": "^10.1.0",
54
+ "tsconfig-paths": "3.14.1",
53
55
  "typescript": "^4",
54
- "websocket": "^1",
55
- "webpack": "^5.71.0"
56
+ "webpack": "^5.71.0",
57
+ "websocket": "^1"
58
+ },
59
+ "peerDependencies": {
60
+ "ts-node": "^10.1.0",
61
+ "tsconfig-paths": "3.14.1"
56
62
  },
57
63
  "sideEffects": false,
58
64
  "modernConfig": {
@@ -62,7 +68,8 @@
62
68
  },
63
69
  "publishConfig": {
64
70
  "registry": "https://registry.npmjs.org/",
65
- "access": "public"
71
+ "access": "public",
72
+ "types": "./dist/types/index.d.ts"
66
73
  },
67
74
  "wireit": {
68
75
  "build": {
@@ -1,33 +0,0 @@
1
- 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; }
2
-
3
- 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; }
4
-
5
- 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; }
6
-
7
- import path from 'path';
8
- import { resolveBabelConfig } from '@modern-js/server-utils';
9
- const registerDirs = ['./api', './server', './config/mock', './shared'];
10
- export const enableRegister = (projectRoot, config) => {
11
- const TS_CONFIG_FILENAME = `tsconfig.json`;
12
- const tsconfigPath = path.resolve(projectRoot, TS_CONFIG_FILENAME);
13
- const babelConfig = resolveBabelConfig(projectRoot, config, {
14
- tsconfigPath,
15
- syntax: 'es6+',
16
- type: 'commonjs'
17
- });
18
- return require('@babel/register')(_objectSpread(_objectSpread({}, babelConfig), {}, {
19
- only: [function (filePath) {
20
- // TODO: wait params
21
- // FIXME: 删除hardcode,根据 AppContext 中的 metaName 设置路径
22
- if (filePath.includes(`node_modules${path.sep}.modern-js`)) {
23
- return true;
24
- }
25
-
26
- return registerDirs.some(registerDir => filePath.startsWith(path.join(projectRoot, registerDir)));
27
- }],
28
- extensions: ['.js', '.ts'],
29
- babelrc: false,
30
- configFile: false,
31
- root: projectRoot
32
- }));
33
- };
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.enableRegister = void 0;
7
-
8
- var _path = _interopRequireDefault(require("path"));
9
-
10
- var _serverUtils = require("@modern-js/server-utils");
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- 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; }
15
-
16
- 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; }
17
-
18
- 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; }
19
-
20
- const registerDirs = ['./api', './server', './config/mock', './shared'];
21
-
22
- const enableRegister = (projectRoot, config) => {
23
- const TS_CONFIG_FILENAME = `tsconfig.json`;
24
-
25
- const tsconfigPath = _path.default.resolve(projectRoot, TS_CONFIG_FILENAME);
26
-
27
- const babelConfig = (0, _serverUtils.resolveBabelConfig)(projectRoot, config, {
28
- tsconfigPath,
29
- syntax: 'es6+',
30
- type: 'commonjs'
31
- });
32
- return require('@babel/register')(_objectSpread(_objectSpread({}, babelConfig), {}, {
33
- only: [function (filePath) {
34
- // TODO: wait params
35
- // FIXME: 删除hardcode,根据 AppContext 中的 metaName 设置路径
36
- if (filePath.includes(`node_modules${_path.default.sep}.modern-js`)) {
37
- return true;
38
- }
39
-
40
- return registerDirs.some(registerDir => filePath.startsWith(_path.default.join(projectRoot, registerDir)));
41
- }],
42
- extensions: ['.js', '.ts'],
43
- babelrc: false,
44
- configFile: false,
45
- root: projectRoot
46
- }));
47
- };
48
-
49
- exports.enableRegister = enableRegister;