add HEICConversionService to handle both electron and wasm
This commit is contained in:
parent
2096d09e0d
commit
c901fcc14e
24
src/services/heicConversionService.ts
Normal file
24
src/services/heicConversionService.ts
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
import isElectron from 'is-electron';
|
||||||
|
import { logError } from 'utils/sentry';
|
||||||
|
import WasmHEICConverterService from './wasmHeicConverter/wasmHEICConverterService';
|
||||||
|
import ElectronHEICConvertor from 'services/electron/heicConvertor';
|
||||||
|
|
||||||
|
class HeicConversionService {
|
||||||
|
async convert(heicFileData: Blob): Promise<Blob> {
|
||||||
|
try {
|
||||||
|
if (isElectron() && ElectronHEICConvertor.apiExists()) {
|
||||||
|
try {
|
||||||
|
return ElectronHEICConvertor.convert(heicFileData);
|
||||||
|
} catch (e) {
|
||||||
|
return WasmHEICConverterService.convert(heicFileData);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return WasmHEICConverterService.convert(heicFileData);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
logError(e, 'failed to convert heic file');
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
export default new HeicConversionService();
|
Loading…
Reference in a new issue