Skip to content

Commit 8958ccf

Browse files
Merge pull request #600 from appwrite/fix-36-node-input-file
2 parents 3797839 + 3a056b5 commit 8958ccf

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

templates/node/base/requests/file.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282
const chunks = [];
8383

8484
for(let i = 0; i < chunksCount; i++) {
85-
const chunk = mainChunk.slice(i * client.CHUNK_SIZE, client.CHUNK_SIZE);
85+
const chunk = mainChunk.slice(i * client.CHUNK_SIZE, (i + 1) * client.CHUNK_SIZE);
8686
chunks.push(chunk);
8787
}
8888

templates/node/index.d.ts.twig

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,13 @@ declare module "{{ language.params.npmPackage|caseDash }}" {
131131

132132
static fromBuffer(buffer: Buffer, filename: string): InputFile;
133133

134-
static fromBlob(blob: Blob, filename: string): InputFile;
134+
static fromBlob(blob: buffer.Blob, filename: string): Promise<InputFile>;
135135

136-
static fromStream(stream: any, filename: string, size: number): InputFile;
136+
static fromStream(stream: NodeJS.ReadableStream, filename: string, size: number): InputFile;
137137

138138
static fromPlainText(content: string, filename: string): InputFile;
139+
140+
constructor(stream: NodeJS.ReadableStream, filename: string, size: number);
139141
}
140142

141143
type QueryTypesSingle = string | number | boolean;
@@ -235,7 +237,7 @@ declare module "{{ language.params.npmPackage|caseDash }}" {
235237
* @throws {{ '{' }}{{ spec.title | caseUcfirst}}Exception}
236238
* @returns {Promise}
237239
*/
238-
{{ method.name | caseCamel }}{% if generics %}<{{generics}}>{% endif %}({% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required %}?{% endif %}: {{ parameter | typeName }}{% if not loop.last %}, {% endif %}{% endfor %}): Promise<{% if method.type == 'location' %}Buffer{% else %}{% if method.responseModel and method.responseModel != 'any' %}{% if not spec.definitions[method.responseModel].additionalProperties %}Models.{% endif %}{{method.responseModel | caseUcfirst}}{% if generics_return %}<{{generics_return}}>{% endif %}{% else %}Response{% endif %}{% endif %}>;
240+
{{ method.name | caseCamel }}{% if generics %}<{{generics}}>{% endif %}({% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required %}?{% endif %}: {{ parameter | typeName }}{% if not loop.last %}, {% endif %}{% endfor %}): Promise<{% if method.type == 'location' %}Buffer{% else %}{% if method.responseModel and method.responseModel != 'any' %}{% if not spec.definitions[method.responseModel].additionalProperties %}Models.{% endif %}{{method.responseModel | caseUcfirst}}{% if generics_return %}<{{generics_return}}>{% endif %}{% else %}string{% endif %}{% endif %}>;
239241
{% endfor %}
240242
}
241243
{% endfor %}

templates/node/lib/inputFile.js.twig

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
const { Readable } = require('stream');
22
const fs = require('fs');
3-
const { promisify } = require('util');
43

54
class InputFile {
65
stream; // Content of file, readable stream
@@ -14,16 +13,15 @@ class InputFile {
1413
};
1514

1615
static fromBuffer = (buffer, filename) => {
17-
const stream = Readable.from(buffer.toString());
16+
const stream = Readable.from(buffer);
1817
const size = Buffer.byteLength(buffer);
1918
return new InputFile(stream, filename, size);
2019
};
2120

22-
static fromBlob = (blob, filename) => {
23-
const buffer = blob.arrayBuffer();
24-
const stream = Readable.from(buffer.toString());
25-
const size = Buffer.byteLength(buffer);
26-
return new InputFile(stream, filename);
21+
static fromBlob = async (blob, filename) => {
22+
const arrayBuffer = await blob.arrayBuffer();
23+
const buffer = Buffer.from(arrayBuffer);
24+
return InputFile.fromBuffer(buffer, filename);
2725
};
2826

2927
static fromStream = (stream, filename, size) => {
@@ -32,7 +30,7 @@ class InputFile {
3230

3331
static fromPlainText = (content, filename) => {
3432
const buffer = Buffer.from(content, "utf-8");
35-
const stream = Readable.from(buffer.toString());
33+
const stream = Readable.from(buffer);
3634
const size = Buffer.byteLength(buffer);
3735
return new InputFile(stream, filename, size);
3836
};

0 commit comments

Comments
 (0)