UNPKG

@tanstack/devtools

Version:

TanStack Devtools is a set of tools for building advanced devtools for your application.

76 lines (73 loc) 2.01 kB
export { PLUGIN_CONTAINER_ID, PLUGIN_TITLE_CONTAINER_ID } from './chunk/A767CXXU.js'; import { initialState } from './chunk/HURJB5JH.js'; // src/core.ts var TanStackDevtoolsCore = class { #config = { ...initialState.settings }; #plugins = []; #state = "unmounted"; #mountAbortController; #dispose; #eventBus; #eventBusConfig; #setPlugins; constructor(init) { this.#plugins = init.plugins || []; this.#eventBusConfig = init.eventBusConfig; this.#config = { ...this.#config, ...init.config }; } mount(el) { if (typeof document === "undefined") return; if (this.#state === "mounted" || this.#state === "mounting") { throw new Error("Devtools is already mounted"); } this.#state = "mounting"; const { signal } = this.#mountAbortController = new AbortController(); import('./mount-impl/6XBUJYBS.js').then(({ mountDevtools }) => { if (signal.aborted) { return; } const result = mountDevtools({ el, plugins: this.#plugins, config: this.#config, eventBusConfig: this.#eventBusConfig, onSetPlugins: (setPlugins) => { this.#setPlugins = setPlugins; } }); this.#dispose = result.dispose; this.#eventBus = result.eventBus; this.#state = "mounted"; }).catch((err) => { this.#state = "unmounted"; console.error("[TanStack Devtools] Failed to load:", err); }); } unmount() { if (this.#state === "unmounted") { throw new Error("Devtools is not mounted"); } this.#mountAbortController?.abort(); this.#eventBus?.stop(); this.#dispose?.(); this.#state = "unmounted"; } setConfig(config) { this.#config = { ...this.#config, ...config }; if (config.plugins) { this.#plugins = config.plugins; if (this.#state === "mounted" && this.#setPlugins) { this.#setPlugins(config.plugins); } } } }; export { TanStackDevtoolsCore };