wallet-core: backwards compatibility for bankAccounts store, naming conventions
This commit is contained in:
parent
72336b149b
commit
8d19b80153
@ -70,7 +70,31 @@ function upgradeFromStoreMap(
|
||||
return;
|
||||
}
|
||||
logger.info(`upgrading database from ${oldVersion} to ${newVersion}`);
|
||||
throw Error("upgrade not supported");
|
||||
for (const n in storeMap) {
|
||||
const swi: StoreWithIndexes<any, StoreDescriptor<unknown>, any> = storeMap[
|
||||
n
|
||||
];
|
||||
const storeDesc: StoreDescriptor<unknown> = swi.store;
|
||||
const storeAddedVersion = storeDesc.versionAdded ?? 0;
|
||||
if (storeAddedVersion <= oldVersion) {
|
||||
continue;
|
||||
}
|
||||
const s = db.createObjectStore(swi.storeName, {
|
||||
autoIncrement: storeDesc.autoIncrement,
|
||||
keyPath: storeDesc.keyPath,
|
||||
});
|
||||
for (const indexName in swi.indexMap as any) {
|
||||
const indexDesc: IndexDescriptor = swi.indexMap[indexName];
|
||||
const indexAddedVersion = indexDesc.versionAdded ?? 0;
|
||||
if (indexAddedVersion <= oldVersion) {
|
||||
continue;
|
||||
}
|
||||
s.createIndex(indexDesc.name, indexDesc.keyPath, {
|
||||
multiEntry: indexDesc.multiEntry,
|
||||
unique: indexDesc.unique,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function promiseFromTransaction(transaction: IDBTransaction): Promise<void> {
|
||||
|
@ -96,7 +96,7 @@ export const CURRENT_DB_CONFIG_KEY = "currentMainDbName";
|
||||
* backwards-compatible way or object stores and indices
|
||||
* are added.
|
||||
*/
|
||||
export const WALLET_DB_MINOR_VERSION = 1;
|
||||
export const WALLET_DB_MINOR_VERSION = 2;
|
||||
|
||||
export namespace OperationStatusRange {
|
||||
export const ACTIVE_START = 10;
|
||||
@ -2088,6 +2088,7 @@ export const WalletStoresV1 = {
|
||||
"bankAccounts",
|
||||
describeContents<BankAccountsRecord>({
|
||||
keyPath: "uri",
|
||||
versionAdded: 2,
|
||||
}),
|
||||
{},
|
||||
),
|
||||
@ -2099,7 +2100,7 @@ export const WalletStoresV1 = {
|
||||
export interface BankAccountsRecord {
|
||||
uri: string;
|
||||
currency: string;
|
||||
kyc_completed: boolean;
|
||||
kycCompleted: boolean;
|
||||
alias: string;
|
||||
}
|
||||
|
||||
|
@ -284,17 +284,29 @@ export interface IndexDescriptor {
|
||||
keyPath: IDBKeyPath | IDBKeyPath[];
|
||||
multiEntry?: boolean;
|
||||
unique?: boolean;
|
||||
versionAdded?: number;
|
||||
}
|
||||
|
||||
export interface StoreDescriptor<RecordType> {
|
||||
_dummy: undefined & RecordType;
|
||||
keyPath?: IDBKeyPath | IDBKeyPath[];
|
||||
autoIncrement?: boolean;
|
||||
/**
|
||||
* Database version that this store was added in, or
|
||||
* undefined if added in the first version.
|
||||
*/
|
||||
versionAdded?: number;
|
||||
}
|
||||
|
||||
export interface StoreOptions {
|
||||
keyPath?: IDBKeyPath | IDBKeyPath[];
|
||||
autoIncrement?: boolean;
|
||||
|
||||
/**
|
||||
* Database version that this store was added in, or
|
||||
* undefined if added in the first version.
|
||||
*/
|
||||
versionAdded?: number;
|
||||
}
|
||||
|
||||
export function describeContents<RecordType = never>(
|
||||
@ -304,6 +316,7 @@ export function describeContents<RecordType = never>(
|
||||
keyPath: options.keyPath,
|
||||
_dummy: undefined as any,
|
||||
autoIncrement: options.autoIncrement,
|
||||
versionAdded: options.versionAdded,
|
||||
};
|
||||
}
|
||||
|
||||
@ -317,6 +330,7 @@ export function describeIndex(
|
||||
name,
|
||||
multiEntry: options.multiEntry,
|
||||
unique: options.unique,
|
||||
versionAdded: options.versionAdded,
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -686,7 +686,7 @@ async function listKnownBankAccounts(
|
||||
accounts.push({
|
||||
uri: payto,
|
||||
alias: r.alias,
|
||||
kyc_completed: r.kyc_completed,
|
||||
kyc_completed: r.kycCompleted,
|
||||
currency: r.currency,
|
||||
});
|
||||
}
|
||||
@ -710,7 +710,7 @@ async function addKnownBankAccounts(
|
||||
uri: payto,
|
||||
alias: alias,
|
||||
currency: currency,
|
||||
kyc_completed: false,
|
||||
kycCompleted: false,
|
||||
});
|
||||
});
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user