@modern-js/runtime 1.1.2 → 1.2.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,82 @@
1
1
  # @modern-js/runtime
2
2
 
3
+ ## 1.2.2
4
+
5
+ ### Patch Changes
6
+
7
+ - d099e5c5: fix error when modify modern.config.js
8
+ - 24f616ca: feat: support custom meta info
9
+ - Updated dependencies [816fd721]
10
+ - Updated dependencies [d9cc5ea9]
11
+ - Updated dependencies [bfbea9a7]
12
+ - Updated dependencies [bd819a8d]
13
+ - Updated dependencies [ec4dbffb]
14
+ - Updated dependencies [d099e5c5]
15
+ - Updated dependencies [bada2879]
16
+ - Updated dependencies [24f616ca]
17
+ - Updated dependencies [bd819a8d]
18
+ - Updated dependencies [272cab15]
19
+ - @modern-js/plugin-ssr@1.2.1
20
+ - @modern-js/core@1.4.0
21
+ - @modern-js/plugin-router@1.2.2
22
+ - @modern-js/runtime-core@1.2.2
23
+ - @modern-js/utils@1.3.0
24
+
25
+ ## 1.2.1
26
+
27
+ ### Patch Changes
28
+
29
+ - 83166714: change .npmignore
30
+ - Updated dependencies [83166714]
31
+ - Updated dependencies [c3de9882]
32
+ - Updated dependencies [33ff48af]
33
+ - Updated dependencies [c74597bd]
34
+ - @modern-js/core@1.3.2
35
+ - @modern-js/plugin-router@1.2.1
36
+ - @modern-js/plugin-state@1.2.1
37
+ - @modern-js/runtime-core@1.2.1
38
+ - @modern-js/bff-runtime@1.2.1
39
+ - @modern-js/create-request@1.2.1
40
+ - @modern-js/utils@1.2.2
41
+
42
+ ## 1.2.0
43
+
44
+ ### Minor Changes
45
+
46
+ - cfe11628: Make Modern.js self bootstraping
47
+
48
+ ### Patch Changes
49
+
50
+ - 146dcd85: modify server framework plugin hook types and hook context
51
+ - 146dcd85: modify server framework plugin hook types
52
+ - 146dcd85: fix test case in babel compiler
53
+ - Updated dependencies [2da09c69]
54
+ - Updated dependencies [5597289b]
55
+ - Updated dependencies [fc71e36f]
56
+ - Updated dependencies [146dcd85]
57
+ - Updated dependencies [a2cb9abc]
58
+ - Updated dependencies [c3d46ee4]
59
+ - Updated dependencies [cfe11628]
60
+ - Updated dependencies [146dcd85]
61
+ - Updated dependencies [146dcd85]
62
+ - @modern-js/utils@1.2.0
63
+ - @modern-js/plugin-ssr@1.2.0
64
+ - @modern-js/create-request@1.2.0
65
+ - @modern-js/core@1.3.0
66
+ - @modern-js/bff-runtime@1.2.0
67
+ - @modern-js/runtime-core@1.2.0
68
+ - @modern-js/plugin-router@1.2.0
69
+ - @modern-js/plugin-state@1.2.0
70
+
71
+ ## 1.1.3
72
+
73
+ ### Patch Changes
74
+
75
+ - b8deff8b: feat: add isBrowser in runtime context
76
+ - Updated dependencies [e63591cc]
77
+ - @modern-js/plugin-router@1.1.3
78
+ - @modern-js/runtime-core@1.1.4
79
+
3
80
  ## 1.1.2
4
81
 
5
82
  ### Patch Changes
@@ -1,14 +1,8 @@
1
1
  import path from 'path';
2
- import { PLUGIN_SCHEMAS, createRuntimeExportsUtils } from '@modern-js/utils';
2
+ import { PLUGIN_SCHEMAS, createRuntimeExportsUtils, cleanRequireCache } from '@modern-js/utils';
3
3
  import { createPlugin, usePlugins, useAppContext } from '@modern-js/core';
4
4
 
5
- const useInternalDirectory = () => {
6
- try {
7
- return useAppContext().internalDirectory;
8
- } catch (_unused) {
9
- return path.join(process.cwd(), 'node_modules/.modern-js');
10
- }
11
- }; // eslint-disable-next-line react-hooks/rules-of-hooks
5
+ const useInternalDirectory = () => useAppContext().internalDirectory; // eslint-disable-next-line react-hooks/rules-of-hooks
12
6
 
13
7
 
14
8
  usePlugins([require.resolve('@modern-js/plugin-state/cli'), require.resolve('@modern-js/plugin-router/cli'), require.resolve('@modern-js/plugin-ssr/cli')]);
