@spcsn/taro-mini-runner 1.0.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.
Files changed (154) hide show
  1. package/README.md +103 -0
  2. package/dist/entrypoints/mini-runner.d.ts +2 -0
  3. package/dist/entrypoints/mini-runner.js +96 -0
  4. package/dist/entrypoints/mini-runner.js.map +1 -0
  5. package/dist/index.d.ts +5 -0
  6. package/dist/index.js +9 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/mini-program/config.d.ts +3 -0
  9. package/dist/mini-program/config.js +237 -0
  10. package/dist/mini-program/config.js.map +1 -0
  11. package/dist/mini-program/default-config.d.ts +3 -0
  12. package/dist/mini-program/default-config.js +49 -0
  13. package/dist/mini-program/default-config.js.map +1 -0
  14. package/dist/mini-program/emit.d.ts +3 -0
  15. package/dist/mini-program/emit.js +247 -0
  16. package/dist/mini-program/emit.js.map +1 -0
  17. package/dist/mini-program/entry.d.ts +3 -0
  18. package/dist/mini-program/entry.js +142 -0
  19. package/dist/mini-program/entry.js.map +1 -0
  20. package/dist/mini-program/index.d.ts +3 -0
  21. package/dist/mini-program/index.js +29 -0
  22. package/dist/mini-program/index.js.map +1 -0
  23. package/dist/mini-program/native-support.d.ts +6 -0
  24. package/dist/mini-program/native-support.js +160 -0
  25. package/dist/mini-program/native-support.js.map +1 -0
  26. package/dist/mini-program/page.d.ts +4 -0
  27. package/dist/mini-program/page.js +223 -0
  28. package/dist/mini-program/page.js.map +1 -0
  29. package/dist/mini-program/pipeline.d.ts +3 -0
  30. package/dist/mini-program/pipeline.js +46 -0
  31. package/dist/mini-program/pipeline.js.map +1 -0
  32. package/dist/mini-program/postcss.d.ts +6 -0
  33. package/dist/mini-program/postcss.js +26 -0
  34. package/dist/mini-program/postcss.js.map +1 -0
  35. package/dist/mini-program/style.d.ts +3 -0
  36. package/dist/mini-program/style.js +67 -0
  37. package/dist/mini-program/style.js.map +1 -0
  38. package/dist/plugins/rollup-plugin-increment.d.ts +8 -0
  39. package/dist/plugins/rollup-plugin-increment.js +52 -0
  40. package/dist/plugins/rollup-plugin-increment.js.map +1 -0
  41. package/dist/plugins/vite-plugin-assets.d.ts +3 -0
  42. package/dist/plugins/vite-plugin-assets.js +135 -0
  43. package/dist/plugins/vite-plugin-assets.js.map +1 -0
  44. package/dist/plugins/vite-plugin-multi-platform.d.ts +3 -0
  45. package/dist/plugins/vite-plugin-multi-platform.js +71 -0
  46. package/dist/plugins/vite-plugin-multi-platform.js.map +1 -0
  47. package/dist/react-framework/index.d.ts +27 -0
  48. package/dist/react-framework/index.js +36 -0
  49. package/dist/react-framework/index.js.map +1 -0
  50. package/dist/react-framework/loader-meta.d.ts +3 -0
  51. package/dist/react-framework/loader-meta.js +151 -0
  52. package/dist/react-framework/loader-meta.js.map +1 -0
  53. package/dist/react-framework/runtime/connect-native.d.ts +10 -0
  54. package/dist/react-framework/runtime/connect-native.js +392 -0
  55. package/dist/react-framework/runtime/connect-native.js.map +1 -0
  56. package/dist/react-framework/runtime/connect.d.ts +14 -0
  57. package/dist/react-framework/runtime/connect.js +313 -0
  58. package/dist/react-framework/runtime/connect.js.map +1 -0
  59. package/dist/react-framework/runtime/hooks.d.ts +30 -0
  60. package/dist/react-framework/runtime/hooks.js +87 -0
  61. package/dist/react-framework/runtime/hooks.js.map +1 -0
  62. package/dist/react-framework/runtime/index.d.ts +3 -0
  63. package/dist/react-framework/runtime/index.js +49 -0
  64. package/dist/react-framework/runtime/index.js.map +1 -0
  65. package/dist/react-framework/runtime/react-meta.d.ts +7 -0
  66. package/dist/react-framework/runtime/react-meta.js +9 -0
  67. package/dist/react-framework/runtime/react-meta.js.map +1 -0
  68. package/dist/react-framework/runtime/utils.d.ts +13 -0
  69. package/dist/react-framework/runtime/utils.js +45 -0
  70. package/dist/react-framework/runtime/utils.js.map +1 -0
  71. package/dist/react-framework/vite.mini.d.ts +3 -0
  72. package/dist/react-framework/vite.mini.js +135 -0
  73. package/dist/react-framework/vite.mini.js.map +1 -0
  74. package/dist/react-runtime/component-tree.d.ts +19 -0
  75. package/dist/react-runtime/component-tree.js +65 -0
  76. package/dist/react-runtime/component-tree.js.map +1 -0
  77. package/dist/react-runtime/constant.d.ts +7 -0
  78. package/dist/react-runtime/constant.js +78 -0
  79. package/dist/react-runtime/constant.js.map +1 -0
  80. package/dist/react-runtime/dom-input.d.ts +12 -0
  81. package/dist/react-runtime/dom-input.js +86 -0
  82. package/dist/react-runtime/dom-input.js.map +1 -0
  83. package/dist/react-runtime/event.d.ts +13 -0
  84. package/dist/react-runtime/event.js +83 -0
  85. package/dist/react-runtime/event.js.map +1 -0
  86. package/dist/react-runtime/index.d.ts +33 -0
  87. package/dist/react-runtime/index.js +75 -0
  88. package/dist/react-runtime/index.js.map +1 -0
  89. package/dist/react-runtime/input-value-tracking.d.ts +3 -0
  90. package/dist/react-runtime/input-value-tracking.js +84 -0
  91. package/dist/react-runtime/input-value-tracking.js.map +1 -0
  92. package/dist/react-runtime/props.d.ts +7 -0
  93. package/dist/react-runtime/props.js +153 -0
  94. package/dist/react-runtime/props.js.map +1 -0
  95. package/dist/react-runtime/reconciler.d.ts +5 -0
  96. package/dist/react-runtime/reconciler.js +217 -0
  97. package/dist/react-runtime/reconciler.js.map +1 -0
  98. package/dist/react-runtime/render.d.ts +25 -0
  99. package/dist/react-runtime/render.js +97 -0
  100. package/dist/react-runtime/render.js.map +1 -0
  101. package/dist/react-runtime/work-tags.d.ts +26 -0
  102. package/dist/react-runtime/work-tags.js +29 -0
  103. package/dist/react-runtime/work-tags.js.map +1 -0
  104. package/dist/shared/compiler/base.d.ts +41 -0
  105. package/dist/shared/compiler/base.js +170 -0
  106. package/dist/shared/compiler/base.js.map +1 -0
  107. package/dist/shared/compiler/mini.d.ts +20 -0
  108. package/dist/shared/compiler/mini.js +147 -0
  109. package/dist/shared/compiler/mini.js.map +1 -0
  110. package/dist/shared/component.d.ts +2 -0
  111. package/dist/shared/component.js +21 -0
  112. package/dist/shared/component.js.map +1 -0
  113. package/dist/shared/constants.d.ts +47 -0
  114. package/dist/shared/constants.js +51 -0
  115. package/dist/shared/constants.js.map +1 -0
  116. package/dist/shared/create-filter.d.ts +7 -0
  117. package/dist/shared/create-filter.js +97 -0
  118. package/dist/shared/create-filter.js.map +1 -0
  119. package/dist/shared/html.d.ts +1 -0
  120. package/dist/shared/html.js +19 -0
  121. package/dist/shared/html.js.map +1 -0
  122. package/dist/shared/index.d.ts +39 -0
  123. package/dist/shared/index.js +258 -0
  124. package/dist/shared/index.js.map +1 -0
  125. package/dist/shared/logger.d.ts +7 -0
  126. package/dist/shared/logger.js +146 -0
  127. package/dist/shared/logger.js.map +1 -0
  128. package/dist/shared/map.d.ts +11 -0
  129. package/dist/shared/map.js +41 -0
  130. package/dist/shared/map.js.map +1 -0
  131. package/dist/shared/profile.d.ts +9 -0
  132. package/dist/shared/profile.js +52 -0
  133. package/dist/shared/profile.js.map +1 -0
  134. package/dist/shared/rollup.d.ts +8 -0
  135. package/dist/shared/rollup.js +40 -0
  136. package/dist/shared/rollup.js.map +1 -0
  137. package/dist/shared/runner/constant.d.ts +5 -0
  138. package/dist/shared/runner/constant.js +53 -0
  139. package/dist/shared/runner/constant.js.map +1 -0
  140. package/dist/shared/runner/index.d.ts +2 -0
  141. package/dist/shared/runner/index.js +19 -0
  142. package/dist/shared/runner/index.js.map +1 -0
  143. package/dist/shared/runner/vite.d.ts +3 -0
  144. package/dist/shared/runner/vite.js +10 -0
  145. package/dist/shared/runner/vite.js.map +1 -0
  146. package/dist/style-transforms/html-transform.d.ts +14 -0
  147. package/dist/style-transforms/html-transform.js +124 -0
  148. package/dist/style-transforms/html-transform.js.map +1 -0
  149. package/dist/style-transforms/px-transform.d.ts +40 -0
  150. package/dist/style-transforms/px-transform.js +252 -0
  151. package/dist/style-transforms/px-transform.js.map +1 -0
  152. package/dist/templates/comp.js +5 -0
  153. package/dist/templates/custom-wrapper.js +5 -0
  154. package/package.json +67 -0
