42 lines
895 B
TypeScript
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);
|
|
}
|
|
}
|