@@ -37,6 +31,10 @@ export default createPlugin(() => {
37
31
  addRuntimeExports() {
38
32
  const runtimePackage = path.resolve(__dirname, '../../../../');
39
33
  runtimeExportsUtils.addExport(`export * from '${runtimePackage}'`);
34
+ },
35
+
36
+ async beforeRestart() {
37
+ cleanRequireCache([require.resolve('@modern-js/plugin-state/cli'), require.resolve('@modern-js/plugin-router/cli'), require.resolve('@modern-js/plugin-ssr/cli')]);
40
38
  }
41
39
 
42
40
  };
@@ -1 +1,2 @@
1
- export * from '@modern-js/bff-runtime';
1
+ export * from '@modern-js/bff-runtime';
2
+ export const hook = attacher => attacher;
@@ -13,13 +13,7 @@ var _core = require("@modern-js/core");
13
13
 
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
 
16
- const useInternalDirectory = () => {
17
- try {
18
- return (0, _core.useAppContext)().internalDirectory;
19
- } catch (_unused) {
20
- return _path.default.join(process.cwd(), 'node_modules/.modern-js');
21
- }
22
- }; // eslint-disable-next-line react-hooks/rules-of-hooks
16
+ const useInternalDirectory = () => (0, _core.useAppContext)().internalDirectory; // eslint-disable-next-line react-hooks/rules-of-hooks
23
17
 
24
18
 
25
19
  (0, _core.usePlugins)([require.resolve('@modern-js/plugin-state/cli'), require.resolve('@modern-js/plugin-router/cli'), require.resolve('@modern-js/plugin-ssr/cli')]);
@@ -50,6 +44,10 @@ var _default = (0, _core.createPlugin)(() => {
50
44
  const runtimePackage = _path.default.resolve(__dirname, '../../../../');
51
45
 
52
46
  runtimeExportsUtils.addExport(`export * from '${runtimePackage}'`);
47
+ },
48
+
49
+ async beforeRestart() {
50
+ (0, _utils.cleanRequireCache)([require.resolve('@modern-js/plugin-state/cli'), require.resolve('@modern-js/plugin-router/cli'), require.resolve('@modern-js/plugin-ssr/cli')]);
53
51
  }
54
52
 
55
53
  };
@@ -3,11 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ hook: true
8
+ };
9
+ exports.hook = void 0;
6
10
 
7
11
  var _bffRuntime = require("@modern-js/bff-runtime");
8
12
 
9
13
  Object.keys(_bffRuntime).forEach(function (key) {
10
14
  if (key === "default" || key === "__esModule") return;
15
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
11
16
  if (key in exports && exports[key] === _bffRuntime[key]) return;
12
17
  Object.defineProperty(exports, key, {
13
18
  enumerable: true,
@@ -15,4 +20,8 @@ Object.keys(_bffRuntime).forEach(function (key) {
15
20
  return _bffRuntime[key];
16
21
  }
17
22
  });
18
- });
23
+ });
24
+
25
+ const hook = attacher => attacher;
26
+
27
+ exports.hook = hook;
@@ -1,13 +1,15 @@
1
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
2
+
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+
5
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
6
+
1
7
  import path from 'path';
2
- import { PLUGIN_SCHEMAS, createRuntimeExportsUtils } from '@modern-js/utils';
8
+ import { PLUGIN_SCHEMAS, createRuntimeExportsUtils, cleanRequireCache } from '@modern-js/utils';
3
9
  import { createPlugin, usePlugins, useAppContext } from '@modern-js/core';
4
10
 
5
11
  var useInternalDirectory = function useInternalDirectory() {
6
- try {
7
- return useAppContext().internalDirectory;
8
- } catch (_unused) {
9
- return path.join(process.cwd(), 'node_modules/.modern-js');
10
- }
12
+ return useAppContext().internalDirectory;
11
13
  }; // eslint-disable-next-line react-hooks/rules-of-hooks
12
14
 
13
15
 
@@ -35,6 +37,22 @@ export default createPlugin(function () {
35
37
  addRuntimeExports: function addRuntimeExports() {
36
38
  var runtimePackage = path.resolve(__dirname, '../../../../');
37
39
  runtimeExportsUtils.addExport("export * from '".concat(runtimePackage, "'"));
40
+ },
41
+ beforeRestart: function beforeRestart() {
42
+ return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
43
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
44
+ while (1) {
45
+ switch (_context.prev = _context.next) {
46
+ case 0:
47
+ cleanRequireCache([require.resolve('@modern-js/plugin-state/cli'), require.resolve('@modern-js/plugin-router/cli'), require.resolve('@modern-js/plugin-ssr/cli')]);
48
+
49
+ case 1:
50
+ case "end":
51
+ return _context.stop();
52
+ }
53
+ }
54
+ }, _callee);
55
+ }))();
38
56
  }