@@ -0,0 +1,313 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setReconciler = setReconciler;
4
+ exports.connectReactPage = connectReactPage;
5
+ exports.createReactApp = createReactApp;
6
+ const taro_runtime_1 = require("@spcsn/taro-runtime");
7
+ const taro_shared_1 = require("@spcsn/taro-shared");
8
+ const react_meta_1 = require("./react-meta");
9
+ const utils_1 = require("./utils");
10
+ let h;
11
+ let ReactDOM;
12
+ const pageKeyId = (0, taro_runtime_1.incrementId)();
13
+ function setReconciler(ReactDOM) {
14
+ taro_shared_1.hooks.tap('getLifecycle', function (instance, lifecycle) {
15
+ lifecycle = lifecycle.replace(/^on(Show|Hide)$/, 'componentDid$1');
16
+ return instance[lifecycle];
17
+ });
18
+ taro_shared_1.hooks.tap('modifyMpEvent', function (event) {
19
+ Object.defineProperty(event, 'type', {
20
+ value: event.type.replace(/-/g, ''),
21
+ });
22
+ });
23
+ taro_shared_1.hooks.tap('batchedEventUpdates', function (cb) {
24
+ ReactDOM?.unstable_batchedUpdates(cb);
25
+ });
26
+ taro_shared_1.hooks.tap('mergePageInstance', function (prev, next) {
27
+ if (!prev || !next)
28
+ return;
29
+ // 子组件使用 lifecycle hooks 注册了生命周期后,会存在 prev,里面是注册的生命周期回调。
30
+ // prev 使用 Object.create(null) 创建,需排除 fast-refresh 等场景下意外产生的 prev
31
+ if ('constructor' in prev)
32
+ return;
33
+ Object.keys(prev).forEach((item) => {
34
+ const prevList = prev[item];
35
+ const nextList = (0, utils_1.ensureIsArray)(next[item]);
36
+ next[item] = nextList.concat(prevList);
37
+ });
38
+ });
39
+ }
40
+ function connectReactPage(R, id) {
41
+ return (Page) => {
42
+ const isReactComponent = (0, utils_1.isClassComponent)(R, Page);
43
+ const pageComponent = Page;
44
+ const inject = (node) => {
45
+ if (node) {
46
+ (0, taro_runtime_1.injectPageInstance)(node, id);
47
+ }
48
+ };
49
+ const refs = isReactComponent
50
+ ? { ref: inject }
51
+ : {
52
+ forwardedRef: inject,
53
+ // 兼容 react-redux 7.20.1+
54
+ reactReduxForwardedRef: inject,
55
+ };
56
+ if (react_meta_1.reactMeta.PageContext === taro_shared_1.EMPTY_OBJ) {
57
+ react_meta_1.reactMeta.PageContext = R.createContext('');
58
+ }
59
+ return class PageWrapper extends R.Component {
60
+ state = {
61
+ hasError: false,
62
+ };
63
+ static getDerivedStateFromError(error) {
64
+ taro_runtime_1.Current.app?.onError?.(error.message + error.stack);
65
+ return { hasError: true };
66
+ }
67
+ // React 16 uncaught error 会导致整个应用 crash,
68
+ // 目前把错误缩小到页面
69
+ componentDidCatch(error, info) {
70
+ if (process.env.NODE_ENV !== 'production') {
71
+ console.warn(error);
72
+ console.error(info.componentStack);
73
+ }
74
+ }
75
+ render() {
76
+ const children = this.state.hasError
77
+ ? []
78
+ : h(react_meta_1.reactMeta.PageContext.Provider, { value: id }, h(pageComponent, {
79
+ ...this.props,
80
+ ...refs,
81
+ }));
82
+ return h('root', { id }, children);
83
+ }
84
+ };
85
+ };
86
+ }
87
+ /**
88
+ * 桥接小程序 App 构造器和 React 渲染流程
89
+ * @param App 用户编写的入口组件
90
+ * @param react 框架
91
+ * @param dom 框架渲染器
92
+ * @param config 入口组件配置 app.config.js 的内容
93
+ * @returns 传递给 App 构造器的对象 obj :App(obj)
94
+ */
95
+ function createReactApp(App, react, dom, config) {
96
+ if (process.env.NODE_ENV !== 'production') {
97
+ (0, taro_shared_1.ensure)(!!dom, "构建 React 项目时未能找到 ReactDOM,请确认 process.env.FRAMEWORK 设置为 'react'");
98
+ }
99
+ react_meta_1.reactMeta.R = react;
100
+ h = react.createElement;
101
+ ReactDOM = dom;
102
+ const appInstanceRef = react.createRef();
103
+ const isReactComponent = (0, utils_1.isClassComponent)(react, App);
104
+ let appWrapper;
105
+ let appWrapperResolver;
106
+ const appWrapperPromise = new Promise((resolve) => (appWrapperResolver = resolve));
107
+ setReconciler(ReactDOM);
108
+ function getAppInstance() {
109
+ return appInstanceRef.current;
110
+ }
111
+ function waitAppWrapper(cb) {
112
+ /**
113
+ * 当同个事件触发多次时,waitAppWrapper 会出现同步和异步任务的执行顺序问题,
114
+ * 导致某些场景下 onShow 会优于 onLaunch 执行
115
+ */
116
+ appWrapperPromise.then(() => cb());
117
+ // appWrapper ? cb() : appWrapperPromise.then(() => cb())
118
+ }
119
+ function renderReactRoot() {
120
+ const appId = config?.appId || 'app';
121
+ let container = taro_runtime_1.document.getElementById(appId);
122
+ if (container == null) {
123
+ const appContainer = taro_runtime_1.document.getElementById(taro_runtime_1.CONTAINER);
124
+ container = taro_runtime_1.document.createElement(appId);
125
+ container.id = appId;
126
+ appContainer?.appendChild(container);
127
+ }
128
+ if (typeof ReactDOM.createRoot === 'function') {
129
+ const root = ReactDOM.createRoot(container);
130
+ root.render?.(h(AppWrapper));
131
+ }
132
+ else {
133
+ ReactDOM.render?.(h(AppWrapper), container);
134
+ }
135
+ }
136
+ class AppWrapper extends react.Component {
137
+ // run createElement() inside the render function to make sure that owner is right
138
+ pages = [];
139
+ elements = [];
140
+ constructor(props) {
141
+ super(props);
142
+ appWrapper = this;
143
+ appWrapperResolver(this);
144
+ }
145
+ mount(pageComponent, id, cb) {
146
+ const pageWrapper = connectReactPage(react, id)(pageComponent);
147
+ const key = id + pageKeyId();
148
+ const page = () => h(pageWrapper, { key, tid: id });
149
+ this.pages.push(page);
150
+ this.forceUpdate((...args) => {
151
+ taro_runtime_1.perf.stop(taro_runtime_1.PAGE_INIT);
152
+ return cb(...args);
153
+ });
154
+ }
155
+ unmount(id, cb) {
156
+ const elements = this.elements;
157
+ const idx = elements.findIndex((item) => item.props.tid === id);
158
+ elements.splice(idx, 1);
159
+ this.forceUpdate(cb);
160
+ }
161
+ render() {
162
+ const { pages, elements } = this;
163
+ while (pages.length > 0) {
164
+ const page = pages.pop();
165
+ elements.push(page());
166
+ }
167
+ let props = null;
168
+ if (isReactComponent) {
169
+ props = { ref: appInstanceRef };
170
+ }
171
+ return h(App, props, elements.slice());
172
+ }
173
+ }
174
+ renderReactRoot();
175
+ const [ONLAUNCH, ONSHOW, ONHIDE] = taro_shared_1.hooks.call('getMiniLifecycleImpl').app;
176
+ const appObj = Object.create({
177
+ render(cb) {
178
+ appWrapper.forceUpdate(cb);
179
+ },
180
+ mount(component, id, cb) {
181
+ if (appWrapper) {
182
+ appWrapper.mount(component, id, cb);
183
+ }
184
+ else {
185
+ appWrapperPromise.then((appWrapper) => appWrapper.mount(component, id, cb));
186
+ }
187
+ },
188
+ unmount(id, cb) {
189
+ if (appWrapper) {
190
+ appWrapper.unmount(id, cb);
191
+ }
192
+ else {
193
+ appWrapperPromise.then((appWrapper) => appWrapper.unmount(id, cb));
194
+ }
195
+ },
196
+ }, {
197
+ config: (0, utils_1.setDefaultDescriptor)({
198
+ configurable: true,
199
+ value: config,
200
+ }),
201
+ [ONLAUNCH]: (0, utils_1.setDefaultDescriptor)({
202
+ value(options) {
203
+ (0, utils_1.setRouterParams)(options);
204
+ const onLaunch = () => {
205
+ // 用户编写的入口组件实例
206
+ const app = getAppInstance();
207
+ this.$app = app;
208
+ if (app) {
209
+ // 把 App Class 上挂载的额外属性同步到全局 app 对象中
210
+ if (app.taroGlobalData) {
211
+ const globalData = app.taroGlobalData;
212
+ const keys = Object.keys(globalData);
213
+ const descriptors = Object.getOwnPropertyDescriptors(globalData);
214
+ keys.forEach((key) => {
215
+ Object.defineProperty(this, key, {
216
+ configurable: true,
217
+ enumerable: true,
218
+ get() {
219
+ return globalData[key];
220
+ },
221
+ set(value) {
222
+ globalData[key] = value;
223
+ },
224
+ });
225
+ });
226
+ Object.defineProperties(this, descriptors);
227
+ }
228
+ app.onLaunch?.(options);
229
+ }
230
+ triggerAppHook('onLaunch', options);
231
+ };
232
+ waitAppWrapper(onLaunch);
233
+ },
234
+ }),
235
+ [ONSHOW]: (0, utils_1.setDefaultDescriptor)({
236
+ value(options) {
237
+ (0, utils_1.setRouterParams)(options);
238
+ const onShow = () => {
239
+ /**
240
+ * trigger lifecycle
241
+ */
242
+ const app = getAppInstance();
243
+ // class component, componentDidShow
244
+ app?.componentDidShow?.(options);
245
+ // functional component, useDidShow
246
+ triggerAppHook('onShow', options);
247
+ };
248
+ waitAppWrapper(onShow);
249
+ },
250
+ }),
251
+ [ONHIDE]: (0, utils_1.setDefaultDescriptor)({
252
+ value() {
253
+ const onHide = () => {
254
+ /**
255
+ * trigger lifecycle
256
+ */
257
+ const app = getAppInstance();
258
+ // class component, componentDidHide
259
+ app?.componentDidHide?.();
260
+ // functional component, useDidHide
261
+ triggerAppHook('onHide');
262
+ };
263
+ waitAppWrapper(onHide);
264
+ },
265
+ }),
266
+ onError: (0, utils_1.setDefaultDescriptor)({
267
+ value(error) {
268
+ const onError = () => {
269
+ const app = getAppInstance();
270
+ app?.onError?.(error);
271
+ triggerAppHook('onError', error);
272
+ if (process.env.NODE_ENV !== 'production' && error?.includes('Minified React error')) {
273
+ console.warn('React 出现报错,请打开编译配置 mini.debugReact 查看报错详情:https://docs.taro.zone/docs/config-detail#minidebugreact');
274
+ }
275
+ };
276
+ waitAppWrapper(onError);
277
+ },
278
+ }),
279
+ onUnhandledRejection: (0, utils_1.setDefaultDescriptor)({
280
+ value(res) {
281
+ const onUnhandledRejection = () => {
282
+ const app = getAppInstance();
283
+ app?.onUnhandledRejection?.(res);
284
+ triggerAppHook('onUnhandledRejection', res);
285
+ };
286
+ waitAppWrapper(onUnhandledRejection);
287
+ },
288
+ }),
289
+ onPageNotFound: (0, utils_1.setDefaultDescriptor)({
290
+ value(res) {
291
+ const onPageNotFound = () => {
292
+ const app = getAppInstance();
293
+ app?.onPageNotFound?.(res);
294
+ triggerAppHook('onPageNotFound', res);
295
+ };
296
+ waitAppWrapper(onPageNotFound);
297
+ },
298
+ }),
299
+ });
300
+ function triggerAppHook(lifecycle, ...option) {
301
+ const instance = (0, taro_runtime_1.getPageInstance)(utils_1.HOOKS_APP_ID);
302
+ if (instance) {
303
+ const app = getAppInstance();
304
+ const func = taro_shared_1.hooks.call('getLifecycle', instance, lifecycle);
305
+ if (Array.isArray(func)) {
306
+ func.forEach((cb) => cb.apply(app, option));
307
+ }
308
+ }
309
+ }
310
+ (0, taro_runtime_1.setCurrentApp)(appObj);
311
+ return appObj;
312
+ }
313
+ //# sourceMappingURL=connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/react-framework/runtime/connect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { Func } from '@spcsn/taro/types/compile';
2
+ /** LifeCycle */
3
+ export declare const useDidHide: (fn: Func) => void;
4
+ export declare const useDidShow: (fn: Func) => void;
5
+ /** App */
6
+ export declare const useError: (fn: Func) => void;
7
+ export declare const useUnhandledRejection: (fn: Func) => void;
8
+ export declare const useLaunch: (fn: Func) => void;
9
+ export declare const usePageNotFound: (fn: Func) => void;
10
+ /** Page */
11
+ export declare const useLoad: (fn: Func) => void;
12
+ export declare const usePageScroll: (fn: Func) => void;
13
+ export declare const usePullDownRefresh: (fn: Func) => void;
14
+ export declare const usePullIntercept: (fn: Func) => void;
15
+ export declare const useReachBottom: (fn: Func) => void;
16
+ export declare const useResize: (fn: Func) => void;
17
+ export declare const useUnload: (fn: Func) => void;
18
+ /** Mini-Program */
19
+ export declare const useAddToFavorites: (fn: Func) => void;
20
+ export declare const useOptionMenuClick: (fn: Func) => void;
21
+ export declare const useKeyboardHeight: (fn: Func) => void;
22
+ export declare const useSaveExitState: (fn: Func) => void;
23
+ export declare const useShareAppMessage: (fn: Func) => void;
24
+ export declare const useShareTimeline: (fn: Func) => void;
25
+ export declare const useTitleClick: (fn: Func) => void;
26
+ /** Router */
27
+ export declare const useReady: (fn: Func) => void;
28
+ export declare const useRouter: (dynamic?: boolean) => import("@spcsn/taro-runtime/dist/current").Router | null;
29
+ export declare const useTabItemTap: (fn: Func) => void;
30
+ export declare const useScope: () => undefined;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useScope = exports.useTabItemTap = exports.useRouter = exports.useReady = exports.useTitleClick = exports.useShareTimeline = exports.useShareAppMessage = exports.useSaveExitState = exports.useKeyboardHeight = exports.useOptionMenuClick = exports.useAddToFavorites = exports.useUnload = exports.useResize = exports.useReachBottom = exports.usePullIntercept = exports.usePullDownRefresh = exports.usePageScroll = exports.useLoad = exports.usePageNotFound = exports.useLaunch = exports.useUnhandledRejection = exports.useError = exports.useDidShow = exports.useDidHide = void 0;
4
+ const taro_runtime_1 = require("@spcsn/taro-runtime");
5
+ const taro_shared_1 = require("@spcsn/taro-shared");
6
+ const react_meta_1 = require("./react-meta");
7
+ const utils_1 = require("./utils");
8
+ const createTaroHook = (lifecycle) => {
9
+ return (fn) => {
10
+ const { R: React, PageContext } = react_meta_1.reactMeta;
11
+ const id = React.useContext(PageContext) || utils_1.HOOKS_APP_ID;
12
+ const instRef = React.useRef(undefined);
13
+ // hold fn ref and keep up to date
14
+ const fnRef = React.useRef(fn);
15
+ if (fnRef.current !== fn)
16
+ fnRef.current = fn;
17
+ React.useLayoutEffect(() => {
18
+ let inst = (0, taro_runtime_1.getPageInstance)(id);
19
+ instRef.current = inst;
20
+ let first = false;
21
+ if (!inst) {
22
+ first = true;
23
+ instRef.current = Object.create(null);
24
+ inst = instRef.current;
25
+ }
26
+ // callback is immutable but inner function is up to date
27
+ const callback = (...args) => fnRef.current(...args);
28
+ if ((0, taro_shared_1.isFunction)(inst[lifecycle])) {
29
+ inst[lifecycle] = [inst[lifecycle], callback];
30
+ }
31
+ else {
32
+ inst[lifecycle] = [...(inst[lifecycle] || []), callback];
33
+ }
34
+ if (first) {
35
+ (0, taro_runtime_1.injectPageInstance)(inst, id);
36
+ }
37
+ return () => {
38
+ const inst = instRef.current;
39
+ if (!inst)
40
+ return;
41
+ const list = inst[lifecycle];
42
+ if (list === callback) {
43
+ inst[lifecycle] = undefined;
44
+ }
45
+ else if ((0, taro_shared_1.isArray)(list)) {
46
+ inst[lifecycle] = list.filter((item) => item !== callback);
47
+ }
48
+ instRef.current = undefined;
49
+ };
50
+ }, []);
51
+ };
52
+ };
53
+ /** LifeCycle */
54
+ exports.useDidHide = createTaroHook('componentDidHide');
55
+ exports.useDidShow = createTaroHook('componentDidShow');
56
+ /** App */
57
+ exports.useError = createTaroHook('onError');
58
+ exports.useUnhandledRejection = createTaroHook('onUnhandledRejection');
59
+ exports.useLaunch = createTaroHook('onLaunch');
60
+ exports.usePageNotFound = createTaroHook('onPageNotFound');
61
+ /** Page */
62
+ exports.useLoad = createTaroHook('onLoad');
63
+ exports.usePageScroll = createTaroHook('onPageScroll');
64
+ exports.usePullDownRefresh = createTaroHook('onPullDownRefresh');
65
+ exports.usePullIntercept = createTaroHook('onPullIntercept');
66
+ exports.useReachBottom = createTaroHook('onReachBottom');
67
+ exports.useResize = createTaroHook('onResize');
68
+ exports.useUnload = createTaroHook('onUnload');
69
+ /** Mini-Program */
70
+ exports.useAddToFavorites = createTaroHook('onAddToFavorites');
71
+ exports.useOptionMenuClick = createTaroHook('onOptionMenuClick');
72
+ exports.useKeyboardHeight = createTaroHook('onKeyboardHeight');
73
+ exports.useSaveExitState = createTaroHook('onSaveExitState');
74
+ exports.useShareAppMessage = createTaroHook('onShareAppMessage');
75
+ exports.useShareTimeline = createTaroHook('onShareTimeline');
76
+ exports.useTitleClick = createTaroHook('onTitleClick');
77
+ /** Router */
78
+ exports.useReady = createTaroHook('onReady');
79
+ const useRouter = (dynamic = false) => {
80
+ const React = react_meta_1.reactMeta.R;
81
+ return dynamic ? taro_runtime_1.Current.router : React.useMemo(() => taro_runtime_1.Current.router, []);
82
+ };
83
+ exports.useRouter = useRouter;
84
+ exports.useTabItemTap = createTaroHook('onTabItemTap');
85
+ const useScope = () => undefined;
86
+ exports.useScope = useScope;
87
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/react-framework/runtime/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './connect';
2
+ export * from './connect-native';
3
+ export * from './hooks';
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const taro_shared_1 = require("@spcsn/taro-shared");
40
+ const taroHooks = __importStar(require("./hooks"));
41
+ taro_shared_1.hooks.tap('initNativeApi', function (taro) {
42
+ for (const hook in taroHooks) {
43
+ taro[hook] = taroHooks[hook];
44
+ }
45
+ });
46
+ __exportStar(require("./connect"), exports);
47
+ __exportStar(require("./connect-native"), exports);
48
+ __exportStar(require("./hooks"), exports);
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react-framework/runtime/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA2C;AAE3C,mDAAqC;AAErC,mBAAK,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI;IACvC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,4CAA0B;AAC1B,mDAAiC;AACjC,0CAAwB"}
@@ -0,0 +1,7 @@
1
+ import type * as React from 'react';
2
+ interface ReactMeta {
3
+ PageContext: React.Context<string>;
4
+ R: typeof React;
5
+ }
6
+ export declare const reactMeta: ReactMeta;
7
+ export {};
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reactMeta = void 0;
4
+ const taro_shared_1 = require("@spcsn/taro-shared");
5
+ exports.reactMeta = {
6
+ PageContext: taro_shared_1.EMPTY_OBJ,
7
+ R: taro_shared_1.EMPTY_OBJ,
8
+ };
9
+ //# sourceMappingURL=react-meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-meta.js","sourceRoot":"","sources":["../../../src/react-framework/runtime/react-meta.ts"],"names":[],"mappings":";;;AAAA,oDAA+C;AASlC,QAAA,SAAS,GAAc;IAClC,WAAW,EAAE,uBAAkC;IAC/C,CAAC,EAAE,uBAAyB;CAC7B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type * as React from 'react';
2
+ export declare const HOOKS_APP_ID = "taro-app";
3
+ export declare function isClassComponent(R: typeof React, component: any): boolean;
4
+ export declare function ensureIsArray<T>(item: T | T[]): T[];
5
+ /**
6
+ * set writable, enumerable to true
7
+ */
8
+ export declare function setDefaultDescriptor(obj: Record<string, any>): Record<string, any>;
9
+ /**
10
+ * 设置入口的路由参数
11
+ * @param options 小程序传入的参数
12
+ */
13
+ export declare function setRouterParams(options: any): void;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HOOKS_APP_ID = void 0;
4
+ exports.isClassComponent = isClassComponent;
5
+ exports.ensureIsArray = ensureIsArray;
6
+ exports.setDefaultDescriptor = setDefaultDescriptor;
7
+ exports.setRouterParams = setRouterParams;
8
+ const taro_runtime_1 = require("@spcsn/taro-runtime");
9
+ const taro_shared_1 = require("@spcsn/taro-shared");
10
+ exports.HOOKS_APP_ID = 'taro-app';
11
+ function isClassComponent(R, component) {
12
+ const prototype = component.prototype;
13
+ // For React Redux
14
+ if (component.displayName?.includes('Connect'))
15
+ return false;
16
+ return ((0, taro_shared_1.isFunction)(component.render) || !!prototype?.isReactComponent || prototype instanceof R.Component // compat for some others react-like library
17
+ );
18
+ }
19
+ function ensureIsArray(item) {
20
+ if ((0, taro_shared_1.isArray)(item)) {
21
+ return item;
22
+ }
23
+ else {
24
+ return item ? [item] : [];
25
+ }
26
+ }
27
+ /**
28
+ * set writable, enumerable to true
29
+ */
30
+ function setDefaultDescriptor(obj) {
31
+ obj.writable = true;
32
+ obj.enumerable = true;
33
+ return obj;
34
+ }
35
+ /**
36
+ * 设置入口的路由参数
37
+ * @param options 小程序传入的参数
38
+ */
39
+ function setRouterParams(options) {
40
+ taro_runtime_1.Current.router = {
41
+ params: options?.query,
42
+ ...options,
43
+ };
44
+ }
45
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/react-framework/runtime/utils.ts"],"names":[],"mappings":";;;AAOA,4CASC;AAED,sCAMC;AAKD,oDAIC;AAMD,0CAKC;AA5CD,sDAA8C;AAC9C,oDAAyD;AAI5C,QAAA,YAAY,GAAG,UAAU,CAAC;AAEvC,SAAgB,gBAAgB,CAAC,CAAe,EAAE,SAAS;IACzD,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IAEtC,kBAAkB;IAClB,IAAI,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7D,OAAO,CACL,IAAA,wBAAU,EAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,gBAAgB,IAAI,SAAS,YAAY,CAAC,CAAC,SAAS,CAAC,4CAA4C;KAC/I,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAI,IAAa;IAC5C,IAAI,IAAA,qBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,GAAwB;IAC3D,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;IACtB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,OAAO;IACrC,sBAAO,CAAC,MAAM,GAAG;QACf,MAAM,EAAE,OAAO,EAAE,KAAK;QACtB,GAAG,OAAO;KACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PluginOption } from 'vite';
2
+ import type { FrameworkPluginContext, Frameworks } from './index';
3
+ export declare function miniVitePlugin(ctx: FrameworkPluginContext, framework: Frameworks): PluginOption;