jeep-sqlite
Version:
Browser SQLite Stencil Component
122 lines (121 loc) • 4.15 kB
JavaScript
export class UtilsStore {
static async getDBFromStore(dbName, store) {
try {
const retDb = await store.getItem(dbName);
return Promise.resolve(retDb);
}
catch (err) {
return Promise.reject(`GetDBFromStore: ${err.message}`);
}
}
static async setInitialDBToStore(dbName, store) {
try {
// export the database
const data = null;
// store the database
await store.setItem(dbName, data);
return Promise.resolve();
}
catch (err) {
return Promise.reject(`SetInitialDBToStore: ${err.message}`);
}
}
static async setDBToStore(mDb, dbName, store) {
try {
// export the database
const data = mDb.export();
// store the database
await UtilsStore.saveDBToStore(dbName, data, store);
return Promise.resolve();
}
catch (err) {
return Promise.reject(`SetDBToStore: ${err.message}`);
}
}
static async saveDBToStore(dbName, data, store) {
try {
await store.removeItem(dbName);
// store the database
await store.setItem(dbName, data);
return Promise.resolve();
}
catch (err) {
return Promise.reject(`SaveDBToStore: ${err.message}`);
}
}
static async removeDBFromStore(dbName, store) {
try {
await store.removeItem(dbName);
return Promise.resolve();
}
catch (err) {
return Promise.reject(`RemoveDBFromStore: ${err.message}`);
}
}
static async isDBInStore(dbName, store) {
try {
const retDb = await store.getItem(dbName);
if (retDb != null && retDb.length > 0) {
return Promise.resolve(true);
}
else {
return Promise.resolve(false);
}
}
catch (err) {
return Promise.reject(`IsDBInStore: ${err}`);
}
}
static async restoreDBFromStore(dbName, prefix, store) {
const mFileName = `${prefix}-${dbName}`;
try {
// check if file exists
const isFilePre = await UtilsStore.isDBInStore(mFileName, store);
if (isFilePre) {
const isFile = await UtilsStore.isDBInStore(dbName, store);
if (isFile) {
const retDb = await UtilsStore.getDBFromStore(mFileName, store);
await UtilsStore.saveDBToStore(dbName, retDb, store);
await UtilsStore.removeDBFromStore(mFileName, store);
return Promise.resolve();
}
else {
return Promise.reject(new Error(`RestoreDBFromStore: ${dbName} does not exist`));
}
}
else {
return Promise.reject(new Error(`RestoreDBFromStore: ${mFileName} does not exist`));
}
}
catch (err) {
return Promise.reject(`RestoreDBFromStore: ${err.message}`);
}
}
static async copyDBToStore(dbName, toDb, store) {
try {
// check if file exists
const isFile = await UtilsStore.isDBInStore(dbName, store);
if (isFile) {
const retDb = await UtilsStore.getDBFromStore(dbName, store);
await UtilsStore.saveDBToStore(toDb, retDb, store);
return Promise.resolve();
}
else {
return Promise.reject(new Error(`CopyDBToStore: ${dbName} does not exist`));
}
}
catch (err) {
return Promise.reject(`CopyDBToStore: ${err.message}`);
}
}
static async getDBListFromStore(store) {
try {
const retDbList = await store.keys();
return Promise.resolve(retDbList);
}
catch (err) {
return Promise.reject(`GetDBListFromStore: ${err.message}`);
}
}
}
//# sourceMappingURL=utils-store.js.map