39
57
  };
40
58
  }, {
@@ -1 +1,4 @@
1
- export * from '@modern-js/bff-runtime';
1
+ export * from '@modern-js/bff-runtime';
2
+ export var hook = function hook(attacher) {
3
+ return attacher;
4
+ };
@@ -1 +1,2 @@
1
- export * from '@modern-js/bff-runtime';
1
+ export * from '@modern-js/bff-runtime';
2
+ export declare const hook: (attacher: any) => any;
package/jest.config.js ADDED
@@ -0,0 +1,8 @@
1
+ const sharedConfig = require('@scripts/jest-config');
2
+
3
+ /** @type {import('@jest/types').Config.InitialOptions} */
4
+ module.exports = {
5
+ // eslint-disable-next-line node/no-unsupported-features/es-syntax
6
+ ...sharedConfig,
7
+ rootDir: __dirname,
8
+ };
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "1.1.2",
14
+ "version": "1.2.2",
15
15
  "jsnext:source": "./src/index.ts",
16
16
  "types": "./type.d.ts",
17
17
  "main": "./dist/js/node/index.js",
@@ -19,42 +19,56 @@
19
19
  "jsnext:modern": "./dist/js/modern/index.js",
20
20
  "exports": {
21
21
  ".": {
22
- "node": "./dist/js/node/index.js",
22
+ "node": {
23
+ "jsnext:source": "./src/index.ts",
24
+ "default": "./dist/js/node/index.js"
25
+ },
23
26
  "default": "./dist/js/treeshaking/index.js"
24
27
  },
25
28
  "./loadable": {
29
+ "jsnext:source": "./src/exports/loadable.ts",
26
30
  "node": "./dist/js/node/exports/loadable.js",
27
31
  "default": "./dist/js/treeshaking/exports/loadable.js"
28
32
  },
29
33
  "./head": {
34
+ "jsnext:source": "./src/exports/head.ts",
30
35
  "node": "./dist/js/node/exports/head.js",
31
36
  "default": "./dist/js/treeshaking/exports/head.js"
32
37
  },
33
38
  "./styled": {
39
+ "jsnext:source": "./src/exports/styled.ts",
34
40
  "node": "./dist/js/node/exports/styled.js",
35
41
  "default": "./dist/js/treeshaking/exports/styled.js"
36
42
  },
37
43
  "./server": {
44
+ "jsnext:source": "./src/exports/server.ts",
38
45
  "node": "./dist/js/node/exports/server.js",
39
46
  "default": "./dist/js/treeshaking/exports/server.js"
40
47
  },
41
48
  "./router": {
49
+ "jsnext:source": "./src/exports/router.ts",
42
50
  "node": "./dist/js/node/exports/router.js",
43
51
  "default": "./dist/js/treeshaking/exports/router.js"
44
52
  },
45
53
  "./ssr": {
54
+ "jsnext:source": "./src/exports/ssr.ts",
46
55
  "node": "./dist/js/node/exports/ssr.js",
47
56
  "default": "./dist/js/treeshaking/exports/ssr.js"
48
57
  },
49
58
  "./model": {
59
+ "jsnext:source": "./src/exports/model.ts",
50
60
  "node": "./dist/js/node/exports/model.js",
51
61
  "default": "./dist/js/treeshaking/exports/model.js"
52
62
  },
53
63
  "./request": {
64
+ "jsnext:source": "./src/exports/request.ts",
54
65
  "node": "./dist/js/node/exports/request.js",
55
66
  "default": "./dist/js/treeshaking/exports/request.js"
56
67
  },
57
- "./cli": "./dist/js/node/cli/index.js"
68
+ "./cli": {
69
+ "jsnext:source": "./src/cli/index.ts",
70
+ "default": "./dist/js/node/cli/index.js"
71
+ }
58
72
  },
59
73
  "typesVersions": {
60
74
  "*": {
@@ -89,43 +103,45 @@
89
103
  },
90
104
  "dependencies": {
91
105
  "@babel/runtime": "^7",
106
+ "@modern-js/plugin-router": "^1.2.2",
107
+ "@modern-js/plugin-ssr": "^1.2.1",
108
+ "@modern-js/plugin-state": "^1.2.1",
109
+ "@modern-js/runtime-core": "^1.2.2",
110
+ "@modern-js/utils": "^1.3.0",
111
+ "@modern-js/bff-runtime": "^1.2.1",
112
+ "@modern-js/create-request": "^1.2.1",
92
113
  "@loadable/component": "^5.15.0",
93
- "@modern-js/bff-runtime": "^1.1.1",
94
- "@modern-js/create-request": "^1.1.2",
95
- "@modern-js/plugin-router": "^1.1.2",
96
- "@modern-js/plugin-ssr": "^1.1.3",
97
- "@modern-js/plugin-state": "^1.1.4",
98
- "@modern-js/runtime-core": "^1.1.3",
99
- "@modern-js/utils": "^1.1.6",
100
- "@types/loadable__component": "^5.13.4",
101
- "@types/react-helmet": "^6.1.2",
102
- "@types/styled-components": "^5.1.13",
103
114
  "react-helmet": "^6.1.0",
104
115
  "styled-components": "^5.3.1"
105
116
  },
106
117
  "devDependencies": {
107
- "@modern-js/core": "^1.1.2",
108
- "@modern-js/module-tools": "^1.1.4",
109
- "@modern-js/plugin-testing": "^1.2.2",
118
+ "@modern-js/core": "^1.4.0",
119
+ "@scripts/build": "0.0.0",
120
+ "@types/loadable__component": "^5.13.4",
121
+ "@types/react-helmet": "^6.1.2",
122
+ "@types/styled-components": "^5.1.13",
110
123
  "@types/jest": "^26",
111
124
  "@types/node": "^14",
112
125
  "@types/react": "^17",
113
126
  "@types/react-dom": "^17",
114
- "typescript": "^4"
127
+ "typescript": "^4",
128
+ "jest": "^27",
129
+ "@scripts/jest-config": "0.0.0"
115
130
  },
116
131
  "peerDependencies": {
117
- "@modern-js/core": "^1.1.2"
132
+ "@modern-js/core": "^1.4.0"
118
133
  },
119
134
  "sideEffects": false,
120
135
  "modernConfig": {},
121
136
  "publishConfig": {
122
137
  "registry": "https://registry.npmjs.org/",
123
- "access": "public"
138
+ "access": "public",
139
+ "types": "./type.d.ts"
124
140
  },
125
141
  "scripts": {
126
142
  "new": "modern new",
127
143
  "build": "modern build",
128
- "test": "modern test --passWithNoTests"
144
+ "test": "jest --passWithNoTests"
129
145
  },
130
146
  "readme": "\n<p align=\"center\">\n <a href=\"https://modernjs.dev\" target=\"blank\"><img src=\"https://lf3-static.bytednsdoc.com/obj/eden-cn/ylaelkeh7nuhfnuhf/modernjs-cover.png\" width=\"300\" alt=\"Modern.js Logo\" /></a>\n</p>\n<p align=\"center\">\n现代 Web 工程体系\n <br/>\n <a href=\"https://modernjs.dev\" target=\"blank\">\n modernjs.dev\n </a>\n</p>\n<p align=\"center\">\n The meta-framework suite designed from scratch for frontend-focused modern web development\n</p>\n\n# Introduction\n\n> The doc site ([modernjs.dev](https://modernjs.dev)) and articles are only available in Chinese for now, we are planning to add English versions soon.\n\n- [Modern.js: Hello, World!](https://zhuanlan.zhihu.com/p/426707646)\n\n## Getting Started\n\n- [Quick Start](https://modernjs.dev/docs/start)\n- [Guides](https://modernjs.dev/docs/guides)\n- [API References](https://modernjs.dev/docs/apis)\n\n## Contributing\n\n- [Contributing Guide](https://github.com/modern-js-dev/modern.js/blob/main/CONTRIBUTING.md)\n"
131
147
  }
@@ -0,0 +1,14 @@
1
+ import { createApp, createPlugin, useRuntimeContext } from '../src';
2
+ import plugin from '../src/cli';
3
+
4
+ describe('plugin-runtime', () => {
5
+ it('default', () => {
6
+ expect(plugin).toBeDefined();
7
+ expect(createApp).toBeDefined();
8
+ expect(createPlugin).toBeDefined();
9
+ expect(useRuntimeContext).toBeDefined();
10
+
11
+ const hooks = plugin.initializer();
12
+ expect(hooks.beforeRestart).toBeDefined();
13
+ });
14
+ });
@@ -0,0 +1,10 @@
1
+ import { hook } from '../src/exports/server';
2
+
3
+ describe('runtime export', () => {
4
+ it('should return self after hook', () => {
5
+ const fn = () => {
6
+ // empty
7
+ };
8
+ expect(hook(fn)).toBe(fn);
9
+ });
10
+ });
@@ -0,0 +1,13 @@
1
+ {
2
+ "extends": "@modern-js/tsconfig/base",
3
+ "compilerOptions": {
4
+ "declaration": false,
5
+ "jsx": "preserve",
6
+ "baseUrl": "./",
7
+ "noEmit": true,
8
+ "isolatedModules": true,
9
+ "sourceMap": true,
10
+ "types": ["node", "jest"]
11
+ },
12
+ "paths": {}
13
+ }
package/tsconfig.json CHANGED
@@ -5,9 +5,7 @@
5
5
  "jsx": "preserve",
6
6
  "baseUrl": "./",
7
7
  "isolatedModules": true,
8
- "paths": {
9
- "@/*": ["./src/*"]
10
- }
8
+ "paths": {}
11
9
  },
