@zl-ui-kit/composables 0.3.0 → 0.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/index.d.ts CHANGED
@@ -3,7 +3,6 @@ import { ComputedRef, InjectionKey, WritableComputedRef, Ref, Component, VNode,
3
3
  export { ComputedRef } from 'vue';
4
4
  import { ElMessageBoxOptions, ElMessage, ElMessageBox, ElNotification } from 'element-plus';
5
5
  import { I18nOptions, I18n } from 'vue-i18n';
6
- import microApp from '@micro-zoe/micro-app';
7
6
 
8
7
  /**
9
8
  * 带缓存的 computed 工厂:同一对象的计算结果缓存,作用域销毁时自动清理
@@ -214,7 +213,7 @@ interface UseMicroAppReturn {
214
213
  /** 是否子应用(多层嵌套时可同时为主应用) */
215
214
  isMicroChild: () => boolean;
216
215
  updateApps: () => void;
217
- startMicroApp: (config?: StartMicroAppConfig) => typeof microApp;
216
+ startMicroApp: (config?: StartMicroAppConfig) => any;
218
217
  }
219
218
  declare const useMicroApp: () => UseMicroAppReturn;
220
219
 
package/dist/index.js CHANGED
@@ -160,10 +160,41 @@ import { createI18n } from "vue-i18n";
160
160
 
161
161
  // src/useMicroGlobalData.ts
162
162
  import { isFunction, isPlainObject as isPlainObject2, withResolvers } from "@zl-ui-kit/utils";
163
- import _microApp from "@micro-zoe/micro-app";
164
163
  import { createGlobalState as createGlobalState2, useStorage } from "@vueuse/core";
165
164
  import { computed as computed3, customRef, nextTick, readonly, ref as ref2, toValue, watch } from "vue";
166
- var microApp = window.microApp || _microApp;
165
+
166
+ // src/internal/microApp.ts
167
+ import _microApp from "@micro-zoe/micro-app";
168
+ function usable(mod) {
169
+ try {
170
+ return mod && typeof mod.getGlobalData === "function" ? mod : void 0;
171
+ } catch {
172
+ return void 0;
173
+ }
174
+ }
175
+ function resolveMicroApp() {
176
+ if (typeof window !== "undefined") {
177
+ const injected = window.microApp;
178
+ if (injected)
179
+ return injected;
180
+ }
181
+ return usable(_microApp);
182
+ }
183
+ function isMicroChildRuntime() {
184
+ return typeof window !== "undefined" && !!window.microApp;
185
+ }
186
+ function requireMicroApp(api) {
187
+ const app = resolveMicroApp();
188
+ if (!app) {
189
+ throw new Error(
190
+ `[zl-ui] ${api}() \u4F9D\u8D56 micro-app\uFF0C\u8BF7\u5148\u5B89\u88C5\uFF1Anpm i @micro-zoe/micro-app
191
+ \u82E5\u4E0D\u9700\u8981\u5FAE\u524D\u7AEF\u80FD\u529B\uFF0C\u8BF7\u6539\u7528 @zl-ui-kit/composables \u4E3B\u5165\u53E3\u4E2D\u7684\u5176\u5B83 hook\u3002`
192
+ );
193
+ }
194
+ return app;
195
+ }
196
+
197
+ // src/useMicroGlobalData.ts
167
198
  var devMockEnabled = false;
168
199
  function enableGlobalDataMock(enabled = true) {
169
200
  devMockEnabled = enabled;
@@ -234,7 +265,14 @@ function useDevMockGlobalData() {
234
265
  }, { getConfig, isConfig, setAndWaitUntil });
235
266
  }
