BetterDiscordApp-rauenzi/renderer/src/modules/api/data.js

56 lines
1.6 KiB
JavaScript

import DataStore from "../datastore";
/**
* `Data` is a simple utility class for the management of plugin data. An instance is available on {@link BdApi}.
* @type Data
* @summary {@link Data} is a simple utility class for the management of plugin data.
* @name Data
*/
class Data {
constructor(callerName) {
if (!callerName) return;
this.save = this.save.bind(this, callerName);
this.load = this.load.bind(this, callerName);
this.delete = this.delete.bind(this, callerName);
}
/**
* Saves JSON-serializable data.
*
* @param {string} pluginName Name of the plugin saving data
* @param {string} key Which piece of data to store
* @param {any} data The data to be saved
* @returns
*/
save(pluginName, key, data) {
return DataStore.setPluginData(pluginName, key, data);
}
/**
* Loads previously stored data.
*
* @param {string} pluginName Name of the plugin loading data
* @param {string} key Which piece of data to load
* @returns {any} The stored data
*/
load(pluginName, key, data) {
return DataStore.setPluginData(pluginName, key, data);
}
/**
* Deletes a piece of stored data, this is different than saving as null or undefined.
*
* @param {string} pluginName Name of the plugin deleting data
* @param {string} key Which piece of data to delete
*/
delete(pluginName, key, data) {
return DataStore.setPluginData(pluginName, key, data);
}
}
Object.freeze(Data);
Object.freeze(Data.prototype);
export default Data;