@@ -30,7 +30,7 @@ export async function insertStorage(key, value) {
30
30
return await Preferences . set ( { key : key , value : value } ) ;
31
31
}
32
32
33
- export async function compressImage ( maxSizeKb , prevImage ) {
33
+ export async function compressImage ( prevImage , maxSizeKb ) {
34
34
let opts = { quality : 1 } ;
35
35
if ( maxSizeKb ) {
36
36
opts = {
@@ -50,12 +50,12 @@ export async function compressImage(maxSizeKb, prevImage) {
50
50
return nextImage ;
51
51
}
52
52
53
- export async function selectClipboard ( opfsName = null ) {
53
+ export async function selectClipboard ( opts = { } ) {
54
54
const { value } = await Clipboard . read ( ) ;
55
- return await selectDataUrl ( value , opfsName ) ;
55
+ return await resolveDataUrl ( value , opts ) ;
56
56
}
57
57
58
- export async function selectFile ( file , opfsName = null ) {
58
+ export async function selectFile ( file , opts = { } ) {
59
59
const value = await new Promise ( ( resolve , reject ) => {
60
60
var fr = new FileReader ( ) ;
61
61
fr . onload = ( ) => {
@@ -64,18 +64,22 @@ export async function selectFile(file, opfsName = null) {
64
64
fr . onerror = reject ;
65
65
fr . readAsDataURL ( file ) ;
66
66
} ) ;
67
- return await selectDataUrl ( value , opfsName ) ;
67
+ return await resolveDataUrl ( value , opts ) ;
68
68
}
69
69
70
- export async function selectDataUrl ( value , opfsName = null ) {
70
+ export async function resolveDataUrl ( value , opts = { } ) {
71
71
try {
72
72
const { buffer : u8a , typeFull : mime } = dataUriToBuffer ( value ) ;
73
73
let blob = new Blob ( [ u8a ] , { type : mime } ) ;
74
74
if ( mime . startsWith ( "image" ) ) {
75
- blob = await compressImage ( null , blob ) ;
75
+ let maxSizeKb = null ;
76
+ if ( opts . maxSizeKb ) {
77
+ maxSizeKb = opts . maxSizeKb ;
78
+ }
79
+ blob = await compressImage ( blob , maxSizeKb ) ;
76
80
}
77
- if ( opfsName ) {
78
- await opfsWrite ( value , opfsName ) ;
81
+ if ( opts . opfsName ) {
82
+ await opfsWrite ( value , opts . opfsName ) ;
79
83
}
80
84
return URL . createObjectURL ( blob ) ;
81
85
} catch ( e ) {
@@ -102,7 +106,7 @@ export async function opfsRead(opfsName) {
102
106
const handle = await root . getFileHandle ( opfsName ) ;
103
107
const file = await handle . getFile ( ) ;
104
108
const uri = await file . text ( ) ;
105
- const res = await selectDataUrl ( uri ) ;
109
+ const res = await resolveDataUrl ( uri ) ;
106
110
return res ;
107
111
} catch ( e ) {
108
112
alert ( "OPFS read failure: " + e . toString ( ) + " file: " + opfsName ) ;
@@ -200,17 +204,16 @@ export function isNativePlatform() {
200
204
return Capacitor . isNativePlatform ( ) ;
201
205
}
202
206
203
- export async function fetchUrlAsRfc2397 ( maxSizeKb , url ) {
207
+ export async function fetchUrlAsRfc2397 ( url ) {
204
208
const imgResp = await fetch ( url ) ;
205
209
const imgBlob = await imgResp . blob ( ) ;
206
- const imgComp = await compressImage ( maxSizeKb , imgBlob ) ;
207
210
const rfc2397 = await new Promise ( ( resolve , reject ) => {
208
211
var fr = new FileReader ( ) ;
209
212
fr . onload = ( ) => {
210
213
resolve ( fr . result ) ;
211
214
} ;
212
215
fr . onerror = reject ;
213
- fr . readAsDataURL ( imgComp ) ;
216
+ fr . readAsDataURL ( imgBlob ) ;
214
217
} ) ;
215
218
const utf8Encode = new TextEncoder ( ) ;
216
219
const ab = utf8Encode . encode ( rfc2397 ) . buffer ;
0 commit comments