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.
		
		
		
		
		
			
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			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 };
 |