chayns-api 2.0.9 → 2.1.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/dist/cjs/components/withCompatMode.js +3 -7
- package/dist/cjs/host/module/utils/loadComponent.js +35 -6
- package/dist/cjs/wrapper/AppWrapper.js +1 -0
- package/dist/esm/components/withCompatMode.js +3 -7
- package/dist/esm/host/module/utils/loadComponent.js +35 -6
- package/dist/esm/wrapper/AppWrapper.js +1 -0
- package/dist/types/components/withCompatMode.d.ts +31 -2
- package/package.json +3 -3
|
@@ -68,18 +68,14 @@ const withCompatMode = Component => {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
return {
|
|
71
|
-
Component:
|
|
72
|
-
|
|
73
|
-
})))),
|
|
74
|
-
CompatComponent: /*#__PURE__*/_react.default.forwardRef((props, ref) => /*#__PURE__*/_react.default.createElement(CompatComponent, _extends({}, props, {
|
|
75
|
-
innerRef: ref
|
|
76
|
-
}))),
|
|
71
|
+
Component: props => /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(Component, props)),
|
|
72
|
+
CompatComponent,
|
|
77
73
|
// @ts-expect-error will be set by chayns-toolkit via DefinePlugin
|
|
78
74
|
requiredVersion: __REQUIRED_REACT_VERSION__,
|
|
79
75
|
environment: process.env.NODE_ENV,
|
|
80
76
|
buildEnv: process.env.BUILD_ENV || process.env.NODE_ENV,
|
|
81
77
|
appVersion: process.env.VERSION,
|
|
82
|
-
version: 2
|
|
78
|
+
version: 2.1
|
|
83
79
|
};
|
|
84
80
|
};
|
|
85
81
|
exports.withCompatMode = withCompatMode;
|
|
@@ -51,7 +51,8 @@ const loadComponent = (scope, module, url, skipCompatMode = false, preventSingle
|
|
|
51
51
|
console.warn('[chayns-api] skipCompatMode-option is deprecated and is set automatically now');
|
|
52
52
|
}
|
|
53
53
|
const {
|
|
54
|
-
loadShareSync
|
|
54
|
+
loadShareSync,
|
|
55
|
+
getInstance
|
|
55
56
|
} = globalThis.moduleFederationRuntime;
|
|
56
57
|
const {
|
|
57
58
|
componentMap
|
|
@@ -69,23 +70,51 @@ const loadComponent = (scope, module, url, skipCompatMode = false, preventSingle
|
|
|
69
70
|
requiredVersion,
|
|
70
71
|
environment
|
|
71
72
|
} = Module.default;
|
|
72
|
-
const shareScopes = await new Promise(resolve => {
|
|
73
|
+
const shareScopes = typeof getInstance === 'function' ? getInstance().shareScopeMap : await new Promise(resolve => {
|
|
73
74
|
loadShareSync('react', {
|
|
74
75
|
resolver: shareOptions => {
|
|
75
|
-
|
|
76
|
+
const optionsMap = shareOptions.reduce((p, e) => {
|
|
77
|
+
p[e.version] = e;
|
|
78
|
+
e.version;
|
|
79
|
+
return p;
|
|
80
|
+
}, {});
|
|
81
|
+
resolve({
|
|
82
|
+
'chayns-api': optionsMap
|
|
83
|
+
});
|
|
76
84
|
return shareOptions[0];
|
|
77
85
|
}
|
|
78
86
|
});
|
|
79
87
|
});
|
|
80
|
-
const matchReactVersion = requiredVersion && _semver.default.satisfies(hostVersion, requiredVersion) && !shareScopes.some(({
|
|
88
|
+
const matchReactVersion = requiredVersion && _semver.default.satisfies(hostVersion, requiredVersion) && !Object.values(shareScopes['chayns-api'].react).some(({
|
|
81
89
|
version,
|
|
82
90
|
from
|
|
83
91
|
}) => {
|
|
84
92
|
return _semver.default.gt(version, hostVersion) && _semver.default.satisfies(version, requiredVersion) || scope === from.split('-').join('_');
|
|
85
93
|
});
|
|
86
|
-
if (!matchReactVersion || environment !== 'production' || process.env.NODE_ENV === 'development' || Module.default.version
|
|
94
|
+
if (!matchReactVersion || environment !== 'production' || process.env.NODE_ENV === 'development' || (Module.default.version || 1) < 2) {
|
|
95
|
+
const OriginalCompatComponent = (Module.default.version || 1) < 2.1 ? Module.default.CompatComponent.render({}).type.prototype : Module.default.CompatComponent.prototype;
|
|
96
|
+
class CompatComponent extends _react.default.Component {
|
|
97
|
+
constructor(props) {
|
|
98
|
+
super(props);
|
|
99
|
+
this.ref = /*#__PURE__*/_react.default.createRef();
|
|
100
|
+
}
|
|
101
|
+
componentDidMount() {
|
|
102
|
+
OriginalCompatComponent.componentDidMount.apply(this);
|
|
103
|
+
}
|
|
104
|
+
componentDidUpdate(prevProps, prevState, snapshot) {
|
|
105
|
+
OriginalCompatComponent.componentDidUpdate.apply(this, prevProps, prevState, snapshot);
|
|
106
|
+
}
|
|
107
|
+
componentWillUnmount() {
|
|
108
|
+
OriginalCompatComponent.componentWillUnmount.apply(this);
|
|
109
|
+
}
|
|
110
|
+
render() {
|
|
111
|
+
return /*#__PURE__*/_react.default.createElement('div', {
|
|
112
|
+
ref: this.ref
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
87
116
|
return {
|
|
88
|
-
default:
|
|
117
|
+
default: CompatComponent
|
|
89
118
|
};
|
|
90
119
|
}
|
|
91
120
|
return {
|
|
@@ -61,17 +61,13 @@ export const withCompatMode = Component => {
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
return {
|
|
64
|
-
Component:
|
|
65
|
-
|
|
66
|
-
})))),
|
|
67
|
-
CompatComponent: /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(CompatComponent, _extends({}, props, {
|
|
68
|
-
innerRef: ref
|
|
69
|
-
}))),
|
|
64
|
+
Component: props => /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Component, props)),
|
|
65
|
+
CompatComponent,
|
|
70
66
|
// @ts-expect-error will be set by chayns-toolkit via DefinePlugin
|
|
71
67
|
requiredVersion: __REQUIRED_REACT_VERSION__,
|
|
72
68
|
environment: process.env.NODE_ENV,
|
|
73
69
|
buildEnv: process.env.BUILD_ENV || process.env.NODE_ENV,
|
|
74
70
|
appVersion: process.env.VERSION,
|
|
75
|
-
version: 2
|
|
71
|
+
version: 2.1
|
|
76
72
|
};
|
|
77
73
|
};
|
|
@@ -46,7 +46,8 @@ const loadComponent = function (scope, module, url) {
|
|
|
46
46
|
console.warn('[chayns-api] skipCompatMode-option is deprecated and is set automatically now');
|
|
47
47
|
}
|
|
48
48
|
const {
|
|
49
|
-
loadShareSync
|
|
49
|
+
loadShareSync,
|
|
50
|
+
getInstance
|
|
50
51
|
} = globalThis.moduleFederationRuntime;
|
|
51
52
|
const {
|
|
52
53
|
componentMap
|
|
@@ -64,24 +65,52 @@ const loadComponent = function (scope, module, url) {
|
|
|
64
65
|
requiredVersion,
|
|
65
66
|
environment
|
|
66
67
|
} = Module.default;
|
|
67
|
-
const shareScopes = await new Promise(resolve => {
|
|
68
|
+
const shareScopes = typeof getInstance === 'function' ? getInstance().shareScopeMap : await new Promise(resolve => {
|
|
68
69
|
loadShareSync('react', {
|
|
69
70
|
resolver: shareOptions => {
|
|
70
|
-
|
|
71
|
+
const optionsMap = shareOptions.reduce((p, e) => {
|
|
72
|
+
p[e.version] = e;
|
|
73
|
+
e.version;
|
|
74
|
+
return p;
|
|
75
|
+
}, {});
|
|
76
|
+
resolve({
|
|
77
|
+
'chayns-api': optionsMap
|
|
78
|
+
});
|
|
71
79
|
return shareOptions[0];
|
|
72
80
|
}
|
|
73
81
|
});
|
|
74
82
|
});
|
|
75
|
-
const matchReactVersion = requiredVersion && semver.satisfies(hostVersion, requiredVersion) && !shareScopes.some(_ref => {
|
|
83
|
+
const matchReactVersion = requiredVersion && semver.satisfies(hostVersion, requiredVersion) && !Object.values(shareScopes['chayns-api'].react).some(_ref => {
|
|
76
84
|
let {
|
|
77
85
|
version,
|
|
78
86
|
from
|
|
79
87
|
} = _ref;
|
|
80
88
|
return semver.gt(version, hostVersion) && semver.satisfies(version, requiredVersion) || scope === from.split('-').join('_');
|
|
81
89
|
});
|
|
82
|
-
if (!matchReactVersion || environment !== 'production' || process.env.NODE_ENV === 'development' || Module.default.version
|
|
90
|
+
if (!matchReactVersion || environment !== 'production' || process.env.NODE_ENV === 'development' || (Module.default.version || 1) < 2) {
|
|
91
|
+
const OriginalCompatComponent = (Module.default.version || 1) < 2.1 ? Module.default.CompatComponent.render({}).type.prototype : Module.default.CompatComponent.prototype;
|
|
92
|
+
class CompatComponent extends React.Component {
|
|
93
|
+
constructor(props) {
|
|
94
|
+
super(props);
|
|
95
|
+
this.ref = /*#__PURE__*/React.createRef();
|
|
96
|
+
}
|
|
97
|
+
componentDidMount() {
|
|
98
|
+
OriginalCompatComponent.componentDidMount.apply(this);
|
|
99
|
+
}
|
|
100
|
+
componentDidUpdate(prevProps, prevState, snapshot) {
|
|
101
|
+
OriginalCompatComponent.componentDidUpdate.apply(this, prevProps, prevState, snapshot);
|
|
102
|
+
}
|
|
103
|
+
componentWillUnmount() {
|
|
104
|
+
OriginalCompatComponent.componentWillUnmount.apply(this);
|
|
105
|
+
}
|
|
106
|
+
render() {
|
|
107
|
+
return /*#__PURE__*/React.createElement('div', {
|
|
108
|
+
ref: this.ref
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
83
112
|
return {
|
|
84
|
-
default:
|
|
113
|
+
default: CompatComponent
|
|
85
114
|
};
|
|
86
115
|
}
|
|
87
116
|
return {
|
|
@@ -1,10 +1,39 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import React, { RefObject } from 'react';
|
|
2
3
|
type Props = {
|
|
3
4
|
innerRef?: RefObject<unknown>;
|
|
4
5
|
} & object;
|
|
5
6
|
export declare const withCompatMode: <P extends Props>(Component: React.ComponentType<P>) => {
|
|
6
|
-
Component: React.
|
|
7
|
-
CompatComponent:
|
|
7
|
+
Component: (props: any) => React.JSX.Element;
|
|
8
|
+
CompatComponent: {
|
|
9
|
+
new (props: P): {
|
|
10
|
+
ref: RefObject<HTMLDivElement>;
|
|
11
|
+
root: any;
|
|
12
|
+
timeout?: NodeJS.Timeout | undefined;
|
|
13
|
+
componentDidMount(): void;
|
|
14
|
+
componentDidUpdate(): void;
|
|
15
|
+
componentWillUnmount(): void;
|
|
16
|
+
render(): React.JSX.Element;
|
|
17
|
+
context: unknown;
|
|
18
|
+
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<P>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
|
19
|
+
forceUpdate(callback?: (() => void) | undefined): void;
|
|
20
|
+
readonly props: Readonly<P>;
|
|
21
|
+
state: Readonly<{}>;
|
|
22
|
+
refs: {
|
|
23
|
+
[key: string]: React.ReactInstance;
|
|
24
|
+
};
|
|
25
|
+
shouldComponentUpdate?(nextProps: Readonly<P>, nextState: Readonly<{}>, nextContext: any): boolean;
|
|
26
|
+
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
|
|
27
|
+
getSnapshotBeforeUpdate?(prevProps: Readonly<P>, prevState: Readonly<{}>): any;
|
|
28
|
+
componentWillMount?(): void;
|
|
29
|
+
UNSAFE_componentWillMount?(): void;
|
|
30
|
+
componentWillReceiveProps?(nextProps: Readonly<P>, nextContext: any): void;
|
|
31
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<P>, nextContext: any): void;
|
|
32
|
+
componentWillUpdate?(nextProps: Readonly<P>, nextState: Readonly<{}>, nextContext: any): void;
|
|
33
|
+
UNSAFE_componentWillUpdate?(nextProps: Readonly<P>, nextState: Readonly<{}>, nextContext: any): void;
|
|
34
|
+
};
|
|
35
|
+
contextType?: React.Context<any> | undefined;
|
|
36
|
+
};
|
|
8
37
|
requiredVersion: any;
|
|
9
38
|
environment: string | undefined;
|
|
10
39
|
buildEnv: string | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chayns-api",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "new chayns api",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"typescript": "^4.9.5"
|
|
83
83
|
},
|
|
84
84
|
"peerDependencies": {
|
|
85
|
-
"react": "^16.8 || ^17.0.1 || ^18.0.0",
|
|
86
|
-
"react-dom": "^16.8 || ^17.0.1 || ^18.0.0"
|
|
85
|
+
"react": "^16.8 || ^17.0.1 || ^18.0.0 || ^19.0.0",
|
|
86
|
+
"react-dom": "^16.8 || ^17.0.1 || ^18.0.0 || ^19.0.0"
|
|
87
87
|
}
|
|
88
88
|
}
|