@tmawallet/sdk
Version:
TMA Wallet SDK
56 lines • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TelegramCloudStorage = void 0;
const sdk_1 = require("@twa-dev/sdk");
const AbstractStorage_1 = require("./AbstractStorage");
function promisify(fn) {
return (...args) => new Promise((resolve, reject) => {
fn(...args, (err, result) => {
if (err) {
reject(err);
}
else {
resolve(result);
}
});
});
}
class TelegramCloudStorage extends AbstractStorage_1.AbstractStorage {
_getItem = promisify(sdk_1.default.CloudStorage.getItem).bind(sdk_1.default.CloudStorage);
_getItems = promisify(sdk_1.default.CloudStorage.getItems).bind(sdk_1.default.CloudStorage);
_setItem = promisify(sdk_1.default.CloudStorage.setItem).bind(sdk_1.default.CloudStorage);
_removeItem = promisify(sdk_1.default.CloudStorage.removeItem).bind(sdk_1.default.CloudStorage);
_removeItems = promisify(sdk_1.default.CloudStorage.removeItems).bind(sdk_1.default.CloudStorage);
_getKeys = promisify(sdk_1.default.CloudStorage.getKeys).bind(sdk_1.default.CloudStorage);
async getItem(key) {
const result = await this._getItem(key);
return result ?? '';
}
async getItems(keys) {
const result = await this._getItems(keys);
return keys.reduce((acc, key) => {
acc[key] = result?.[key] ?? '';
return acc;
}, {});
}
async setItem(key, value) {
await this._setItem(key, value);
}
async setItems(items) {
for (const [key, value] of Object.entries(items)) {
await this._setItem(key, value);
}
}
async removeItem(key) {
await this._removeItem(key);
}
async removeItems(keys) {
await this._removeItems(keys);
}
async getKeys() {
const result = await this._getKeys();
return result ?? [];
}
}
exports.TelegramCloudStorage = TelegramCloudStorage;
//# sourceMappingURL=TelegramCloudStorage.js.map