Expose obsidian plugin api and allow saving/loading

This commit is contained in:
Idrees Hassan
2025-11-13 18:14:44 -05:00
parent d94e321b66
commit c312500f19
9 changed files with 41 additions and 34 deletions

View File

@@ -161,8 +161,9 @@ mkdirSync(OBSIDIAN_DIR, { recursive: true });
// Wrap birb.js with plugin boilerplate
const obsidianPlugin = `
const { Plugin, Notice } = require('obsidian');
module.exports = class MyPlugin extends Plugin {
module.exports = class PocketBird extends Plugin {
onload() {
const OBSIDIAN_PLUGIN = this;
${birbJs}
}

13
dist/birb.js vendored
View File

@@ -1066,21 +1066,22 @@
* @returns {Promise<BirbSaveData|{}>}
*/
async getSaveData() {
log("Loading save data from Obsidian plugin storage unimplemented");
return {};
// @ts-expect-error
return await OBSIDIAN_PLUGIN.loadData() ?? {};
}
/**
* @override
* @param {BirbSaveData} saveData
* @param {BirbSaveData|{}} saveData
*/
async putSaveData(saveData) {
log("Saving data to Obsidian plugin storage unimplemented");
// @ts-expect-error
return await OBSIDIAN_PLUGIN.saveData(saveData);
}
/** @override */
resetSaveData() {
log("Resetting save data in Obsidian plugin storage unimplemented");
this.putSaveData({});
}
/** @override */
@@ -1923,7 +1924,7 @@
insertModal(`${birdBirb()} Mode`, message);
}),
new Separator(),
new MenuItem("2025.11.13.8", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.13.8"); }, false),
new MenuItem("2025.11.13.16", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.13.16"); }, false),
];
const styleElement = document.createElement("style");

BIN
dist/extension.zip vendored

Binary file not shown.

View File

@@ -1066,21 +1066,22 @@
* @returns {Promise<BirbSaveData|{}>}
*/
async getSaveData() {
log("Loading save data from Obsidian plugin storage unimplemented");
return {};
// @ts-expect-error
return await OBSIDIAN_PLUGIN.loadData() ?? {};
}
/**
* @override
* @param {BirbSaveData} saveData
* @param {BirbSaveData|{}} saveData
*/
async putSaveData(saveData) {
log("Saving data to Obsidian plugin storage unimplemented");
// @ts-expect-error
return await OBSIDIAN_PLUGIN.saveData(saveData);
}
/** @override */
resetSaveData() {
log("Resetting save data in Obsidian plugin storage unimplemented");
this.putSaveData({});
}
/** @override */
@@ -1923,7 +1924,7 @@
insertModal(`${birdBirb()} Mode`, message);
}),
new Separator(),
new MenuItem("2025.11.13.8", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.13.8"); }, false),
new MenuItem("2025.11.13.16", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.13.16"); }, false),
];
const styleElement = document.createElement("style");

View File

@@ -2,7 +2,7 @@
"manifest_version": 3,
"name": "Pocket Bird",
"description": "It's a pet bird in your browser, what more could you want?",
"version": "2025.11.13.8",
"version": "2025.11.13.16",
"homepage_url": "https://idreesinc.com",
"icons": {
"48": "images/icons/transparent/48x48x1.png",

16
dist/obsidian/main.js vendored
View File

@@ -1,7 +1,8 @@
const { Plugin, Notice } = require('obsidian');
module.exports = class MyPlugin extends Plugin {
module.exports = class PocketBird extends Plugin {
onload() {
const OBSIDIAN_PLUGIN = this;
(function () {
'use strict';
@@ -1070,21 +1071,22 @@ module.exports = class MyPlugin extends Plugin {
* @returns {Promise<BirbSaveData|{}>}
*/
async getSaveData() {
log("Loading save data from Obsidian plugin storage unimplemented");
return {};
// @ts-expect-error
return await OBSIDIAN_PLUGIN.loadData() ?? {};
}
/**
* @override
* @param {BirbSaveData} saveData
* @param {BirbSaveData|{}} saveData
*/
async putSaveData(saveData) {
log("Saving data to Obsidian plugin storage unimplemented");
// @ts-expect-error
return await OBSIDIAN_PLUGIN.saveData(saveData);
}
/** @override */
resetSaveData() {
log("Resetting save data in Obsidian plugin storage unimplemented");
this.putSaveData({});
}
/** @override */
@@ -1927,7 +1929,7 @@ module.exports = class MyPlugin extends Plugin {
insertModal(`${birdBirb()} Mode`, message);
}),
new Separator(),
new MenuItem("2025.11.13.8", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.13.8"); }, false),
new MenuItem("2025.11.13.16", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.13.16"); }, false),
];
const styleElement = document.createElement("style");

View File

@@ -1,7 +1,7 @@
{
"id": "pocket-bird",
"name": "Pocket Bird",
"version": "2025.11.13.8",
"version": "2025.11.13.16",
"minAppVersion": "0.15.0",
"description": "It's a pet bird in your Obsidian, what more could you want?",
"author": "Idrees Hassan",

View File

@@ -1,7 +1,7 @@
// ==UserScript==
// @name Pocket Bird
// @namespace https://idreesinc.com
// @version 2025.11.13.8
// @version 2025.11.13.16
// @description It's a bird that hops around your web browser, the future is here
// @author Idrees
// @downloadURL https://github.com/IdreesInc/Pocket-Bird/raw/refs/heads/main/dist/userscript/birb.user.js
@@ -1080,21 +1080,22 @@
* @returns {Promise<BirbSaveData|{}>}
*/
async getSaveData() {
log("Loading save data from Obsidian plugin storage unimplemented");
return {};
// @ts-expect-error
return await OBSIDIAN_PLUGIN.loadData() ?? {};
}
/**
* @override
* @param {BirbSaveData} saveData
* @param {BirbSaveData|{}} saveData
*/
async putSaveData(saveData) {
log("Saving data to Obsidian plugin storage unimplemented");
// @ts-expect-error
return await OBSIDIAN_PLUGIN.saveData(saveData);
}
/** @override */
resetSaveData() {
log("Resetting save data in Obsidian plugin storage unimplemented");
this.putSaveData({});
}
/** @override */
@@ -1937,7 +1938,7 @@
insertModal(`${birdBirb()} Mode`, message);
}),
new Separator(),
new MenuItem("2025.11.13.8", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.13.8"); }, false),
new MenuItem("2025.11.13.16", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.13.16"); }, false),
];
const styleElement = document.createElement("style");

View File

@@ -227,21 +227,22 @@ class ObsidianContext extends Context {
* @returns {Promise<BirbSaveData|{}>}
*/
async getSaveData() {
log("Loading save data from Obsidian plugin storage unimplemented");
return {};
// @ts-expect-error
return await OBSIDIAN_PLUGIN.loadData() ?? {};
}
/**
* @override
* @param {BirbSaveData} saveData
* @param {BirbSaveData|{}} saveData
*/
async putSaveData(saveData) {
log("Saving data to Obsidian plugin storage unimplemented");
// @ts-expect-error
return await OBSIDIAN_PLUGIN.saveData(saveData);
}
/** @override */
resetSaveData() {
log("Resetting save data in Obsidian plugin storage unimplemented");
this.putSaveData({});
}
/** @override */