12
10
  "include": ["src"]
13
11
  }
@@ -1,3 +0,0 @@
1
- {
2
- "extends": ["@modern-js-app"]
3
- }
package/src/cli/index.ts DELETED
@@ -1,60 +0,0 @@
1
- import path from 'path';
2
- import { PLUGIN_SCHEMAS, createRuntimeExportsUtils } from '@modern-js/utils';
3
- import { createPlugin, usePlugins, useAppContext } from '@modern-js/core';
4
-
5
- const useInternalDirectory = () => {
6
- try {
7
- return useAppContext().internalDirectory;
8
- } catch {
9
- return path.join(process.cwd(), 'node_modules/.modern-js');
10
- }
11
- };
12
-
13
- // eslint-disable-next-line react-hooks/rules-of-hooks
14
- usePlugins([
15
- require.resolve('@modern-js/plugin-state/cli'),
16
- require.resolve('@modern-js/plugin-router/cli'),
17
- require.resolve('@modern-js/plugin-ssr/cli'),
18
- ]);
19
-
20
- export default createPlugin(
21
- () => {
22
- let runtimeExportsUtils: ReturnType<typeof createRuntimeExportsUtils> =
23
- {} as any;
24
-
25
- return {
26
- config() {
27
- // eslint-disable-next-line react-hooks/rules-of-hooks
28
- const dir = useInternalDirectory();
29
-
30
- runtimeExportsUtils = createRuntimeExportsUtils(dir, 'index');
31
-
32
- return {
33
- runtime: {},
34
- runtimeByEntries: {},
35
- source: {
36
- alias: {
37
- '@modern-js/runtime$': runtimeExportsUtils.getPath(),
38
- },
39
- },
40
- };
41
- },
42
- validateSchema() {
43
- return PLUGIN_SCHEMAS['@modern-js/runtime'];
44
- },
45
- addRuntimeExports() {
46
- const runtimePackage = path.resolve(__dirname, '../../../../');
47
-
48
- runtimeExportsUtils.addExport(`export * from '${runtimePackage}'`);
49
- },
50
- };
51
- },
52
- {
53
- name: '@modern-js/runtime',
54
- post: [
55
- '@modern-js/plugin-router',
56
- '@modern-js/plugin-ssr',
57
- '@modern-js/plugin-state',
58
- ],
59
- },
60
- ) as any;
@@ -1 +0,0 @@
1
- declare module '@loadable/webpack-plugin';
@@ -1,5 +0,0 @@
1
- import head from 'react-helmet';
2
-
3
- export default head;
4
-
5
- export * from 'react-helmet';
@@ -1,5 +0,0 @@
1
- import loadable from '@loadable/component';
2
-
3
- export default loadable;
4
-
5
- export * from '@loadable/component';
@@ -1 +0,0 @@
1
- export * from '@modern-js/plugin-state';
@@ -1 +0,0 @@
1
- export { configure } from '@modern-js/create-request';
@@ -1 +0,0 @@
1
- export * from '@modern-js/plugin-router';
@@ -1 +0,0 @@
1
- export * from '@modern-js/bff-runtime';
@@ -1 +0,0 @@
1
- export * from '@modern-js/plugin-ssr';
@@ -1,5 +0,0 @@
1
- import styled from '@modern-js/runtime-core/styled';
2
-
3
- export default styled;
4
-
5
- export * from '@modern-js/runtime-core/styled';
package/src/index.ts DELETED
@@ -1,12 +0,0 @@
1
- export type { RuntimeContext, TRuntimeContext } from '@modern-js/runtime-core';
2
- export {
3
- createApp,
4
- createPlugin,
5
- useLoader,
6
- bootstrap,
7
- RuntimeReactContext,
8
- registerPrefetch,
9
- defineConfig,
10
- registerInit,
11
- useRuntimeContext,
12
- } from '@modern-js/runtime-core';