import { Extension, ExtensionRegister } from './extension-register' const extensionTestKey = 'extension_tests' const extensionTestAcceptedKey = 'extension_tests_accepted' class ExtensionTestRegister extends ExtensionRegister { private accepted = localStorage.getItem(extensionTestAcceptedKey) === 'true' constructor() { super() this.load() } private load() { const json = localStorage.getItem(extensionTestKey) if (!json) return try { this.extensions = JSON.parse(json) } catch { /* empty */ } } isAccepted() { return this.accepted } accept() { this.accepted = true localStorage.setItem(extensionTestAcceptedKey, 'true') } refuse() { this.accepted = false localStorage.removeItem(extensionTestAcceptedKey) } override register(extension: Extension) { this.extensions[extension.slug] = extension localStorage.setItem(extensionTestKey, JSON.stringify(this.extensions)) this.listeners.forEach(l => l()) } override unregister(slug: string) { delete this.extensions[slug] localStorage.setItem(extensionTestKey, JSON.stringify(this.extensions)) this.listeners.forEach(l => l()) } } export const extensionTestRegister = new ExtensionTestRegister()