chayns-api 2.0.10 → 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.
@@ -68,18 +68,14 @@ const withCompatMode = Component => {
68
68
  }
69
69
  }
70
70
  return {
71
- Component: /*#__PURE__*/_react.default.forwardRef((props, ref) => /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(Component, _extends({}, props, {
72
- innerRef: ref
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
- resolve(shareOptions);
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 !== 2) {
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: Module.default.CompatComponent
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: /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Component, _extends({}, props, {
65
- innerRef: ref
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
- resolve(shareOptions);
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 !== 2) {
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: Module.default.CompatComponent
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.ForwardRefExoticComponent<React.RefAttributes<unknown>>;
7
- CompatComponent: React.ForwardRefExoticComponent<React.RefAttributes<unknown>>;
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.10",
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
  }