import { Plugin } from "obsidian"; import { DEFAULT_SETTINGS, LimitlessPluginSettings, LimitlessSettingTab, } from "./settings.ts"; import { createActor } from "xstate"; import { pluginActor } from "./actors/plugin.ts"; export default class LimitlessPlugin extends Plugin { settings!: LimitlessPluginSettings; override async onload() { await this.loadSettings(); this.addSettingTab(new LimitlessSettingTab(this.app, this)); const actor = createActor(pluginActor, { input: { ...this.settings, vault: this.app.vault, }, }); actor.subscribe((snapshot) => { console.log(snapshot.value); }); actor.start(); } override onunload() { } async loadSettings() { this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData()); } async saveSettings() { await this.saveData(this.settings); } }