Refine v2 plugin API and sync flow
This commit is contained in:
@@ -86,7 +86,7 @@
|
||||
}
|
||||
|
||||
function mouseHistoryDirection(event) {
|
||||
if (currentView === 'workspace' || currentView === 'workbench') return '';
|
||||
if (currentView === 'workspace') return '';
|
||||
if (event.button === 3 || event.button === 8 || event.buttons === 8 || event.buttons === 128 || event.which === 8) return 'back';
|
||||
if (event.button === 4 || event.button === 9 || event.buttons === 16 || event.buttons === 256 || event.which === 9) return 'forward';
|
||||
return '';
|
||||
|
||||
@@ -225,20 +225,42 @@ export function createPluginAPI(pluginId) {
|
||||
}
|
||||
},
|
||||
|
||||
backend: {
|
||||
call: async function(method, ...args) {
|
||||
assertActive('backend.call(' + method + ')');
|
||||
try {
|
||||
const App = window['go']?.['api']?.['App'];
|
||||
if (!App || typeof App[method] !== 'function') {
|
||||
throw new Error('Backend method not found: ' + method);
|
||||
}
|
||||
const result = await App[method](...args);
|
||||
return result;
|
||||
} catch (e) {
|
||||
const message = e && e.message ? e.message : String(e);
|
||||
throw new Error('[plugin:' + pluginId + '] backend.call(' + method + ') failed: ' + message);
|
||||
}
|
||||
sync: {
|
||||
status: function() {
|
||||
assertActive('sync.status');
|
||||
return callBackend(pluginId, 'sync.status', function() {
|
||||
return App.PluginSyncStatus(pluginId);
|
||||
});
|
||||
},
|
||||
configure: function(serverURL, username, password) {
|
||||
assertActive('sync.configure');
|
||||
return callBackendErrorString(pluginId, 'sync.configure', function() {
|
||||
return App.PluginSyncConfigure(pluginId, serverURL || '', username || '', password || '');
|
||||
});
|
||||
},
|
||||
disconnect: function() {
|
||||
assertActive('sync.disconnect');
|
||||
return callBackendErrorString(pluginId, 'sync.disconnect', function() {
|
||||
return App.PluginSyncDisconnect(pluginId);
|
||||
});
|
||||
},
|
||||
testConnection: function(serverURL, username, password) {
|
||||
assertActive('sync.testConnection');
|
||||
return callBackendErrorString(pluginId, 'sync.testConnection', function() {
|
||||
return App.PluginSyncTestConnection(pluginId, serverURL || '', username || '', password || '');
|
||||
});
|
||||
},
|
||||
setInterval: function(minutes) {
|
||||
assertActive('sync.setInterval');
|
||||
return callBackendErrorString(pluginId, 'sync.setInterval', function() {
|
||||
return App.PluginSyncSetInterval(pluginId, Number(minutes) || 0);
|
||||
});
|
||||
},
|
||||
now: function() {
|
||||
assertActive('sync.now');
|
||||
return callBackend(pluginId, 'sync.now', function() {
|
||||
return App.PluginSyncNow(pluginId);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
Vendored
+12
-31
@@ -7,14 +7,11 @@ import {api} from '../models';
|
||||
import {permissions} from '../models';
|
||||
import {plugin} from '../models';
|
||||
import {files} from '../models';
|
||||
import {notes} from '../models';
|
||||
|
||||
export function ArchiveWorkspaceNode(arg1:string):Promise<string>;
|
||||
|
||||
export function CloseVault():Promise<void>;
|
||||
|
||||
export function CreateNote(arg1:string,arg2:string):Promise<Record<string, any>|string>;
|
||||
|
||||
export function CreateVault(arg1:string):Promise<void>;
|
||||
|
||||
export function CreateVaultFolder(arg1:string,arg2:string):Promise<string>;
|
||||
@@ -29,8 +26,6 @@ export function EditWorkbenchResource(arg1:string,arg2:Record<string, any>):Prom
|
||||
|
||||
export function EnablePlugin(arg1:string):Promise<string>;
|
||||
|
||||
export function EnsureOverview(arg1:string):Promise<Record<string, any>|string>;
|
||||
|
||||
export function ExecutePluginCommand(arg1:string,arg2:string,arg3:Record<string, any>):Promise<Record<string, any>|string>;
|
||||
|
||||
export function GetAppSettings():Promise<Record<string, any>>;
|
||||
@@ -67,8 +62,6 @@ export function GetWorkspaceMetadata(arg1:string):Promise<workspace.Metadata|str
|
||||
|
||||
export function GetWorkspaceTree():Promise<Record<string, any>>;
|
||||
|
||||
export function ListNotes(arg1:string):Promise<Array<notes.NoteInfo>|string>;
|
||||
|
||||
export function ListPluginCapabilities(arg1:string):Promise<Array<capability.Entry>|string>;
|
||||
|
||||
export function ListVaultFiles(arg1:string,arg2:string):Promise<Array<files.FileEntry>|string>;
|
||||
@@ -79,15 +72,23 @@ export function MoveVaultPath(arg1:string,arg2:string,arg3:string,arg4:files.Mov
|
||||
|
||||
export function MoveWorkspaceNode(arg1:string,arg2:string):Promise<string>;
|
||||
|
||||
export function NormalizeNoteTitle(arg1:string):Promise<Record<string, any>|string>;
|
||||
|
||||
export function OpenVault(arg1:string):Promise<void>;
|
||||
|
||||
export function OpenWorkbenchResource(arg1:string,arg2:Record<string, any>):Promise<workbench.OpenResourceResult|string>;
|
||||
|
||||
export function PublishPluginEvent(arg1:string,arg2:string,arg3:Record<string, any>):Promise<string>;
|
||||
export function PluginSyncConfigure(arg1:string,arg2:string,arg3:string,arg4:string):Promise<string>;
|
||||
|
||||
export function ReadNote(arg1:string):Promise<Record<string, any>|string>;
|
||||
export function PluginSyncDisconnect(arg1:string):Promise<string>;
|
||||
|
||||
export function PluginSyncNow(arg1:string):Promise<Record<string, any>|string>;
|
||||
|
||||
export function PluginSyncSetInterval(arg1:string,arg2:number):Promise<string>;
|
||||
|
||||
export function PluginSyncStatus(arg1:string):Promise<api.SyncStatusDTO|string>;
|
||||
|
||||
export function PluginSyncTestConnection(arg1:string,arg2:string,arg3:string,arg4:string):Promise<string>;
|
||||
|
||||
export function PublishPluginEvent(arg1:string,arg2:string,arg3:Record<string, any>):Promise<string>;
|
||||
|
||||
export function ReadPluginDataJSON(arg1:string,arg2:string):Promise<Record<string, any>>;
|
||||
|
||||
@@ -101,18 +102,10 @@ export function RecordDesiredPlugin(arg1:string,arg2:string,arg3:string):Promise
|
||||
|
||||
export function ReloadPlugins():Promise<number|string>;
|
||||
|
||||
export function RenameNote(arg1:string,arg2:string):Promise<Record<string, any>|string>;
|
||||
|
||||
export function RenameWorkspace(arg1:string,arg2:string):Promise<string>;
|
||||
|
||||
export function RenameWorkspaceNode(arg1:string,arg2:string):Promise<string>;
|
||||
|
||||
export function ResetSyncKey():Promise<void>;
|
||||
|
||||
export function SaveNote(arg1:string,arg2:string):Promise<string>;
|
||||
|
||||
export function SearchNotes(arg1:string):Promise<Array<notes.NoteInfo>|string>;
|
||||
|
||||
export function SelectDirectory():Promise<string>;
|
||||
|
||||
export function SelectVaultForOpen():Promise<string>;
|
||||
@@ -125,18 +118,6 @@ export function SetCurrentWorkspaceNode(arg1:string):Promise<string>;
|
||||
|
||||
export function SubscribePluginEvent(arg1:string,arg2:string):Promise<string>;
|
||||
|
||||
export function SyncConfigure(arg1:string,arg2:string,arg3:string):Promise<void>;
|
||||
|
||||
export function SyncDisconnect():Promise<void>;
|
||||
|
||||
export function SyncNow():Promise<Record<string, any>>;
|
||||
|
||||
export function SyncSetInterval(arg1:number):Promise<void>;
|
||||
|
||||
export function SyncStatus():Promise<api.SyncStatusDTO>;
|
||||
|
||||
export function SyncTestConnection(arg1:string,arg2:string,arg3:string):Promise<void>;
|
||||
|
||||
export function TrashVaultPath(arg1:string,arg2:string):Promise<files.TrashResult|string>;
|
||||
|
||||
export function TrashWorkspace(arg1:string):Promise<workspace.TrashResult|string>;
|
||||
|
||||
@@ -10,10 +10,6 @@ export function CloseVault() {
|
||||
return window['go']['api']['App']['CloseVault']();
|
||||
}
|
||||
|
||||
export function CreateNote(arg1, arg2) {
|
||||
return window['go']['api']['App']['CreateNote'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function CreateVault(arg1) {
|
||||
return window['go']['api']['App']['CreateVault'](arg1);
|
||||
}
|
||||
@@ -42,10 +38,6 @@ export function EnablePlugin(arg1) {
|
||||
return window['go']['api']['App']['EnablePlugin'](arg1);
|
||||
}
|
||||
|
||||
export function EnsureOverview(arg1) {
|
||||
return window['go']['api']['App']['EnsureOverview'](arg1);
|
||||
}
|
||||
|
||||
export function ExecutePluginCommand(arg1, arg2, arg3) {
|
||||
return window['go']['api']['App']['ExecutePluginCommand'](arg1, arg2, arg3);
|
||||
}
|
||||
@@ -118,10 +110,6 @@ export function GetWorkspaceTree() {
|
||||
return window['go']['api']['App']['GetWorkspaceTree']();
|
||||
}
|
||||
|
||||
export function ListNotes(arg1) {
|
||||
return window['go']['api']['App']['ListNotes'](arg1);
|
||||
}
|
||||
|
||||
export function ListPluginCapabilities(arg1) {
|
||||
return window['go']['api']['App']['ListPluginCapabilities'](arg1);
|
||||
}
|
||||
@@ -142,10 +130,6 @@ export function MoveWorkspaceNode(arg1, arg2) {
|
||||
return window['go']['api']['App']['MoveWorkspaceNode'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function NormalizeNoteTitle(arg1) {
|
||||
return window['go']['api']['App']['NormalizeNoteTitle'](arg1);
|
||||
}
|
||||
|
||||
export function OpenVault(arg1) {
|
||||
return window['go']['api']['App']['OpenVault'](arg1);
|
||||
}
|
||||
@@ -154,12 +138,32 @@ export function OpenWorkbenchResource(arg1, arg2) {
|
||||
return window['go']['api']['App']['OpenWorkbenchResource'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function PublishPluginEvent(arg1, arg2, arg3) {
|
||||
return window['go']['api']['App']['PublishPluginEvent'](arg1, arg2, arg3);
|
||||
export function PluginSyncConfigure(arg1, arg2, arg3, arg4) {
|
||||
return window['go']['api']['App']['PluginSyncConfigure'](arg1, arg2, arg3, arg4);
|
||||
}
|
||||
|
||||
export function ReadNote(arg1) {
|
||||
return window['go']['api']['App']['ReadNote'](arg1);
|
||||
export function PluginSyncDisconnect(arg1) {
|
||||
return window['go']['api']['App']['PluginSyncDisconnect'](arg1);
|
||||
}
|
||||
|
||||
export function PluginSyncNow(arg1) {
|
||||
return window['go']['api']['App']['PluginSyncNow'](arg1);
|
||||
}
|
||||
|
||||
export function PluginSyncSetInterval(arg1, arg2) {
|
||||
return window['go']['api']['App']['PluginSyncSetInterval'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function PluginSyncStatus(arg1) {
|
||||
return window['go']['api']['App']['PluginSyncStatus'](arg1);
|
||||
}
|
||||
|
||||
export function PluginSyncTestConnection(arg1, arg2, arg3, arg4) {
|
||||
return window['go']['api']['App']['PluginSyncTestConnection'](arg1, arg2, arg3, arg4);
|
||||
}
|
||||
|
||||
export function PublishPluginEvent(arg1, arg2, arg3) {
|
||||
return window['go']['api']['App']['PublishPluginEvent'](arg1, arg2, arg3);
|
||||
}
|
||||
|
||||
export function ReadPluginDataJSON(arg1, arg2) {
|
||||
@@ -186,10 +190,6 @@ export function ReloadPlugins() {
|
||||
return window['go']['api']['App']['ReloadPlugins']();
|
||||
}
|
||||
|
||||
export function RenameNote(arg1, arg2) {
|
||||
return window['go']['api']['App']['RenameNote'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function RenameWorkspace(arg1, arg2) {
|
||||
return window['go']['api']['App']['RenameWorkspace'](arg1, arg2);
|
||||
}
|
||||
@@ -198,18 +198,6 @@ export function RenameWorkspaceNode(arg1, arg2) {
|
||||
return window['go']['api']['App']['RenameWorkspaceNode'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function ResetSyncKey() {
|
||||
return window['go']['api']['App']['ResetSyncKey']();
|
||||
}
|
||||
|
||||
export function SaveNote(arg1, arg2) {
|
||||
return window['go']['api']['App']['SaveNote'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function SearchNotes(arg1) {
|
||||
return window['go']['api']['App']['SearchNotes'](arg1);
|
||||
}
|
||||
|
||||
export function SelectDirectory() {
|
||||
return window['go']['api']['App']['SelectDirectory']();
|
||||
}
|
||||
@@ -234,30 +222,6 @@ export function SubscribePluginEvent(arg1, arg2) {
|
||||
return window['go']['api']['App']['SubscribePluginEvent'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function SyncConfigure(arg1, arg2, arg3) {
|
||||
return window['go']['api']['App']['SyncConfigure'](arg1, arg2, arg3);
|
||||
}
|
||||
|
||||
export function SyncDisconnect() {
|
||||
return window['go']['api']['App']['SyncDisconnect']();
|
||||
}
|
||||
|
||||
export function SyncNow() {
|
||||
return window['go']['api']['App']['SyncNow']();
|
||||
}
|
||||
|
||||
export function SyncSetInterval(arg1) {
|
||||
return window['go']['api']['App']['SyncSetInterval'](arg1);
|
||||
}
|
||||
|
||||
export function SyncStatus() {
|
||||
return window['go']['api']['App']['SyncStatus']();
|
||||
}
|
||||
|
||||
export function SyncTestConnection(arg1, arg2, arg3) {
|
||||
return window['go']['api']['App']['SyncTestConnection'](arg1, arg2, arg3);
|
||||
}
|
||||
|
||||
export function TrashVaultPath(arg1, arg2) {
|
||||
return window['go']['api']['App']['TrashVaultPath'](arg1, arg2);
|
||||
}
|
||||
|
||||
@@ -380,31 +380,6 @@ export namespace files {
|
||||
|
||||
}
|
||||
|
||||
export namespace notes {
|
||||
|
||||
export class NoteInfo {
|
||||
title: string;
|
||||
filename: string;
|
||||
path: string;
|
||||
parentPath: string;
|
||||
isOverview: boolean;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new NoteInfo(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.title = source["title"];
|
||||
this.filename = source["filename"];
|
||||
this.path = source["path"];
|
||||
this.parentPath = source["parentPath"];
|
||||
this.isOverview = source["isOverview"];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export namespace permissions {
|
||||
|
||||
export class Entry {
|
||||
|
||||
Reference in New Issue
Block a user