UNPKG

vite-uni-dev-tool

Version:

vite-uni-dev-tool, debug, uni-app, 一处编写,到处调试

119 lines (97 loc) 2.54 kB
import { DevStore } from './devStore'; import { DevEvent } from './devEvent'; import { DevIntercept } from './devIntercept'; import { DevConsole } from './devConsole'; import type { DevTool } from './type'; import { EventBus } from './devEventBus'; /** * 备份原生方法 * * @private * @memberof DevStore */ const backup = { // log: console.log, // info: console.info, // warn: console.warn, // error: console.error, setStorage: uni?.setStorage, setStorageSync: uni?.setStorageSync, clearStorage: uni?.clearStorage, clearStorageSync: uni?.clearStorageSync, removeStorage: uni?.removeStorage, removeStorageSync: uni?.removeStorageSync, reject: Promise.reject, connectSocket: uni?.connectSocket, uploadFile: uni?.uploadFile, $on: uni.$on, $once: uni.$once, $emit: uni.$emit, $off: uni.$off, __log__: (uni as any).__log__, }; const eventBus = new EventBus(); const store = new DevStore(); const event = new DevEvent({ store, eventBus, }); const console = new DevConsole(event); const intercept = new DevIntercept({ event, enableInterceptPromiseReject: store?.enableInterceptPromiseReject, }); function getDevToolOptions() { return store.getDevToolOptions(); } function initDevTool(options?: DevTool.DevToolOptions) { if (!options?.mode) { console.error('[DevTool] 请传入 mode: import.meta.env.MODE'); } store.setDevToolOptions(options || { mode: '' }); intercept.interceptVue3(options?.vue3instance); } function showDevToolButton() { event.showDevToolButton(); } function hideDevToolButton() { event.hideDevToolButton(); } function openDevToolWindow() { event.openDevToolWindow(); } function closeDevToolWindow() { event.closeDevToolWindow(); } function createDevTool() { event.createDevTool(); intercept.init({ event, enableInterceptPromiseReject: store?.enableInterceptPromiseReject, }); } function destroyDevTool() { event.destroyDevTool(); } function interceptVuexStorage(store: any) { return intercept.interceptVuexStorage(store); } function interceptPiniaStore(context: any) { return intercept.interceptPiniaStore(context); } uni.__dev__console = console; export { backup, console, initDevTool, createDevTool, destroyDevTool, showDevToolButton, hideDevToolButton, openDevToolWindow, closeDevToolWindow, getDevToolOptions, interceptVuexStorage, interceptPiniaStore, eventBus, };