summaryrefslogtreecommitdiff
path: root/packages/frontend/src/debug.ts
blob: 8bb8012ae36340b50bb03355744c2884798007f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/*
 * SPDX-FileCopyrightText: syuilo and misskey-project
 * SPDX-License-Identifier: AGPL-3.0-only
 */

import { type ComponentInternalInstance, getCurrentInstance } from 'vue';

export function isDebuggerEnabled(id: number): boolean {
	try {
		return localStorage.getItem(`DEBUG_${id}`) !== null;
	} catch {
		return false;
	}
}

export function switchDebuggerEnabled(id: number, enabled: boolean): void {
	if (enabled) {
		localStorage.setItem(`DEBUG_${id}`, '');
	} else {
		localStorage.removeItem(`DEBUG_${id}`);
	}
}

export function stackTraceInstances(): ComponentInternalInstance[] {
	let instance = getCurrentInstance();
	const stack: ComponentInternalInstance[] = [];
	while (instance) {
		stack.push(instance);
		instance = instance.parent;
	}
	return stack;
}