feat: expose plugin data storage bridge
This commit is contained in:
@@ -232,6 +232,31 @@ export function createPluginAPI(pluginId) {
|
||||
}
|
||||
},
|
||||
|
||||
storage: {
|
||||
data: {
|
||||
read: function(name) {
|
||||
assertActive('storage.data.read(' + name + ')');
|
||||
if (!name) {
|
||||
throw new Error('storage.data.read requires a name');
|
||||
}
|
||||
return callBackend(pluginId, 'storage.data.read(' + name + ')', function() {
|
||||
return App.ReadPluginDataJSON(pluginId, name);
|
||||
}).then(function(data) {
|
||||
return data || {};
|
||||
});
|
||||
},
|
||||
write: function(name, data) {
|
||||
assertActive('storage.data.write(' + name + ')');
|
||||
if (!name) {
|
||||
throw new Error('storage.data.write requires a name');
|
||||
}
|
||||
return callBackendErrorString(pluginId, 'storage.data.write(' + name + ')', function() {
|
||||
return App.WritePluginDataJSON(pluginId, name, data || {});
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
files: {
|
||||
list: function(relativeDir) {
|
||||
assertActive('files.list');
|
||||
|
||||
@@ -216,6 +216,7 @@
|
||||
var pluginSettings = {
|
||||
'verstak.platform-test': { savedText: 'initial value' }
|
||||
};
|
||||
var pluginData = {};
|
||||
var vaultFiles = makeDefaultVaultFiles();
|
||||
var externalOpens = [];
|
||||
var trashEntries = [];
|
||||
@@ -1120,8 +1121,15 @@
|
||||
},
|
||||
ReadPluginSetting: function () { return Promise.resolve(null); },
|
||||
WritePluginSetting: function () { return Promise.resolve(null); },
|
||||
ReadPluginDataJSON: function () { return Promise.resolve({}); },
|
||||
WritePluginDataJSON: function () { return Promise.resolve(null); },
|
||||
ReadPluginDataJSON: function (pluginId, name) {
|
||||
var data = (pluginData[pluginId] && pluginData[pluginId][name]) || {};
|
||||
return Promise.resolve([Object.assign({}, data), '']);
|
||||
},
|
||||
WritePluginDataJSON: function (pluginId, name, data) {
|
||||
pluginData[pluginId] = pluginData[pluginId] || {};
|
||||
pluginData[pluginId][name] = Object.assign({}, data || {});
|
||||
return Promise.resolve('');
|
||||
},
|
||||
OpenWorkbenchResource: function (pluginId, request) {
|
||||
return openWorkbenchResource(pluginId, request || {}, '');
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user