VoiceTranscriptFormDataParser
my first try ever parsing formdataasync function nft_tokens_for_owner_func(request: HttpRequest, context) { const body = await request.text(); const bodyPipe = await request.body; // bodyPipe.releaseLock(); const bodyJson = await request.json(); const boundary = body.slice(0, 40); const random = (() => { const buf = Buffer.alloc(16); return () => randomFillSync(buf).toString('hex'); })(); function readHeader(request: HttpRequest, key: string) { return {[key] :Object.fromEntries(request.headers.entries())[key] + `; boundary=${boundary}`}; } return new Promise((resolve, reject) => { console.log({contentType: request.headers.values}); console.log({new_header: readHeader(request, 'content-type')}); const busboyHeader = readHeader(request, 'content-type'); const bb = busboy({ headers: busboyHeader }); const saveTo = join(process.cwd(), "./",); console.log({temp_directory: saveTo}); // const saveTo = join(tmpdir(), `busboy-upload-${random()}`); bb.on('file', (fieldname, file, filename, encoding, mimetype) => { const saveTo = join(process.cwd(), 'uploads', filename); const writeStream = createWriteStream(saveTo); file.pipe(writeStream); writeStream.on('close', () => { context.log(`File [${filename}] saved successfully.`); }); writeStream.on('error', (err) => { context.log.error(`Error writing file [${filename}]: ${err.message}`); }); }); bb.on('finish', () => { context.res = { status: 200, body: 'Upload complete!', }; context.done(); }); const downloadWriteStream = createWriteStream('./'); const stream = new WritableStream({ write(bb){ downloadWriteStream.write(bb); } }); console.log({readableStream: bodyPipe}); bodyPipe.pipeTo(stream); }) } nft_tokens_for_owner_func(request, context);
Leave a Comment