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 };
 |