@@ -2,6 +2,8 @@ import { CommandHandler, cmd_t, sahara_mode_t, status_t, exec_cmd_t } from "./sa
2
2
import { concatUint8Array , packGenerator , loadFileFromLocal , readBlobAsBuffer } from "./utils" ;
3
3
import config from "@/config"
4
4
5
+ let root ;
6
+
5
7
export class Sahara {
6
8
cdc ;
7
9
ch ; // CommandHandler
@@ -156,6 +158,7 @@ export class Sahara {
156
158
157
159
158
160
async downLoadLoader ( ) {
161
+ root = await navigator . storage . getDirectory ( ) ;
159
162
let writable ;
160
163
try {
161
164
const fileHandle = await root . getFileHandle ( this . programmer , { create : true } ) ;
@@ -172,7 +175,6 @@ export class Sahara {
172
175
173
176
try {
174
177
let processed = 0 ;
175
- //const contentLength = +response.headers.get('Content-Length');
176
178
const reader = response . body . getReader ( ) ;
177
179
while ( true ) {
178
180
const { done, value } = await reader . read ( ) ;
@@ -192,6 +194,16 @@ export class Sahara {
192
194
}
193
195
}
194
196
197
+ async getLoader ( ) {
198
+ let fileHandle ;
199
+ try {
200
+ fileHandle = await root . getFileHandle ( this . programmer , { create : false } )
201
+ } catch ( e ) {
202
+ throw `Error getting file handle: ${ e } `
203
+ }
204
+ return await fileHandle . getFile ( ) ;
205
+ }
206
+
195
207
196
208
async uploadLoader ( version ) {
197
209
if ( ! ( await this . enterCommandMode ( version ) ) ) {
@@ -213,9 +225,9 @@ export class Sahara {
213
225
}
214
226
215
227
console . log ( "Uploading Programmer..." ) ;
216
- // TODO: change to auto download
217
- // let programmer = new Uint8Array( await readBlobAsBuffer(await downloadLoader()) );
218
- let programmer = new Uint8Array ( await readBlobAsBuffer ( await loadFileFromLocal ( ) ) ) ;
228
+ await this . downLoadLoader ( ) ;
229
+ let loaderBlob = await this . getLoader ( ) ;
230
+ let programmer = new Uint8Array ( await readBlobAsBuffer ( loaderBlob ) ) ;
219
231
if ( ! ( await this . cmdHello ( sahara_mode_t . SAHARA_MODE_IMAGE_TX_PENDING , version = version ) ) ) {
220
232
return "error" ;
221
233
}
0 commit comments