feat: expose file trash metadata
This commit is contained in:
@@ -266,6 +266,12 @@ export function createPluginAPI(pluginId) {
|
||||
return App.TrashVaultPath(pluginId, relativePath);
|
||||
});
|
||||
},
|
||||
listTrash: function() {
|
||||
assertActive('files.listTrash');
|
||||
return callBackend(pluginId, 'files.listTrash', function() {
|
||||
return App.ListVaultTrash(pluginId);
|
||||
});
|
||||
},
|
||||
openExternal: function(relativePath) {
|
||||
assertActive('files.openExternal(' + relativePath + ')');
|
||||
return callBackendErrorString(pluginId, 'files.openExternal(' + relativePath + ')', function() {
|
||||
|
||||
@@ -218,6 +218,7 @@
|
||||
};
|
||||
var vaultFiles = makeDefaultVaultFiles();
|
||||
var externalOpens = [];
|
||||
var trashEntries = [];
|
||||
window.__wailsMockExternalOpens = [];
|
||||
var workspaceTree = makeDefaultWorkspaceTree();
|
||||
var reloadResponseMode = 'tuple';
|
||||
@@ -1342,9 +1343,17 @@
|
||||
if (!vaultFiles[norm.path]) return Promise.resolve([{}, 'not-found: ' + norm.path]);
|
||||
var trashId = 'mock-' + Date.now() + '-' + Math.random().toString(16).slice(2);
|
||||
var trashPath = '.verstak/trash/files/' + trashId + '/' + baseName(norm.path);
|
||||
var originalType = vaultFiles[norm.path].type || 'file';
|
||||
var moving = Object.keys(vaultFiles).filter(function (path) { return path === norm.path || path.indexOf(norm.path + '/') === 0; });
|
||||
moving.forEach(function (path) { delete vaultFiles[path]; });
|
||||
return Promise.resolve([{ originalPath: norm.path, trashPath: trashPath, trashId: trashId, deletedAt: new Date().toISOString() }, '']);
|
||||
var entry = { originalPath: norm.path, trashPath: trashPath, trashId: trashId, deletedAt: new Date().toISOString(), originalType: originalType, basename: baseName(norm.path) };
|
||||
trashEntries.unshift(entry);
|
||||
return Promise.resolve([entry, '']);
|
||||
},
|
||||
ListVaultTrash: function (pluginId) {
|
||||
var err = requirePluginPermission(pluginId, 'files.delete');
|
||||
if (err) return Promise.resolve([[], err]);
|
||||
return Promise.resolve([trashEntries.slice(), '']);
|
||||
},
|
||||
OpenVaultPathExternal: function (pluginId, relativePath) {
|
||||
var err = requirePluginPermission(pluginId, 'files.openExternal');
|
||||
|
||||
Vendored
+2
@@ -126,6 +126,8 @@ export function SubscribePluginEvent(arg1:string,arg2:string):Promise<string>;
|
||||
|
||||
export function TrashVaultPath(arg1:string,arg2:string):Promise<files.TrashResult|string>;
|
||||
|
||||
export function ListVaultTrash(arg1:string):Promise<any[]|string>;
|
||||
|
||||
export function TrashWorkspace(arg1:string):Promise<workspace.TrashResult|string>;
|
||||
|
||||
export function UpdateAppSettings(arg1:Record<string, any>):Promise<string>;
|
||||
|
||||
@@ -238,6 +238,10 @@ export function TrashVaultPath(arg1, arg2) {
|
||||
return window['go']['api']['App']['TrashVaultPath'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function ListVaultTrash(arg1) {
|
||||
return window['go']['api']['App']['ListVaultTrash'](arg1);
|
||||
}
|
||||
|
||||
export function TrashWorkspace(arg1) {
|
||||
return window['go']['api']['App']['TrashWorkspace'](arg1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user