Skip to content

Commit 9ba4eb5

Browse files
committed
Add todo notes
1 parent 78b00a1 commit 9ba4eb5

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

src/node_blob.cc

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,56 @@ using v8::Value;
3737

3838
namespace {
3939

40+
// TODO(@flakey5, @jasnell): Update the JavaScript side of blob...
41+
//
42+
// Within the JavaScript Blob object, the arrayBuffer() method will change significantly.
43+
// the pattern will be something like:
44+
//
45+
// const { createDeferredPromise } = require('internal/util');
46+
// const { concat, ...} = internalBinding('blob');
47+
//
48+
// function arrayBuffer() {
49+
// const { promise, resolve } = createDeferredPromise();
50+
// const reader = this.#buffer.getReader();
51+
// const buffers = [];
52+
// const readNext = () => {
53+
// const result = reader.pull((status, buffer) => {
54+
// if (status == -1) {
55+
// // EOS, concat and resolve.
56+
// // buffer should be undefined here.
57+
// resolve(concat(buffers));
58+
// return;
59+
// }
60+
// buffers.push(buffer);
61+
// readNext();
62+
// });
63+
// };
64+
// readNext(); // Starts the read loop
65+
// return promise;
66+
// }
67+
//
68+
// For the stream() method, the pattern will be something like:
69+
//
70+
// function stream() {
71+
// const reader = this.#buffer.getReader();
72+
// return new ReadableStream({
73+
// #reader = reader;
74+
// pull(c) {
75+
// const { promise, resolve } = createDeferredPromise();
76+
// reader.pull((status, buffer) => {
77+
// if (status === -1) { // EOS
78+
// c.close();
79+
// resolve();
80+
// return;
81+
// }
82+
// c.enqueue(new Uint8Array(buffer));
83+
// resolve();
84+
// });
85+
// return promise;
86+
// }
87+
// });
88+
// }
89+
4090
// Concatenate multiple ArrayBufferView/ArrayBuffers into a single ArrayBuffer.
4191
// This method treats all ArrayBufferView types the same.
4292
void Concat(const FunctionCallbackInfo<Value>& args) {

0 commit comments

Comments
 (0)