feat: pass options to downstream decryptor

This commit is contained in:
鲁树人
2023-06-10 12:06:02 +01:00
parent 0038322ae9
commit 865dcae931
7 changed files with 49 additions and 16 deletions

View File

@ -5,6 +5,7 @@ import { decryptionQueue } from '~/decrypt-worker/client';
import type { DecryptionResult } from '~/decrypt-worker/constants';
import { DecryptErrorType } from '~/decrypt-worker/util/DecryptError';
import { selectDecryptOptionByFile } from '../settings/settingsSelector';
export enum ProcessState {
QUEUED = 'QUEUED',
@ -51,7 +52,8 @@ export const processFile = createAsyncThunk<
{ fileId: string },
{ rejectValue: { message: string; stack?: string } }
>('fileListing/processFile', async ({ fileId }, thunkAPI) => {
const file = selectFiles(thunkAPI.getState() as RootState)[fileId];
const state = thunkAPI.getState() as RootState;
const file = selectFiles(state)[fileId];
if (!file) {
const { message, stack } = new Error('ERROR: File not found');
return thunkAPI.rejectWithValue({ message, stack });
@ -61,7 +63,8 @@ export const processFile = createAsyncThunk<
thunkAPI.dispatch(setFileAsProcessing({ id: fileId }));
};
return decryptionQueue.add({ id: fileId, blobURI: file.raw }, onPreProcess);
const options = selectDecryptOptionByFile(state, file.fileName);
return decryptionQueue.add({ id: fileId, blobURI: file.raw, options }, onPreProcess);
});
export const fileListingSlice = createSlice({

View File

@ -0,0 +1,11 @@
import type { DecryptCommandOptions } from '~/decrypt-worker/types';
import type { RootState } from '~/store';
import { hasOwn } from '~/util/objects';
export const selectDecryptOptionByFile = (state: RootState, name: string): DecryptCommandOptions => {
const qmc2Keys = state.settings.qmc2.keys;
return {
qmc2Key: hasOwn(qmc2Keys, name) ? qmc2Keys[name] : undefined,
};
};