236
267
  var useMicroGlobalData = createGlobalState2(() => {
237
- if (devMockEnabled && !window.microApp) {
268
+ const microApp = resolveMicroApp();
269
+ if (!microApp) {
270
+ console.warn(
271
+ "[useMicroGlobalData] \u672A\u68C0\u6D4B\u5230 micro-app\uFF0C\u5DF2\u964D\u7EA7\u4E3A\u672C\u5730\u5B58\u50A8\u6A21\u5F0F\uFF08$zl_locale / $zl_theme / $zl_token\uFF09\u3002\u9700\u8981\u8DE8\u5E94\u7528\u540C\u6B65\u8BF7\u5B89\u88C5 @micro-zoe/micro-app\u3002"
272
+ );
273
+ return useDevMockGlobalData();
274
+ }
275
+ if (devMockEnabled && !isMicroChildRuntime()) {
238
276
  console.warn("[useMicroGlobalData] \u4F7F\u7528\u5F00\u53D1\u6001 mock \u6570\u636E\uFF08enableGlobalDataMock \u5DF2\u5F00\u542F\uFF09");
239
277
  return useDevMockGlobalData();
240
278
  }
@@ -336,7 +374,8 @@ var useMicroGlobalData = createGlobalState2(() => {
336
374
  });
337
375
  });
338
376
  function updateBodyAttribute(key, value) {
339
- ;
377
+ if (typeof document === "undefined")
378
+ return;
340
379
  [document.body, ...document.querySelectorAll("micro-app-body")].forEach((el) => {
341
380
  el.setAttribute(key, String(value ?? ""));
342
381
  });
@@ -425,27 +464,26 @@ function useZlT() {
425
464
  }
426
465
 
427
466
  // src/useMicroAction.ts
428
- import microApp3 from "@micro-zoe/micro-app";
429
467
  import { createSharedComposable, tryOnScopeDispose as tryOnScopeDispose2 } from "@vueuse/core";
430
468
  import { watch as watch3 } from "vue";
431
469
 
432
470
  // src/useMicroApp.ts
433
- import microApp2 from "@micro-zoe/micro-app";
434
471
  import { createGlobalState as createGlobalState3 } from "@vueuse/core";
435
472
  import { ref as ref3 } from "vue";
436
473
  var useMicroApp = createGlobalState3(() => {
437
474
  const apps = ref3([]);
438
475
  function isMicroBase() {
439
- return !!window.__MICRO_APP_BASE_APPLICATION__;
476
+ return typeof window !== "undefined" && !!window.__MICRO_APP_BASE_APPLICATION__;
440
477
  }
441
478
  function isMicroChild() {
442
- return !!window.__MICRO_APP_ENVIRONMENT__;
479
+ return typeof window !== "undefined" && !!window.__MICRO_APP_ENVIRONMENT__;
443
480
  }
444
481
  function updateApps() {
445
- apps.value = microApp2.getActiveApps();
482
+ apps.value = requireMicroApp("useMicroApp().updateApps").getActiveApps();
446
483
  }
447
484
  function startMicroApp(config = {}) {
448
- microApp2.start({
485
+ const microApp = requireMicroApp("useMicroApp().startMicroApp");
486
+ microApp.start({
449
487
  ...config,
450
488
  lifeCycles: {
451
489
  mounted(data) {
@@ -459,7 +497,7 @@ var useMicroApp = createGlobalState3(() => {
459
497
  }
460
498
  }
461
499
  });
462
- return microApp2;
500
+ return microApp;
463
501
  }
464
502
  return { apps, isMicroBase, isMicroChild, updateApps, startMicroApp };
465
503
  });
@@ -500,17 +538,18 @@ var useMicroListener = createSharedComposable(() => {
500
538
  });
501
539
  }
502
540
  if (isMicroBase()) {
541
+ const microApp = requireMicroApp("useMicroAction");
503
542
  listeners.push(() => {
504
543
  apps.value.forEach((app) => {
505
- microApp3.removeDataListener(app, handler);
544
+ microApp.removeDataListener(app, handler);
506
545
  });
507
546
  });
508
547
  watch3(apps, (newApps, oldApps) => {
509
548
  oldApps.forEach((app) => {
510
- microApp3.removeDataListener(app, handler);
549
+ microApp.removeDataListener(app, handler);
511
550
  });
512
551
  newApps.forEach((app) => {
513
- microApp3.addDataListener(app, handler);
552
+ microApp.addDataListener(app, handler);
514
553
  });
515
554
  }, { deep: true });
516
555
  }
@@ -551,8 +590,11 @@ function useMicroAction(action, appName) {
551
590
  const _actionName = _action(action);
552
591
  return (...args) => {
553
592
  const _apps = !appName ? apps.value : apps.value.filter((app) => app === appName);
593
+ if (!_apps.length)
594
+ return;
595
+ const microApp = requireMicroApp("useMicroAction");
554
596
  _apps.forEach((app) => {
555
- microApp3.setData(app, { [JSON.stringify(args)]: _actionName });
597
+ microApp.setData(app, { [JSON.stringify(args)]: _actionName });
556
598
  });
557
599
  };
558
600
  }
@@ -571,7 +613,8 @@ function useMicroActionAsync(action, appName) {
571
613
  if (isMicroChild()) {
572
614
  return (...args) => {
573
615
  return new Promise((resolve, reject) => {
574
- microApp3.setData(appName, { [JSON.stringify(args)]: _actionName }, (promises) => {
616
+ const microApp = requireMicroApp("useMicroActionAsync");
617
+ microApp.setData(appName, { [JSON.stringify(args)]: _actionName }, (promises) => {
575
618
  Promise.all(promises).then(resolve, reject);
576
619
  });
577
620
  });
@@ -590,27 +633,27 @@ function useMicroResultListener(action, callback) {
590
633
  }
591
634
  }
592
635
  };
593
- const micro = isMicroBase() ? microApp3 : window.microApp;
636
+ const micro = isMicroBase() ? requireMicroApp("useMicroResultListener") : typeof window !== "undefined" ? window.microApp : void 0;
594
637
  micro?.addDataListener(handler);
595
638
  }
596
639
  function dispatchMicroAction(action, appName, ...data) {
597
640
  const _actionName = _action(action);
598
641
  return new Promise((resolve) => {
599
- microApp3.setData(appName, { [JSON.stringify(data)]: _actionName }, resolve);
642
+ requireMicroApp("dispatchMicroAction").setData(appName, { [JSON.stringify(data)]: _actionName }, resolve);
600
643
  });
601
644
  }
602
645
 
603
646
  // src/usePageTabs.ts
604
- import microApp4 from "@micro-zoe/micro-app";
605
647
  import { createGlobalState as createGlobalState4 } from "@vueuse/core";
606
648
  import { computed as computed4, getCurrentInstance, nextTick as nextTick2, reactive, readonly as readonly2, ref as ref4, shallowReactive, watch as watch4 } from "vue";
607
649
  function pushMicroRouter({ micro, url }) {
608
650
  if (!micro || !url)
609
651
  return;
610
- const activeApps = microApp4.getActiveApps();
652
+ const microApp = requireMicroApp("usePageTabs");
653
+ const activeApps = microApp.getActiveApps();
611
654
  if (!activeApps.includes(micro))
612
655
  return;
613
- return microApp4.router.push({ name: micro, path: url });
656
+ return microApp.router.push({ name: micro, path: url });
614
657
  }
615
658
  var createPageTabsState = createGlobalState4(() => {
616
659
  const { on } = useMicroListener();
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@zl-ui-kit/composables",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "type": "module",
5
5
  "description": "ZL UI 组合式函数库:useRequest 请求体系、微前端通信层、全局消息、字典、国际化等",
6
6
  "license": "MIT",
7
- "module": "./dist/index.mjs",
7
+ "module": "./dist/index.js",
8
8
  "types": "./dist/index.d.ts",
9
9
  "exports": {
10
10
  ".": {
11
11
  "types": "./dist/index.d.ts",
12
- "import": "./dist/index.mjs"
12
+ "import": "./dist/index.js"
13
13
  }
14
14
  },
15
15
  "files": [
@@ -19,10 +19,10 @@
19
19
  ],
20
20
  "sideEffects": false,
21
21
  "dependencies": {
22
- "@zl-ui-kit/utils": "0.3.0"
22
+ "@zl-ui-kit/utils": "0.3.2"
23
23
  },
24
24
  "peerDependencies": {
25
- "@micro-zoe/micro-app": "1.0.0-rc.18",
25
+ "@micro-zoe/micro-app": ">=1.0.0-rc.10 <2",
26
26
  "@vueuse/core": "^12.3.0",
27
27
  "element-plus": "^2.9.2",
28
28
  "vue": "^3.5.13",
@@ -33,9 +33,6 @@
33
33
  "@micro-zoe/micro-app": {
34
34
  "optional": true
35
35
  },
36
- "vue-i18n": {
37
- "optional": true
38
- },
39
36
  "vue-router": {
40
37
  "optional": true
41
38
  }