obsidian-limitless-plugin/main.ts
Graham Barber 985383e6a5
feat: initial version
Working proof-of-concept
2025-03-22 18:09:31 -07:00

42 lines
895 B
TypeScript

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);
}
}