@sepveneto/mpd-core
Version:
## 安装 ```cmd pnpm i @sepveneto/mpd-core npm i @sepveneto/mpd-core yarn add @sepveneto/mpd-core ```
69 lines (67 loc) • 1.79 kB
JavaScript
import {
upgrade
} from "./chunk-I4A7U2M5.js";
import "./chunk-JQMQKYQH.js";
import {
__objRest,
__spreadProps,
__spreadValues
} from "./chunk-SW7HDZD2.js";
// src/index.ts
import microApp, { renderApp } from "@micro-zoe/micro-app";
import { getCurrentInstance, nextTick, onMounted } from "vue-demi";
function useDesign(dom, options) {
const _a = options, { url, inline, name = "miniprogram-design", data, mounted } = _a, params = __objRest(_a, ["url", "inline", "name", "data", "mounted"]);
microApp.addDataListener(name, (val) => {
const { event } = val;
if (event === "mounted") {
mounted == null ? void 0 : mounted();
}
});
const prepare = new Promise((resolve, reject) => {
tryOnMounted(() => {
renderApp(__spreadValues({
name,
url,
container: dom,
inline,
data,
"disable-patch-request": true,
// 关闭对子应用请求的拦截
"disable-memory-router": true
}, params)).then((result) => {
if (result) {
resolve(result);
} else {
reject(new Error("[@sepveneto/mpd-core] \u5E94\u7528\u52A0\u8F7D\u5931\u8D25"));
}
});
});
});
function set(data2) {
const { config } = data2;
if (!config.version) {
config.version = upgrade.VERSION;
}
microApp.setData(name, __spreadProps(__spreadValues({}, data2), { config }));
}
function get() {
const data2 = microApp.getData(name);
if (!data2.config) {
throw new Error("[@sepveneto/mpd-core] missing config in data");
}
return data2.config;
}
return [get, set, prepare];
}
function tryOnMounted(fn) {
if (getCurrentInstance()) {
onMounted(fn);
} else {
nextTick().then(fn);
}
}
export {
upgrade,
useDesign
};