@empjs/share 3.3.1-beta.1 → 3.3.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/dist/adapter.cjs +1 -1
- package/dist/adapter.cjs.map +1 -1
- package/dist/adapter.d.cts +2 -7
- package/dist/adapter.d.ts +2 -7
- package/dist/adapter.js +1 -1
- package/dist/adapter.js.map +1 -1
- package/output/full.js +1 -1
- package/output/full.js.map +1 -1
- package/output/sdk.js +1 -1
- package/output/sdk.js.map +1 -1
- package/output/sdkPolyfill.js +1 -1
- package/output/sdkPolyfill.js.map +1 -1
- package/package.json +37 -22
package/dist/adapter.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var p=Object.defineProperty;var
|
|
1
|
+
"use strict";var p=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var M=(t,e)=>{for(var o in e)p(t,o,{get:e[o],enumerable:!0})},x=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of P(e))!v.call(t,r)&&r!==o&&p(t,r,{get:()=>e[r],enumerable:!(n=E(e,r))||n.enumerable});return t};var S=t=>x(p({},"__esModule",{value:!0}),t);var O={};M(O,{default:()=>C,reactAdapter:()=>m});module.exports=S(O);var h=t=>t?Number(t.split(".")[0]):0,d=t=>t&&Object.prototype.toString.call(t)==="[object Promise]",A=!1,i=A?console.log.bind(console,"[EMP Share]"):()=>{};var y={},b=window;i("process.env.EMPSHARE_ENV","prod");var{EMPShareGlobalVal:l}=b||{};l&&l.frameworkLib&&(y=b[l.frameworkLib]);var u=class{libs={scope:"default",...y};constructor(e){e&&this.setup(e)}setup(e){e&&(typeof e=="string"&&(e=window[e]),this.libs={...this.libs,...e})}get shared(){let{React:e,ReactDOM:o,scope:n}=this.libs;return{react:{lib:()=>e,version:e.version,scope:n,shareConfig:{singleton:!0,requiredVersion:`^${e.version}`}},"react-dom":{lib:()=>o,version:o.version,scope:n,shareConfig:{singleton:!0,requiredVersion:`^${e.version}`}}}}adapter(e,o=this.libs.scope,n=this.libs.React,r=this.libs.ReactDOM){let a=h(n.version),R=this;class g extends n.Component{containerRef;root;constructor(s){super(s),this.containerRef=n.createRef()}componentDidMount(){i("componentDidMount"),this.mountOriginalComponent(!0)}componentDidUpdate(){i("componentDidUpdate"),this.mountOriginalComponent()}componentWillUnmount(){i("componentWillUnmount"),this.unMountOriginalComponent()}unMountOriginalComponent(){this.containerRef.current&&(a<18?r.unmountComponentAtNode(this.containerRef.current):this.root.unmount())}async mountOriginalComponent(s){d(e)&&(e=await e.then(c=>c[o]));let f=n.createElement(e,this.props);if(a<18)(s?r.render:r.hydrate)(f,this.containerRef.current),i("shouldRender16",s,a);else if(i("shouldRender18",s,a),s){let{createRoot:c}=R.libs;this.root=c(this.containerRef.current),this.root.render(f)}else this.root.render()}render(){return n.createElement("div",{ref:this.containerRef})}}return g}},m=new u;var C=m;0&&(module.exports={reactAdapter});
|
|
2
2
|
//# sourceMappingURL=adapter.cjs.map
|
package/dist/adapter.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/adapter/index.ts","../src/helper/index.ts","../src/adapter/react.tsx","../src/adapter/vue.ts"],"sourcesContent":["import reactAdapter from 'src/adapter/react'\nimport vueAdapter from 'src/adapter/vue'\nexport {reactAdapter, vueAdapter}\nexport default reactAdapter\n","export const importJsVm = (content: string) => `data:text/javascript,${content}`\n\nexport function deepAssign<T>(target: any, ...sources: any): T {\n for (const source of sources) {\n for (const k in source) {\n const vs = source[k],\n vt = target[k]\n if (Object(vs) == vs && Object(vt) === vt) {\n target[k] = deepAssign(vt, vs)\n continue\n }\n target[k] = source[k]\n }\n }\n return target\n}\n\nexport const checkVersion = (version: string) => (version ? Number(version.split('.')[0]) : 0)\nexport const isPromise = (p: any) => p && Object.prototype.toString.call(p) === '[object Promise]'\n\n//\nexport const isDev = process.env.EMPSHARE_ENV === 'dev'\nexport const log = isDev ? console.log.bind(console, '[EMP Share]') : () => {}\n","import {checkVersion, isPromise} from 'src/helper'\nimport type {EMPShareRuntimeAdapterReactType, InitOptionsType} from 'src/types'\nimport {log} from '../helper'\n//\nlet globalLib = {}\nconst win: any = window\n//\nlog('process.env.EMPSHARE_ENV', process.env.EMPSHARE_ENV)\n//\nconst {EMPShareGlobalVal} = win || {}\nif (EMPShareGlobalVal && EMPShareGlobalVal.frameworkLib) {\n globalLib = win[EMPShareGlobalVal.frameworkLib]\n}\n//\nexport class ReactAdapter {\n libs: EMPShareRuntimeAdapterReactType = {\n scope: 'default',\n ...globalLib,\n }\n constructor(op?: EMPShareRuntimeAdapterReactType) {\n if (op) this.setup(op)\n }\n public setup(o?: EMPShareRuntimeAdapterReactType | string) {\n if (o) {\n if (typeof o === 'string') o = window[o]\n this.libs = {...this.libs, ...(o as any)}\n }\n }\n get shared(): InitOptionsType['shared'] {\n const {React, ReactDOM, scope} = this.libs as EMPShareRuntimeAdapterReactType\n return {\n react: {\n lib: () => React,\n version: React.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${React.version}`,\n },\n },\n 'react-dom': {\n lib: () => ReactDOM,\n version: ReactDOM.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${React.version}`,\n },\n },\n }\n }\n adapter<P = any>(\n component: any,\n scope: string = this.libs.scope,\n React: any = this.libs.React,\n ReactDOM: any = this.libs.ReactDOM,\n ): P {\n const reactVersion = checkVersion(React.version)\n const self = this\n class WrappedComponent extends React.Component {\n public containerRef: any\n public root: any\n constructor(props: P) {\n super(props as any)\n this.containerRef = React.createRef()\n }\n\n componentDidMount() {\n log('componentDidMount')\n this.mountOriginalComponent(true)\n }\n\n componentDidUpdate() {\n log('componentDidUpdate')\n this.mountOriginalComponent()\n }\n\n componentWillUnmount() {\n log('componentWillUnmount')\n this.unMountOriginalComponent()\n }\n unMountOriginalComponent() {\n if (!this.containerRef.current) return\n if (reactVersion < 18) {\n ReactDOM.unmountComponentAtNode(this.containerRef.current)\n } else {\n this.root.unmount()\n }\n }\n async mountOriginalComponent(shouldRender?: boolean) {\n if (isPromise(component))\n component = await component.then((m: any) => {\n return m[scope]\n })\n const element = React.createElement(component, this.props)\n\n if (reactVersion < 18) {\n const Render = shouldRender ? ReactDOM.render : ReactDOM.hydrate\n Render(element, this.containerRef.current)\n log('shouldRender16', shouldRender, reactVersion)\n } else {\n log('shouldRender18', shouldRender, reactVersion)\n if (shouldRender) {\n const {createRoot} = self.libs\n this.root = createRoot(this.containerRef.current!)\n this.root.render(element)\n } else {\n // const {hydrateRoot} = self.libs\n // this.root = hydrateRoot(this.containerRef.current!, element)\n this.root.render()\n }\n }\n }\n\n render() {\n return <div ref={this.containerRef} />\n }\n }\n return WrappedComponent as any\n }\n}\n\nexport default new ReactAdapter()\n","const globalVue3Cache: any = {vue: {defineComponent: null, h: null, ref: null}, increaseId: Date.now()}\nconst win = window as any\nfunction bindSlotContext(target: any, context: any) {\n return Object.keys(target).map(key => {\n const vnode = target[key]\n vnode.context = context\n return vnode\n })\n}\n\nfunction vue2ToVue3(WrapperComponent: any, wrapperId: string): any {\n // console.log(`vue2ToVue3`, WrapperComponent, wrapperId);\n\n const Vue2 = win.EMP_ADAPTER_VUE.Vue\n let vm: any\n return {\n mounted() {\n const slots = this.$slots ? bindSlotContext(this.$slots, this.__self) : null\n vm = new Vue2({\n render: (createElement: any) => {\n return createElement(\n WrapperComponent,\n {\n on: this.$attrs,\n attrs: this.$attrs,\n props: this.$props,\n scopedSlots: this.$scopedSlots,\n },\n slots,\n )\n },\n })\n vm.$mount(`#${wrapperId}`)\n },\n props: WrapperComponent.props,\n render() {\n vm && vm.$forceUpdate()\n },\n }\n}\n\nconst initVue2InVue3Adapter = (vue: any) => {\n globalVue3Cache.vue = vue\n}\n// 创建组件\nconst Vue2InVue3Adapter = (() => {\n initVue2InVue3Adapter(win.Vue)\n const {defineComponent, h, ref} = globalVue3Cache.vue\n if (!(defineComponent && h && ref)) {\n console.warn('emp3 Vue2InVue3Adapter has not init')\n return () => {}\n }\n return defineComponent({\n // 声明props\n props: {\n mfComponent: {\n type: Function,\n required: true,\n },\n },\n setup() {\n const renderId = ref(globalVue3Cache.increaseId)\n globalVue3Cache.increaseId++\n return {\n renderId,\n }\n },\n render() {\n const {renderId} = this\n return h('div', [h('div', {id: `vue2-in-vue3${renderId}`})])\n },\n mounted() {\n ;(async () => {\n const fc = await this.mfComponent()\n vue2ToVue3(fc.default, `vue2-in-vue3${this.renderId}`).mounted()\n })()\n },\n })\n})()\n\nconst Vue3InVue2Adapter = () => {console.log('not implement')}\n\nexport default {Vue2InVue3Adapter, Vue3InVue2Adapter}\n"],"mappings":"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","names":["adapter_exports","__export","adapter_default","react_default","vue_default","__toCommonJS","checkVersion","version","isPromise","p","isDev","log","globalLib","win","log","EMPShareGlobalVal","ReactAdapter","op","o","React","ReactDOM","scope","component","reactVersion","checkVersion","self","WrappedComponent","props","shouldRender","isPromise","m","element","createRoot","react_default","globalVue3Cache","win","bindSlotContext","target","context","key","vnode","vue2ToVue3","WrapperComponent","wrapperId","Vue2","vm","slots","createElement","initVue2InVue3Adapter","vue","Vue2InVue3Adapter","defineComponent","h","ref","renderId","fc","Vue3InVue2Adapter","vue_default","adapter_default","react_default"]}
|
|
1
|
+
{"version":3,"sources":["../src/adapter/index.ts","../src/helper/index.ts","../src/adapter/react.tsx"],"sourcesContent":["import reactAdapter from 'src/adapter/react'\n// import vueAdapter from 'src/adapter/vue'\nexport {reactAdapter}\nexport default reactAdapter\n","export const importJsVm = (content: string) => `data:text/javascript,${content}`\n\nexport function deepAssign<T>(target: any, ...sources: any): T {\n for (const source of sources) {\n for (const k in source) {\n const vs = source[k],\n vt = target[k]\n if (Object(vs) == vs && Object(vt) === vt) {\n target[k] = deepAssign(vt, vs)\n continue\n }\n target[k] = source[k]\n }\n }\n return target\n}\n\nexport const checkVersion = (version: string) => (version ? Number(version.split('.')[0]) : 0)\nexport const isPromise = (p: any) => p && Object.prototype.toString.call(p) === '[object Promise]'\n\n//\nexport const isDev = process.env.EMPSHARE_ENV === 'dev'\nexport const log = isDev ? console.log.bind(console, '[EMP Share]') : () => {}\n","import {checkVersion, isPromise} from 'src/helper'\nimport type {EMPShareRuntimeAdapterReactType, InitOptionsType} from 'src/types'\nimport {log} from '../helper'\n//\nlet globalLib = {}\nconst win: any = window\n//\nlog('process.env.EMPSHARE_ENV', process.env.EMPSHARE_ENV)\n//\nconst {EMPShareGlobalVal} = win || {}\nif (EMPShareGlobalVal && EMPShareGlobalVal.frameworkLib) {\n globalLib = win[EMPShareGlobalVal.frameworkLib]\n}\n//\nexport class ReactAdapter {\n libs: EMPShareRuntimeAdapterReactType = {\n scope: 'default',\n ...globalLib,\n }\n constructor(op?: EMPShareRuntimeAdapterReactType) {\n if (op) this.setup(op)\n }\n public setup(o?: EMPShareRuntimeAdapterReactType | string) {\n if (o) {\n if (typeof o === 'string') o = window[o]\n this.libs = {...this.libs, ...(o as any)}\n }\n }\n get shared(): InitOptionsType['shared'] {\n const {React, ReactDOM, scope} = this.libs as EMPShareRuntimeAdapterReactType\n return {\n react: {\n lib: () => React,\n version: React.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${React.version}`,\n },\n },\n 'react-dom': {\n lib: () => ReactDOM,\n version: ReactDOM.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${React.version}`,\n },\n },\n }\n }\n adapter<P = any>(\n component: any,\n scope: string = this.libs.scope,\n React: any = this.libs.React,\n ReactDOM: any = this.libs.ReactDOM,\n ): P {\n const reactVersion = checkVersion(React.version)\n const self = this\n class WrappedComponent extends React.Component {\n public containerRef: any\n public root: any\n constructor(props: P) {\n super(props as any)\n this.containerRef = React.createRef()\n }\n\n componentDidMount() {\n log('componentDidMount')\n this.mountOriginalComponent(true)\n }\n\n componentDidUpdate() {\n log('componentDidUpdate')\n this.mountOriginalComponent()\n }\n\n componentWillUnmount() {\n log('componentWillUnmount')\n this.unMountOriginalComponent()\n }\n unMountOriginalComponent() {\n if (!this.containerRef.current) return\n if (reactVersion < 18) {\n ReactDOM.unmountComponentAtNode(this.containerRef.current)\n } else {\n this.root.unmount()\n }\n }\n async mountOriginalComponent(shouldRender?: boolean) {\n if (isPromise(component))\n component = await component.then((m: any) => {\n return m[scope]\n })\n const element = React.createElement(component, this.props)\n\n if (reactVersion < 18) {\n const Render = shouldRender ? ReactDOM.render : ReactDOM.hydrate\n Render(element, this.containerRef.current)\n log('shouldRender16', shouldRender, reactVersion)\n } else {\n log('shouldRender18', shouldRender, reactVersion)\n if (shouldRender) {\n const {createRoot} = self.libs\n this.root = createRoot(this.containerRef.current!)\n this.root.render(element)\n } else {\n // const {hydrateRoot} = self.libs\n // this.root = hydrateRoot(this.containerRef.current!, element)\n this.root.render()\n }\n }\n }\n\n render() {\n return <div ref={this.containerRef} />\n }\n }\n return WrappedComponent as any\n }\n}\n\nexport default new ReactAdapter()\n"],"mappings":"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","names":["adapter_exports","__export","adapter_default","react_default","__toCommonJS","checkVersion","version","isPromise","p","isDev","log","globalLib","win","log","EMPShareGlobalVal","ReactAdapter","op","o","React","ReactDOM","scope","component","reactVersion","checkVersion","self","WrappedComponent","props","shouldRender","isPromise","m","element","createRoot","react_default","adapter_default","react_default"]}
|
package/dist/adapter.d.cts
CHANGED
|
@@ -9,11 +9,6 @@ declare class ReactAdapter {
|
|
|
9
9
|
get shared(): InitOptionsType['shared'];
|
|
10
10
|
adapter<P = any>(component: any, scope?: string, React?: any, ReactDOM?: any): P;
|
|
11
11
|
}
|
|
12
|
-
declare const _default
|
|
12
|
+
declare const _default: ReactAdapter;
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
Vue2InVue3Adapter: any;
|
|
16
|
-
Vue3InVue2Adapter: () => void;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export { _default$1 as default, _default$1 as reactAdapter, _default as vueAdapter };
|
|
14
|
+
export { _default as default, _default as reactAdapter };
|
package/dist/adapter.d.ts
CHANGED
|
@@ -9,11 +9,6 @@ declare class ReactAdapter {
|
|
|
9
9
|
get shared(): InitOptionsType['shared'];
|
|
10
10
|
adapter<P = any>(component: any, scope?: string, React?: any, ReactDOM?: any): P;
|
|
11
11
|
}
|
|
12
|
-
declare const _default
|
|
12
|
+
declare const _default: ReactAdapter;
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
Vue2InVue3Adapter: any;
|
|
16
|
-
Vue3InVue2Adapter: () => void;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export { _default$1 as default, _default$1 as reactAdapter, _default as vueAdapter };
|
|
14
|
+
export { _default as default, _default as reactAdapter };
|
package/dist/adapter.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var m=
|
|
1
|
+
var m=o=>o?Number(o.split(".")[0]):0,f=o=>o&&Object.prototype.toString.call(o)==="[object Promise]",g=!1,n=g?console.log.bind(console,"[EMP Share]"):()=>{};var h={},d=window;n("process.env.EMPSHARE_ENV","prod");var{EMPShareGlobalVal:p}=d||{};p&&p.frameworkLib&&(h=d[p.frameworkLib]);var l=class{libs={scope:"default",...h};constructor(e){e&&this.setup(e)}setup(e){e&&(typeof e=="string"&&(e=window[e]),this.libs={...this.libs,...e})}get shared(){let{React:e,ReactDOM:i,scope:t}=this.libs;return{react:{lib:()=>e,version:e.version,scope:t,shareConfig:{singleton:!0,requiredVersion:`^${e.version}`}},"react-dom":{lib:()=>i,version:i.version,scope:t,shareConfig:{singleton:!0,requiredVersion:`^${e.version}`}}}}adapter(e,i=this.libs.scope,t=this.libs.React,c=this.libs.ReactDOM){let s=m(t.version),b=this;class R extends t.Component{containerRef;root;constructor(r){super(r),this.containerRef=t.createRef()}componentDidMount(){n("componentDidMount"),this.mountOriginalComponent(!0)}componentDidUpdate(){n("componentDidUpdate"),this.mountOriginalComponent()}componentWillUnmount(){n("componentWillUnmount"),this.unMountOriginalComponent()}unMountOriginalComponent(){this.containerRef.current&&(s<18?c.unmountComponentAtNode(this.containerRef.current):this.root.unmount())}async mountOriginalComponent(r){f(e)&&(e=await e.then(a=>a[i]));let u=t.createElement(e,this.props);if(s<18)(r?c.render:c.hydrate)(u,this.containerRef.current),n("shouldRender16",r,s);else if(n("shouldRender18",r,s),r){let{createRoot:a}=b.libs;this.root=a(this.containerRef.current),this.root.render(u)}else this.root.render()}render(){return t.createElement("div",{ref:this.containerRef})}}return R}},y=new l;var A=y;export{A as default,y as reactAdapter};
|
|
2
2
|
//# sourceMappingURL=adapter.js.map
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/helper/index.ts","../src/adapter/react.tsx","../src/adapter/vue.ts","../src/adapter/index.ts"],"sourcesContent":["export const importJsVm = (content: string) => `data:text/javascript,${content}`\n\nexport function deepAssign<T>(target: any, ...sources: any): T {\n for (const source of sources) {\n for (const k in source) {\n const vs = source[k],\n vt = target[k]\n if (Object(vs) == vs && Object(vt) === vt) {\n target[k] = deepAssign(vt, vs)\n continue\n }\n target[k] = source[k]\n }\n }\n return target\n}\n\nexport const checkVersion = (version: string) => (version ? Number(version.split('.')[0]) : 0)\nexport const isPromise = (p: any) => p && Object.prototype.toString.call(p) === '[object Promise]'\n\n//\nexport const isDev = process.env.EMPSHARE_ENV === 'dev'\nexport const log = isDev ? console.log.bind(console, '[EMP Share]') : () => {}\n","import {checkVersion, isPromise} from 'src/helper'\nimport type {EMPShareRuntimeAdapterReactType, InitOptionsType} from 'src/types'\nimport {log} from '../helper'\n//\nlet globalLib = {}\nconst win: any = window\n//\nlog('process.env.EMPSHARE_ENV', process.env.EMPSHARE_ENV)\n//\nconst {EMPShareGlobalVal} = win || {}\nif (EMPShareGlobalVal && EMPShareGlobalVal.frameworkLib) {\n globalLib = win[EMPShareGlobalVal.frameworkLib]\n}\n//\nexport class ReactAdapter {\n libs: EMPShareRuntimeAdapterReactType = {\n scope: 'default',\n ...globalLib,\n }\n constructor(op?: EMPShareRuntimeAdapterReactType) {\n if (op) this.setup(op)\n }\n public setup(o?: EMPShareRuntimeAdapterReactType | string) {\n if (o) {\n if (typeof o === 'string') o = window[o]\n this.libs = {...this.libs, ...(o as any)}\n }\n }\n get shared(): InitOptionsType['shared'] {\n const {React, ReactDOM, scope} = this.libs as EMPShareRuntimeAdapterReactType\n return {\n react: {\n lib: () => React,\n version: React.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${React.version}`,\n },\n },\n 'react-dom': {\n lib: () => ReactDOM,\n version: ReactDOM.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${React.version}`,\n },\n },\n }\n }\n adapter<P = any>(\n component: any,\n scope: string = this.libs.scope,\n React: any = this.libs.React,\n ReactDOM: any = this.libs.ReactDOM,\n ): P {\n const reactVersion = checkVersion(React.version)\n const self = this\n class WrappedComponent extends React.Component {\n public containerRef: any\n public root: any\n constructor(props: P) {\n super(props as any)\n this.containerRef = React.createRef()\n }\n\n componentDidMount() {\n log('componentDidMount')\n this.mountOriginalComponent(true)\n }\n\n componentDidUpdate() {\n log('componentDidUpdate')\n this.mountOriginalComponent()\n }\n\n componentWillUnmount() {\n log('componentWillUnmount')\n this.unMountOriginalComponent()\n }\n unMountOriginalComponent() {\n if (!this.containerRef.current) return\n if (reactVersion < 18) {\n ReactDOM.unmountComponentAtNode(this.containerRef.current)\n } else {\n this.root.unmount()\n }\n }\n async mountOriginalComponent(shouldRender?: boolean) {\n if (isPromise(component))\n component = await component.then((m: any) => {\n return m[scope]\n })\n const element = React.createElement(component, this.props)\n\n if (reactVersion < 18) {\n const Render = shouldRender ? ReactDOM.render : ReactDOM.hydrate\n Render(element, this.containerRef.current)\n log('shouldRender16', shouldRender, reactVersion)\n } else {\n log('shouldRender18', shouldRender, reactVersion)\n if (shouldRender) {\n const {createRoot} = self.libs\n this.root = createRoot(this.containerRef.current!)\n this.root.render(element)\n } else {\n // const {hydrateRoot} = self.libs\n // this.root = hydrateRoot(this.containerRef.current!, element)\n this.root.render()\n }\n }\n }\n\n render() {\n return <div ref={this.containerRef} />\n }\n }\n return WrappedComponent as any\n }\n}\n\nexport default new ReactAdapter()\n","const globalVue3Cache: any = {vue: {defineComponent: null, h: null, ref: null}, increaseId: Date.now()}\nconst win = window as any\nfunction bindSlotContext(target: any, context: any) {\n return Object.keys(target).map(key => {\n const vnode = target[key]\n vnode.context = context\n return vnode\n })\n}\n\nfunction vue2ToVue3(WrapperComponent: any, wrapperId: string): any {\n // console.log(`vue2ToVue3`, WrapperComponent, wrapperId);\n\n const Vue2 = win.EMP_ADAPTER_VUE.Vue\n let vm: any\n return {\n mounted() {\n const slots = this.$slots ? bindSlotContext(this.$slots, this.__self) : null\n vm = new Vue2({\n render: (createElement: any) => {\n return createElement(\n WrapperComponent,\n {\n on: this.$attrs,\n attrs: this.$attrs,\n props: this.$props,\n scopedSlots: this.$scopedSlots,\n },\n slots,\n )\n },\n })\n vm.$mount(`#${wrapperId}`)\n },\n props: WrapperComponent.props,\n render() {\n vm && vm.$forceUpdate()\n },\n }\n}\n\nconst initVue2InVue3Adapter = (vue: any) => {\n globalVue3Cache.vue = vue\n}\n// 创建组件\nconst Vue2InVue3Adapter = (() => {\n initVue2InVue3Adapter(win.Vue)\n const {defineComponent, h, ref} = globalVue3Cache.vue\n if (!(defineComponent && h && ref)) {\n console.warn('emp3 Vue2InVue3Adapter has not init')\n return () => {}\n }\n return defineComponent({\n // 声明props\n props: {\n mfComponent: {\n type: Function,\n required: true,\n },\n },\n setup() {\n const renderId = ref(globalVue3Cache.increaseId)\n globalVue3Cache.increaseId++\n return {\n renderId,\n }\n },\n render() {\n const {renderId} = this\n return h('div', [h('div', {id: `vue2-in-vue3${renderId}`})])\n },\n mounted() {\n ;(async () => {\n const fc = await this.mfComponent()\n vue2ToVue3(fc.default, `vue2-in-vue3${this.renderId}`).mounted()\n })()\n },\n })\n})()\n\nconst Vue3InVue2Adapter = () => {console.log('not implement')}\n\nexport default {Vue2InVue3Adapter, Vue3InVue2Adapter}\n","import reactAdapter from 'src/adapter/react'\nimport vueAdapter from 'src/adapter/vue'\nexport {reactAdapter, vueAdapter}\nexport default reactAdapter\n"],"mappings":"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","names":["checkVersion","version","isPromise","p","isDev","log","globalLib","win","log","EMPShareGlobalVal","ReactAdapter","op","o","React","ReactDOM","scope","component","reactVersion","checkVersion","self","WrappedComponent","props","shouldRender","isPromise","m","element","createRoot","react_default","globalVue3Cache","win","bindSlotContext","target","context","key","vnode","vue2ToVue3","WrapperComponent","wrapperId","Vue2","vm","slots","createElement","initVue2InVue3Adapter","vue","Vue2InVue3Adapter","defineComponent","h","ref","renderId","fc","Vue3InVue2Adapter","vue_default","adapter_default","react_default"]}
|
|
1
|
+
{"version":3,"sources":["../src/helper/index.ts","../src/adapter/react.tsx","../src/adapter/index.ts"],"sourcesContent":["export const importJsVm = (content: string) => `data:text/javascript,${content}`\n\nexport function deepAssign<T>(target: any, ...sources: any): T {\n for (const source of sources) {\n for (const k in source) {\n const vs = source[k],\n vt = target[k]\n if (Object(vs) == vs && Object(vt) === vt) {\n target[k] = deepAssign(vt, vs)\n continue\n }\n target[k] = source[k]\n }\n }\n return target\n}\n\nexport const checkVersion = (version: string) => (version ? Number(version.split('.')[0]) : 0)\nexport const isPromise = (p: any) => p && Object.prototype.toString.call(p) === '[object Promise]'\n\n//\nexport const isDev = process.env.EMPSHARE_ENV === 'dev'\nexport const log = isDev ? console.log.bind(console, '[EMP Share]') : () => {}\n","import {checkVersion, isPromise} from 'src/helper'\nimport type {EMPShareRuntimeAdapterReactType, InitOptionsType} from 'src/types'\nimport {log} from '../helper'\n//\nlet globalLib = {}\nconst win: any = window\n//\nlog('process.env.EMPSHARE_ENV', process.env.EMPSHARE_ENV)\n//\nconst {EMPShareGlobalVal} = win || {}\nif (EMPShareGlobalVal && EMPShareGlobalVal.frameworkLib) {\n globalLib = win[EMPShareGlobalVal.frameworkLib]\n}\n//\nexport class ReactAdapter {\n libs: EMPShareRuntimeAdapterReactType = {\n scope: 'default',\n ...globalLib,\n }\n constructor(op?: EMPShareRuntimeAdapterReactType) {\n if (op) this.setup(op)\n }\n public setup(o?: EMPShareRuntimeAdapterReactType | string) {\n if (o) {\n if (typeof o === 'string') o = window[o]\n this.libs = {...this.libs, ...(o as any)}\n }\n }\n get shared(): InitOptionsType['shared'] {\n const {React, ReactDOM, scope} = this.libs as EMPShareRuntimeAdapterReactType\n return {\n react: {\n lib: () => React,\n version: React.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${React.version}`,\n },\n },\n 'react-dom': {\n lib: () => ReactDOM,\n version: ReactDOM.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${React.version}`,\n },\n },\n }\n }\n adapter<P = any>(\n component: any,\n scope: string = this.libs.scope,\n React: any = this.libs.React,\n ReactDOM: any = this.libs.ReactDOM,\n ): P {\n const reactVersion = checkVersion(React.version)\n const self = this\n class WrappedComponent extends React.Component {\n public containerRef: any\n public root: any\n constructor(props: P) {\n super(props as any)\n this.containerRef = React.createRef()\n }\n\n componentDidMount() {\n log('componentDidMount')\n this.mountOriginalComponent(true)\n }\n\n componentDidUpdate() {\n log('componentDidUpdate')\n this.mountOriginalComponent()\n }\n\n componentWillUnmount() {\n log('componentWillUnmount')\n this.unMountOriginalComponent()\n }\n unMountOriginalComponent() {\n if (!this.containerRef.current) return\n if (reactVersion < 18) {\n ReactDOM.unmountComponentAtNode(this.containerRef.current)\n } else {\n this.root.unmount()\n }\n }\n async mountOriginalComponent(shouldRender?: boolean) {\n if (isPromise(component))\n component = await component.then((m: any) => {\n return m[scope]\n })\n const element = React.createElement(component, this.props)\n\n if (reactVersion < 18) {\n const Render = shouldRender ? ReactDOM.render : ReactDOM.hydrate\n Render(element, this.containerRef.current)\n log('shouldRender16', shouldRender, reactVersion)\n } else {\n log('shouldRender18', shouldRender, reactVersion)\n if (shouldRender) {\n const {createRoot} = self.libs\n this.root = createRoot(this.containerRef.current!)\n this.root.render(element)\n } else {\n // const {hydrateRoot} = self.libs\n // this.root = hydrateRoot(this.containerRef.current!, element)\n this.root.render()\n }\n }\n }\n\n render() {\n return <div ref={this.containerRef} />\n }\n }\n return WrappedComponent as any\n }\n}\n\nexport default new ReactAdapter()\n","import reactAdapter from 'src/adapter/react'\n// import vueAdapter from 'src/adapter/vue'\nexport {reactAdapter}\nexport default reactAdapter\n"],"mappings":"AAiBO,IAAMA,EAAgBC,GAAqBA,EAAU,OAAOA,EAAQ,MAAM,GAAG,EAAE,CAAC,CAAC,EAAI,EAC/EC,EAAaC,GAAWA,GAAK,OAAO,UAAU,SAAS,KAAKA,CAAC,IAAM,mBAGnEC,EAAQ,GACRC,EAAMD,EAAQ,QAAQ,IAAI,KAAK,QAAS,aAAa,EAAI,IAAM,CAAC,EClB7E,IAAIE,EAAY,CAAC,EACXC,EAAW,OAEjBC,EAAI,2BAA4B,MAAwB,EAExD,GAAM,CAAC,kBAAAC,CAAiB,EAAIF,GAAO,CAAC,EAChCE,GAAqBA,EAAkB,eACzCH,EAAYC,EAAIE,EAAkB,YAAY,GAGzC,IAAMC,EAAN,KAAmB,CACxB,KAAwC,CACtC,MAAO,UACP,GAAGJ,CACL,EACA,YAAYK,EAAsC,CAC5CA,GAAI,KAAK,MAAMA,CAAE,CACvB,CACO,MAAMC,EAA8C,CACrDA,IACE,OAAOA,GAAM,WAAUA,EAAI,OAAOA,CAAC,GACvC,KAAK,KAAO,CAAC,GAAG,KAAK,KAAM,GAAIA,CAAS,EAE5C,CACA,IAAI,QAAoC,CACtC,GAAM,CAAC,MAAAC,EAAO,SAAAC,EAAU,MAAAC,CAAK,EAAI,KAAK,KACtC,MAAO,CACL,MAAO,CACL,IAAK,IAAMF,EACX,QAASA,EAAM,QACf,MAAAE,EACA,YAAa,CACX,UAAW,GACX,gBAAiB,IAAIF,EAAM,OAAO,EACpC,CACF,EACA,YAAa,CACX,IAAK,IAAMC,EACX,QAASA,EAAS,QAClB,MAAAC,EACA,YAAa,CACX,UAAW,GACX,gBAAiB,IAAIF,EAAM,OAAO,EACpC,CACF,CACF,CACF,CACA,QACEG,EACAD,EAAgB,KAAK,KAAK,MAC1BF,EAAa,KAAK,KAAK,MACvBC,EAAgB,KAAK,KAAK,SACvB,CACH,IAAMG,EAAeC,EAAaL,EAAM,OAAO,EACzCM,EAAO,KACb,MAAMC,UAAyBP,EAAM,SAAU,CACtC,aACA,KACP,YAAYQ,EAAU,CACpB,MAAMA,CAAY,EAClB,KAAK,aAAeR,EAAM,UAAU,CACtC,CAEA,mBAAoB,CAClBL,EAAI,mBAAmB,EACvB,KAAK,uBAAuB,EAAI,CAClC,CAEA,oBAAqB,CACnBA,EAAI,oBAAoB,EACxB,KAAK,uBAAuB,CAC9B,CAEA,sBAAuB,CACrBA,EAAI,sBAAsB,EAC1B,KAAK,yBAAyB,CAChC,CACA,0BAA2B,CACpB,KAAK,aAAa,UACnBS,EAAe,GACjBH,EAAS,uBAAuB,KAAK,aAAa,OAAO,EAEzD,KAAK,KAAK,QAAQ,EAEtB,CACA,MAAM,uBAAuBQ,EAAwB,CAC/CC,EAAUP,CAAS,IACrBA,EAAY,MAAMA,EAAU,KAAMQ,GACzBA,EAAET,CAAK,CACf,GACH,IAAMU,EAAUZ,EAAM,cAAcG,EAAW,KAAK,KAAK,EAEzD,GAAIC,EAAe,IACFK,EAAeR,EAAS,OAASA,EAAS,SAClDW,EAAS,KAAK,aAAa,OAAO,EACzCjB,EAAI,iBAAkBc,EAAcL,CAAY,UAEhDT,EAAI,iBAAkBc,EAAcL,CAAY,EAC5CK,EAAc,CAChB,GAAM,CAAC,WAAAI,CAAU,EAAIP,EAAK,KAC1B,KAAK,KAAOO,EAAW,KAAK,aAAa,OAAQ,EACjD,KAAK,KAAK,OAAOD,CAAO,CAC1B,MAGE,KAAK,KAAK,OAAO,CAGvB,CAEA,QAAS,CACP,OAAOZ,EAAA,cAAC,OAAI,IAAK,KAAK,aAAc,CACtC,CACF,CACA,OAAOO,CACT,CACF,EAEOO,EAAQ,IAAIjB,ECvHnB,IAAOkB,EAAQC","names":["checkVersion","version","isPromise","p","isDev","log","globalLib","win","log","EMPShareGlobalVal","ReactAdapter","op","o","React","ReactDOM","scope","component","reactVersion","checkVersion","self","WrappedComponent","props","shouldRender","isPromise","m","element","createRoot","react_default","adapter_default","react_default"]}
|