@@ -29,7 +29,15 @@ import { basename } from "https://deno.land/
[email protected] /path/mod.ts";
29
29
import { Service } from '../service.ts';
30
30
import { Payload, Client } from '../client.ts';
31
31
import { AppwriteException } from '../exception.ts';
32
- import type { Models } from '../models.d.ts'
32
+ import type { Models } from '../models.d.ts';
33
+
34
+ export type UploadProgress = {
35
+ $id: string;
36
+ progress: number;
37
+ sizeUploaded: number;
38
+ chunksTotal: number;
39
+ chunksUploaded: number;
40
+ }
33
41
34
42
export class {{ service .name | caseUcfirst }} extends Service {
35
43
{% for method in service .methods %}
@@ -48,7 +56,7 @@ export class {{ service.name | caseUcfirst }} extends Service {
48
56
* @throws {AppwriteException}
49
57
* @returns {Promise}
50
58
*/
51
- async {{ method .name | caseCamel }}{% if generics %}< {{generics }}>{% endif %}({% for parameter in method .parameters .all %}{{ parameter .name | caseCamel | escapeKeyword }}{% if not parameter .required %}?{% endif %}: {{ parameter .type | typeName }}{% if not loop .last %}, {% endif %}{% endfor %}{% if ' multipart/form-data' in method .consumes %}, onProgress = (progress: number ) => {}{% endif %}): Promise< {% if method .type == ' webAuth' %}Response{% elseif method .type == ' location' %}Response{% 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 %}> {
59
+ async {{ method .name | caseCamel }}{% if generics %}< {{generics }}>{% endif %}({% for parameter in method .parameters .all %}{{ parameter .name | caseCamel | escapeKeyword }}{% if not parameter .required %}?{% endif %}: {{ parameter .type | typeName }}{% if not loop .last %}, {% endif %}{% endfor %}{% if ' multipart/form-data' in method .consumes %}, onProgress = (progress: UploadProgress ) => {}{% endif %}): Promise< {% if method .type == ' webAuth' %}Response{% elseif method .type == ' location' %}Response{% 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 %}> {
52
60
{% for parameter in method .parameters .all %}
53
61
{% if parameter .required %}
54
62
if (typeof {{ parameter .name | caseCamel | escapeKeyword }} === 'undefined') {
@@ -137,7 +145,13 @@ export class {{ service.name | caseUcfirst }} extends Service {
137
145
}
138
146
139
147
if (onProgress !== null) {
140
- onProgress(Math.min((counter+1) * Client.CHUNK_SIZE, size) / size * 100);
148
+ onProgress({
149
+ $id: response['$id'],
150
+ progress: Math.min((counter+1) * Client.CHUNK_SIZE, size) / size * 100,
151
+ sizeUploaded: end+1,
152
+ chunksTotal: response['chunksTotal'],
153
+ chunksUploaded: response['chunksUploaded']
154
+ });
141
155
}
142
156
}
143
157
0 commit comments