You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-desktop/ts/node/migration/helpers/v33.ts

53 lines
1.4 KiB
TypeScript

import * as BetterSqlite3 from '@signalapp/better-sqlite3';
import { CONFIG_DUMP_TABLE, ConfigDumpRow } from '../../../types/sqlSharedTypes';
import { checkTargetMigration } from '../utils';
const targetVersion = 33;
function fetchUserConfigDump(
db: BetterSqlite3.Database,
version: number,
userPubkeyhex: string
): ConfigDumpRow | null {
checkTargetMigration(version, targetVersion);
const userConfigWrapperDumps = db
.prepare(
`SELECT * FROM ${CONFIG_DUMP_TABLE} WHERE variant = $variant AND publicKey = $publicKey;`
)
.all({ variant: 'UserConfig', publicKey: userPubkeyhex }) as Array<ConfigDumpRow>;
if (!userConfigWrapperDumps || !userConfigWrapperDumps.length) {
return null;
}
// we can only have one dump with the "UserConfig" variant and our pubkey
return userConfigWrapperDumps[0];
}
function writeUserConfigDump(
db: BetterSqlite3.Database,
version: number,
userPubkeyhex: string,
dump: Uint8Array
) {
checkTargetMigration(version, targetVersion);
db.prepare(
`INSERT OR REPLACE INTO ${CONFIG_DUMP_TABLE} (
publicKey,
variant,
data
) values (
$publicKey,
$variant,
$data
);`
).run({
publicKey: userPubkeyhex,
variant: 'UserConfig',
data: dump,
});
}
export const V33 = { fetchUserConfigDump, writeUserConfigDump };