@unikvs/indexeddb 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/indexeddb.d.ts +58 -2
- package/dist/src/indexeddb.d.ts.map +1 -1
- package/dist/src/indexeddb.js +55 -4
- package/package.json +2 -2
- package/src/indexeddb.ts +58 -4
package/dist/src/indexeddb.d.ts
CHANGED
|
@@ -17,23 +17,79 @@ export default class Indexeddb implements IStorage {
|
|
|
17
17
|
* 使用するオブジェクトストア名です。
|
|
18
18
|
*/
|
|
19
19
|
private readonly storeName;
|
|
20
|
+
/**
|
|
21
|
+
* ストレージの名前です。デバッグメッセージなどに使用されます。
|
|
22
|
+
*/
|
|
20
23
|
readonly name: string;
|
|
21
24
|
/**
|
|
22
25
|
* Indexeddb インスタンスを初期化します。
|
|
23
26
|
*
|
|
24
|
-
* @param dbName
|
|
25
|
-
* @param storeName
|
|
27
|
+
* @param dbName データベース名です。デフォルトは `"unikvs_db"` です。
|
|
28
|
+
* @param storeName データを保存するオブジェクトストア名です。デフォルトは `"kvs_store"` です。
|
|
26
29
|
*/
|
|
27
30
|
constructor(dbName?: string, storeName?: string);
|
|
31
|
+
/** ストレージが現在利用可能な状態であるかを示します。 */
|
|
28
32
|
get isOpen(): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* ストレージをオープンし、IndexedDB データベースへの接続を確立します。
|
|
35
|
+
*
|
|
36
|
+
* 既にオープンされている場合は何も行いません。
|
|
37
|
+
*/
|
|
29
38
|
open(): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* ストレージを安全にクローズします。
|
|
41
|
+
*
|
|
42
|
+
* データベース接続を閉じ、内部状態を初期化します。
|
|
43
|
+
*/
|
|
30
44
|
close(): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* 指定されたデータを、対応するキーでストレージに保存します。
|
|
47
|
+
*
|
|
48
|
+
* @param args.key 保存先のキーです。
|
|
49
|
+
* @param args.data 保存するデータです。
|
|
50
|
+
*/
|
|
31
51
|
write(args: Pick<IStorage.WriteArgs<any>, "key" | "data">): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* 指定されたキーに対応するデータをストレージから取得します。
|
|
54
|
+
*
|
|
55
|
+
* @param args.key 取得元のキーです。
|
|
56
|
+
* @returns キーに対応するデータです。存在しない場合は DOMException (NotFoundError) を投げます。
|
|
57
|
+
*/
|
|
32
58
|
read(args: Pick<IStorage.ReadArgs, "key">): Promise<any>;
|
|
59
|
+
/**
|
|
60
|
+
* 指定されたキーに対応するデータがストレージ内に存在するかを確認します。
|
|
61
|
+
*
|
|
62
|
+
* @param args.key 確認するキーです。
|
|
63
|
+
* @returns キーに対応するデータが存在する場合は true、それ以外は false です。
|
|
64
|
+
*/
|
|
33
65
|
exists(args: Pick<IStorage.ExistsArgs, "key">): Promise<boolean>;
|
|
66
|
+
/**
|
|
67
|
+
* 指定されたキーに対応するデータをストレージから削除します。
|
|
68
|
+
*
|
|
69
|
+
* @param args.key 削除するキーです。
|
|
70
|
+
*/
|
|
34
71
|
delete(args: Pick<IStorage.DeleteArgs, "key">): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* ストレージ内のすべてのデータを完全に消去します。
|
|
74
|
+
*/
|
|
35
75
|
clear(): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* 指定されたキーに対応する書き込み可能なストリームを取得します。
|
|
78
|
+
*
|
|
79
|
+
* IndexedDB にはネイティブなストリームがないため、書き込まれたチャンクをメモリー上に保持し、ストリームがクローズされたときにまとめて保存します。
|
|
80
|
+
*
|
|
81
|
+
* @param args.key 書き込み先のキーです。
|
|
82
|
+
* @returns 書き込み可能なストリームです。
|
|
83
|
+
*/
|
|
36
84
|
getWritable(args: Pick<IStorage.GetWritableArgs, "key">): WritableStream<Uint8Array>;
|
|
85
|
+
/**
|
|
86
|
+
* 指定されたキーに対応する読み取り可能なストリームを取得します。
|
|
87
|
+
*
|
|
88
|
+
* IndexedDB にはネイティブなストリームがないため、データ全体をメモリーにロードしてから単一チャンクとしてストリームで送出します。
|
|
89
|
+
*
|
|
90
|
+
* @param args.key 読み取り元のキーです。
|
|
91
|
+
* @returns 読み取り可能なストリームです。
|
|
92
|
+
*/
|
|
37
93
|
getReadable(args: Pick<IStorage.GetReadableArgs, "key">): ReadableStream<Uint8Array>;
|
|
38
94
|
}
|
|
39
95
|
//# sourceMappingURL=indexeddb.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexeddb.d.ts","sourceRoot":"","sources":["../../src/indexeddb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,SAAU,YAAW,QAAQ;IAChD;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAsB;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;;;;OAKG;gBACgB,MAAM,GAAE,MAAoB,EAAE,SAAS,GAAE,MAAoB;IAOhF,IAAW,MAAM,IAAI,OAAO,CAE3B;
|
|
1
|
+
{"version":3,"file":"indexeddb.d.ts","sourceRoot":"","sources":["../../src/indexeddb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,SAAU,YAAW,QAAQ;IAChD;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAsB;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC;;OAEG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;;;;OAKG;gBACgB,MAAM,GAAE,MAAoB,EAAE,SAAS,GAAE,MAAoB;IAOhF,gCAAgC;IAChC,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED;;;;OAIG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAelC;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKnC;;;;;OAKG;IACU,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtF;;;;;OAKG;IACU,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAarE;;;;;OAKG;IACU,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7E;;;;OAIG;IACU,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1E;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;;;;;;OAOG;IACI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC;IAuB3F;;;;;;;OAOG;IACI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC;CAW5F"}
|
package/dist/src/indexeddb.js
CHANGED
|
@@ -6,8 +6,8 @@ export default class Indexeddb {
|
|
|
6
6
|
/**
|
|
7
7
|
* Indexeddb インスタンスを初期化します。
|
|
8
8
|
*
|
|
9
|
-
* @param dbName
|
|
10
|
-
* @param storeName
|
|
9
|
+
* @param dbName データベース名です。デフォルトは `"unikvs_db"` です。
|
|
10
|
+
* @param storeName データを保存するオブジェクトストア名です。デフォルトは `"kvs_store"` です。
|
|
11
11
|
*/
|
|
12
12
|
constructor(dbName = "unikvs_db", storeName = "kvs_store") {
|
|
13
13
|
this.name = "Indexeddb";
|
|
@@ -15,9 +15,15 @@ export default class Indexeddb {
|
|
|
15
15
|
this.dbName = dbName;
|
|
16
16
|
this.storeName = storeName;
|
|
17
17
|
}
|
|
18
|
+
/** ストレージが現在利用可能な状態であるかを示します。 */
|
|
18
19
|
get isOpen() {
|
|
19
20
|
return this.db !== null;
|
|
20
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* ストレージをオープンし、IndexedDB データベースへの接続を確立します。
|
|
24
|
+
*
|
|
25
|
+
* 既にオープンされている場合は何も行いません。
|
|
26
|
+
*/
|
|
21
27
|
async open() {
|
|
22
28
|
if (this.db) {
|
|
23
29
|
return;
|
|
@@ -31,14 +37,31 @@ export default class Indexeddb {
|
|
|
31
37
|
},
|
|
32
38
|
});
|
|
33
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* ストレージを安全にクローズします。
|
|
42
|
+
*
|
|
43
|
+
* データベース接続を閉じ、内部状態を初期化します。
|
|
44
|
+
*/
|
|
34
45
|
async close() {
|
|
35
46
|
this.db.close();
|
|
36
47
|
this.db = null;
|
|
37
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* 指定されたデータを、対応するキーでストレージに保存します。
|
|
51
|
+
*
|
|
52
|
+
* @param args.key 保存先のキーです。
|
|
53
|
+
* @param args.data 保存するデータです。
|
|
54
|
+
*/
|
|
38
55
|
async write(args) {
|
|
39
56
|
const { key, data } = args;
|
|
40
57
|
await this.db.put(this.storeName, data, key);
|
|
41
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* 指定されたキーに対応するデータをストレージから取得します。
|
|
61
|
+
*
|
|
62
|
+
* @param args.key 取得元のキーです。
|
|
63
|
+
* @returns キーに対応するデータです。存在しない場合は DOMException (NotFoundError) を投げます。
|
|
64
|
+
*/
|
|
42
65
|
async read(args) {
|
|
43
66
|
const { key } = args;
|
|
44
67
|
// Opfs の挙動に合わせて、存在しない場合は DOMException (NotFoundError) を投げます
|
|
@@ -47,23 +70,44 @@ export default class Indexeddb {
|
|
|
47
70
|
}
|
|
48
71
|
return await this.db.get(this.storeName, key);
|
|
49
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* 指定されたキーに対応するデータがストレージ内に存在するかを確認します。
|
|
75
|
+
*
|
|
76
|
+
* @param args.key 確認するキーです。
|
|
77
|
+
* @returns キーに対応するデータが存在する場合は true、それ以外は false です。
|
|
78
|
+
*/
|
|
50
79
|
async exists(args) {
|
|
51
80
|
const { key } = args;
|
|
52
81
|
// count() はキーが存在すれば 1 を、存在しなければ 0 を返します
|
|
53
82
|
const count = await this.db.count(this.storeName, key);
|
|
54
83
|
return count > 0;
|
|
55
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* 指定されたキーに対応するデータをストレージから削除します。
|
|
87
|
+
*
|
|
88
|
+
* @param args.key 削除するキーです。
|
|
89
|
+
*/
|
|
56
90
|
async delete(args) {
|
|
57
91
|
const { key } = args;
|
|
58
92
|
await this.db.delete(this.storeName, key);
|
|
59
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* ストレージ内のすべてのデータを完全に消去します。
|
|
96
|
+
*/
|
|
60
97
|
async clear() {
|
|
61
98
|
await this.db.clear(this.storeName);
|
|
62
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* 指定されたキーに対応する書き込み可能なストリームを取得します。
|
|
102
|
+
*
|
|
103
|
+
* IndexedDB にはネイティブなストリームがないため、書き込まれたチャンクをメモリー上に保持し、ストリームがクローズされたときにまとめて保存します。
|
|
104
|
+
*
|
|
105
|
+
* @param args.key 書き込み先のキーです。
|
|
106
|
+
* @returns 書き込み可能なストリームです。
|
|
107
|
+
*/
|
|
63
108
|
getWritable(args) {
|
|
64
109
|
const { key } = args;
|
|
65
110
|
const chunks = [];
|
|
66
|
-
// IndexedDB にはネイティブなファイルストリームがないため、書き込まれたチャンクをメモリに保持し、クローズ時にまとめて put します。
|
|
67
111
|
return new WritableStream({
|
|
68
112
|
write: (chunk) => {
|
|
69
113
|
chunks.push(chunk);
|
|
@@ -80,11 +124,18 @@ export default class Indexeddb {
|
|
|
80
124
|
},
|
|
81
125
|
});
|
|
82
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* 指定されたキーに対応する読み取り可能なストリームを取得します。
|
|
129
|
+
*
|
|
130
|
+
* IndexedDB にはネイティブなストリームがないため、データ全体をメモリーにロードしてから単一チャンクとしてストリームで送出します。
|
|
131
|
+
*
|
|
132
|
+
* @param args.key 読み取り元のキーです。
|
|
133
|
+
* @returns 読み取り可能なストリームです。
|
|
134
|
+
*/
|
|
83
135
|
getReadable(args) {
|
|
84
136
|
const { key } = args;
|
|
85
137
|
return new ReadableStream({
|
|
86
138
|
pull: async (controller) => {
|
|
87
|
-
// データ全体をメモリにロードしてから ReadableStream に流し込みます。
|
|
88
139
|
const data = await this.read({ key });
|
|
89
140
|
controller.enqueue(data);
|
|
90
141
|
controller.close();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unikvs/indexeddb",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"description": "",
|
|
5
5
|
"homepage": "https://github.com/tai-kun/unikvs",
|
|
6
6
|
"license": "MIT",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@unikvs/core": "0.0.
|
|
28
|
+
"@unikvs/core": "0.0.9",
|
|
29
29
|
"idb": "^8.0.3"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
package/src/indexeddb.ts
CHANGED
|
@@ -22,13 +22,16 @@ export default class Indexeddb implements IStorage {
|
|
|
22
22
|
*/
|
|
23
23
|
private readonly storeName: string;
|
|
24
24
|
|
|
25
|
+
/**
|
|
26
|
+
* ストレージの名前です。デバッグメッセージなどに使用されます。
|
|
27
|
+
*/
|
|
25
28
|
public readonly name: string;
|
|
26
29
|
|
|
27
30
|
/**
|
|
28
31
|
* Indexeddb インスタンスを初期化します。
|
|
29
32
|
*
|
|
30
|
-
* @param dbName
|
|
31
|
-
* @param storeName
|
|
33
|
+
* @param dbName データベース名です。デフォルトは `"unikvs_db"` です。
|
|
34
|
+
* @param storeName データを保存するオブジェクトストア名です。デフォルトは `"kvs_store"` です。
|
|
32
35
|
*/
|
|
33
36
|
public constructor(dbName: string = "unikvs_db", storeName: string = "kvs_store") {
|
|
34
37
|
this.name = "Indexeddb";
|
|
@@ -37,10 +40,16 @@ export default class Indexeddb implements IStorage {
|
|
|
37
40
|
this.storeName = storeName;
|
|
38
41
|
}
|
|
39
42
|
|
|
43
|
+
/** ストレージが現在利用可能な状態であるかを示します。 */
|
|
40
44
|
public get isOpen(): boolean {
|
|
41
45
|
return this.db !== null;
|
|
42
46
|
}
|
|
43
47
|
|
|
48
|
+
/**
|
|
49
|
+
* ストレージをオープンし、IndexedDB データベースへの接続を確立します。
|
|
50
|
+
*
|
|
51
|
+
* 既にオープンされている場合は何も行いません。
|
|
52
|
+
*/
|
|
44
53
|
public async open(): Promise<void> {
|
|
45
54
|
if (this.db) {
|
|
46
55
|
return;
|
|
@@ -56,16 +65,33 @@ export default class Indexeddb implements IStorage {
|
|
|
56
65
|
});
|
|
57
66
|
}
|
|
58
67
|
|
|
68
|
+
/**
|
|
69
|
+
* ストレージを安全にクローズします。
|
|
70
|
+
*
|
|
71
|
+
* データベース接続を閉じ、内部状態を初期化します。
|
|
72
|
+
*/
|
|
59
73
|
public async close(): Promise<void> {
|
|
60
74
|
this.db!.close();
|
|
61
75
|
this.db = null;
|
|
62
76
|
}
|
|
63
77
|
|
|
78
|
+
/**
|
|
79
|
+
* 指定されたデータを、対応するキーでストレージに保存します。
|
|
80
|
+
*
|
|
81
|
+
* @param args.key 保存先のキーです。
|
|
82
|
+
* @param args.data 保存するデータです。
|
|
83
|
+
*/
|
|
64
84
|
public async write(args: Pick<IStorage.WriteArgs<any>, "key" | "data">): Promise<void> {
|
|
65
85
|
const { key, data } = args;
|
|
66
86
|
await this.db!.put(this.storeName, data, key);
|
|
67
87
|
}
|
|
68
88
|
|
|
89
|
+
/**
|
|
90
|
+
* 指定されたキーに対応するデータをストレージから取得します。
|
|
91
|
+
*
|
|
92
|
+
* @param args.key 取得元のキーです。
|
|
93
|
+
* @returns キーに対応するデータです。存在しない場合は DOMException (NotFoundError) を投げます。
|
|
94
|
+
*/
|
|
69
95
|
public async read(args: Pick<IStorage.ReadArgs, "key">): Promise<any> {
|
|
70
96
|
const { key } = args;
|
|
71
97
|
// Opfs の挙動に合わせて、存在しない場合は DOMException (NotFoundError) を投げます
|
|
@@ -79,6 +105,12 @@ export default class Indexeddb implements IStorage {
|
|
|
79
105
|
return await this.db!.get(this.storeName, key);
|
|
80
106
|
}
|
|
81
107
|
|
|
108
|
+
/**
|
|
109
|
+
* 指定されたキーに対応するデータがストレージ内に存在するかを確認します。
|
|
110
|
+
*
|
|
111
|
+
* @param args.key 確認するキーです。
|
|
112
|
+
* @returns キーに対応するデータが存在する場合は true、それ以外は false です。
|
|
113
|
+
*/
|
|
82
114
|
public async exists(args: Pick<IStorage.ExistsArgs, "key">): Promise<boolean> {
|
|
83
115
|
const { key } = args;
|
|
84
116
|
|
|
@@ -87,21 +119,36 @@ export default class Indexeddb implements IStorage {
|
|
|
87
119
|
return count > 0;
|
|
88
120
|
}
|
|
89
121
|
|
|
122
|
+
/**
|
|
123
|
+
* 指定されたキーに対応するデータをストレージから削除します。
|
|
124
|
+
*
|
|
125
|
+
* @param args.key 削除するキーです。
|
|
126
|
+
*/
|
|
90
127
|
public async delete(args: Pick<IStorage.DeleteArgs, "key">): Promise<void> {
|
|
91
128
|
const { key } = args;
|
|
92
129
|
|
|
93
130
|
await this.db!.delete(this.storeName, key);
|
|
94
131
|
}
|
|
95
132
|
|
|
133
|
+
/**
|
|
134
|
+
* ストレージ内のすべてのデータを完全に消去します。
|
|
135
|
+
*/
|
|
96
136
|
public async clear(): Promise<void> {
|
|
97
137
|
await this.db!.clear(this.storeName);
|
|
98
138
|
}
|
|
99
139
|
|
|
140
|
+
/**
|
|
141
|
+
* 指定されたキーに対応する書き込み可能なストリームを取得します。
|
|
142
|
+
*
|
|
143
|
+
* IndexedDB にはネイティブなストリームがないため、書き込まれたチャンクをメモリー上に保持し、ストリームがクローズされたときにまとめて保存します。
|
|
144
|
+
*
|
|
145
|
+
* @param args.key 書き込み先のキーです。
|
|
146
|
+
* @returns 書き込み可能なストリームです。
|
|
147
|
+
*/
|
|
100
148
|
public getWritable(args: Pick<IStorage.GetWritableArgs, "key">): WritableStream<Uint8Array> {
|
|
101
149
|
const { key } = args;
|
|
102
150
|
const chunks: Uint8Array[] = [];
|
|
103
151
|
|
|
104
|
-
// IndexedDB にはネイティブなファイルストリームがないため、書き込まれたチャンクをメモリに保持し、クローズ時にまとめて put します。
|
|
105
152
|
return new WritableStream({
|
|
106
153
|
write: (chunk) => {
|
|
107
154
|
chunks.push(chunk);
|
|
@@ -121,12 +168,19 @@ export default class Indexeddb implements IStorage {
|
|
|
121
168
|
});
|
|
122
169
|
}
|
|
123
170
|
|
|
171
|
+
/**
|
|
172
|
+
* 指定されたキーに対応する読み取り可能なストリームを取得します。
|
|
173
|
+
*
|
|
174
|
+
* IndexedDB にはネイティブなストリームがないため、データ全体をメモリーにロードしてから単一チャンクとしてストリームで送出します。
|
|
175
|
+
*
|
|
176
|
+
* @param args.key 読み取り元のキーです。
|
|
177
|
+
* @returns 読み取り可能なストリームです。
|
|
178
|
+
*/
|
|
124
179
|
public getReadable(args: Pick<IStorage.GetReadableArgs, "key">): ReadableStream<Uint8Array> {
|
|
125
180
|
const { key } = args;
|
|
126
181
|
|
|
127
182
|
return new ReadableStream({
|
|
128
183
|
pull: async (controller) => {
|
|
129
|
-
// データ全体をメモリにロードしてから ReadableStream に流し込みます。
|
|
130
184
|
const data = await this.read({ key });
|
|
131
185
|
controller.enqueue(data);
|
|
132
186
|
controller.close();
|