@@ -41,16 +41,18 @@ export default class {{classname}} {
4141 { {#summary} }
4242 * { {&summary} }
4343 * This will create a progressive upload session.{ {/summary} }{ {#allParams} }{ {^isFile} }
44- * @param { {paramName} } { {description} }{ {/isFile} }{ {/allParams} }
44+ * @param { {paramName} } { {description} }{ {/isFile} }{ {/allParams} }{ {#vendorExtensions.x-client-copy-from-response} }
45+ * @param { {paramName} } optional { {paramName} } value{ {/vendorExtensions.x-client-copy-from-response} }
4546 */
46- public create{ {#titlecase} }{ {nickname} }{ {/titlecase} }ProgressiveSession({ {#allParams} }{ {^isFile} }{ {paramName} }{ {^required} }?{ {/required} }: { {{dataType} }}{ {#vendorExtensions.x-optional-object} } = { } { {/vendorExtensions.x-optional-object} }{ {^-last} }, { {/-last} }{ {/isFile} }{ {/allParams} }): ProgressiveSession<{ {{returnType} }}> {
47+ public create{ {#titlecase} }{ {nickname} }{ {/titlecase} }ProgressiveSession({ {#allParams} }{ {^isFile} }{ {paramName} }{ {^required} }?{ {/required} }: { {{dataType} }}{ {#vendorExtensions.x-optional-object} } = { } { {/vendorExtensions.x-optional-object} }{ {^-last} }, { {/-last} }{ {/isFile} }{ {/allParams} }{ {#vendorExtensions.x-client-copy-from-response } } { {paramName } }?: string, { {/vendorExtensions.x-client-copy-from-response } } ): ProgressiveSession<{ {{returnType} }}> {
4748 class {{#titlecase} }{ {nickname} }{ {/titlecase} }ProgressiveSession<Type > {
4849 private httpClient: HttpClient;
4950 private currentPart = 1;{{#vendorExtensions.x-client-copy-from-response} }
5051 private { {paramName} }?: string;{ {/vendorExtensions.x-client-copy-from-response} }
5152
52- constructor(httpClient: HttpClient) {
53- this.httpClient = httpClient;
53+ constructor(httpClient: HttpClient{ {#vendorExtensions.x-client-copy-from-response} }, { {paramName} }?: string{ {/vendorExtensions.x-client-copy-from-response} }) {
54+ this.httpClient = httpClient;{{#vendorExtensions.x-client-copy-from-response} }
55+ this.{ {paramName} } = { {paramName} };{ {/vendorExtensions.x-client-copy-from-response} }
5456 }
5557
5658 uploadPart(file: string, progressListener?: (event: UploadProgressEvent) => void) {
@@ -174,7 +176,7 @@ export default class {{classname}} {
174176 }
175177 }
176178
177- return new { {#titlecase} }{ {nickname} }{ {/titlecase} }ProgressiveSession<{ {{returnType} }}>(this.httpClient);
179+ return new { {#titlecase} }{ {nickname} }{ {/titlecase} }ProgressiveSession<{ {{returnType} }}>(this.httpClient{ {#vendorExtensions.x-client-copy-from-response } }, { {paramName } } { {/vendorExtensions.x-client-copy-from-response } } );
178180 }
179181 { {/vendorExtensions.x-client-chunk-upload} }
180182 { {#vendorExtensions.x-group-parameters} }
@@ -204,10 +206,15 @@ export default class {{classname}} {
204206 * @param { {paramName} } { {description} }
205207 { {/allParams} }
206208 */
207- public async { {nickname} }({ {#allParams} }{ {paramName} }{ {^required} }?{ {/required} }: { {#isFile} }{ {#vendorExtensions.x-client-chunk-upload} }string{ {/vendorExtensions.x-client-chunk-upload} }{ {^vendorExtensions.x-client-chunk-upload} }string | Readable | Buffer{ {/vendorExtensions.x-client-chunk-upload} }{ {/isFile} }{ {^isFile} }{ {{dataType} }}{ {/isFile} }{ {#vendorExtensions.x-optional-object} } = { } { {/vendorExtensions.x-optional-object} }{ {^-last} }, { {/-last} }{ {/allParams} }{ {#vendorExtensions.x-client-chunk-upload} }, progressListener?: (event: UploadProgressEvent) => void{ {/vendorExtensions.x-client-chunk-upload} }): Promise<{ {#returnType} }{ {{returnType} }}{ {/returnType} } { {^returnType} }void{ {/returnType} }> {
209+ public async { {nickname} }({ {#allParams} }{ {paramName} }{ {^required} }?{ {/required} }: { {#isFile} }{ {#vendorExtensions.x-client-chunk-upload} }string{ {/vendorExtensions.x-client-chunk-upload} }{ {^vendorExtensions.x-client-chunk-upload} }string | Readable | Buffer{ {/vendorExtensions.x-client-chunk-upload} }{ {/isFile} }{ {^isFile} }{ {{dataType} }}{ {/isFile} }{ {#vendorExtensions.x-optional-object} } = { } { {/vendorExtensions.x-optional-object} }{ {^-last} }, { {/-last} }{ {/allParams} }{ {#vendorExtensions.x-client-chunk-upload} }, progressListener?: (event: UploadProgressEvent) => void, { {/vendorExtensions.x-client-chunk-upload} } { {#vendorExtensions.x-client-copy-from-response } } { {paramName } }?: string, { {/vendorExtensions.x-client-copy-from-response } }): Promise<{ {#returnType} }{ {{returnType} }}{ {/returnType} } { {^returnType} }void{ {/returnType} }> {
208210 {{/vendorExtensions.x-group-parameters} }
209211 const queryParams: QueryOptions = { } ;
210212 queryParams.headers = { } ;
213+ { {#vendorExtensions.x-client-chunk-upload} }
214+ const toRelay: { [key: string]: string | undefined } = {
215+ {{#vendorExtensions.x-client-copy-from-response} }{ {paramName} }, { {/vendorExtensions.x-client-copy-from-response} }
216+ };
217+ { {/vendorExtensions.x-client-chunk-upload} }
211218 { {#allParams} }
212219 { {#required} }
213220 { {^isFile} }
@@ -301,8 +308,20 @@ export default class {{classname}} {
301308
302309 { {#hasFormParams} }
303310 const formData = new FormData();
304- { {/hasFormParams} }
311+
312+ { {/hasFormParams} }{ {#vendorExtensions.x-client-copy-from-response} }
313+ Object.keys(toRelay).forEach((key) => {
314+ if (toRelay[key] !== undefined) {
315+ formData.append(key, toRelay[key]);
316+ }
317+ });
318+ { {/vendorExtensions.x-client-copy-from-response} }
305319 { {#formParams} }
320+ { {#vendorExtensions.x-client-copy-from-response} }
321+ if ({ {paramName} }) {
322+ formData.append(' {{paramName}}' , {{paramName} });
323+ }
324+ { {/vendorExtensions.x-client-copy-from-response} }
306325 { {#isArray} }
307326 if ({ {paramName} }) {
308327 {{#isCollectionFormatMulti} }
@@ -316,7 +335,6 @@ export default class {{classname}} {
316335 }
317336 { {/isArray} }
318337 { {^isArray} }
319-
320338 { {^isFile} }
321339 if (typeof { {paramName} } !== undefined) {
322340 formData.append(' {{baseName}}' , {{paramName} });
@@ -362,7 +380,7 @@ export default class {{classname}} {
362380 ) as { {{returnType} }});
363381 }
364382 let uploadChunkSize = chunkSize;
365- let lastBody;
383+ let lastBody: { {{returnType } }} | undefined = undefined ;
366384 let stream;
367385 let chunkNumber = 0;
368386
@@ -383,6 +401,12 @@ export default class {{classname}} {
383401 stream = createReadStream(file, { start: offset, end: uploadChunkSize + offset - 1} );
384402 chunkFormData.append(filename, stream, filename);
385403
404+ Object.keys(toRelay).forEach((key) => {
405+ if (toRelay[key] !== undefined) {
406+ chunkFormData.append(key, toRelay[key]);
407+ }
408+ });
409+
386410 queryParams.body = chunkFormData;
387411 queryParams.headers['Content-Range'] = `part ${ part} /${ partsCount} `;
388412 part++;
@@ -407,6 +431,12 @@ export default class {{classname}} {
407431 "{ {{returnType} }}", "{ {returnFormat} }"
408432 ) as { {{returnType} }});
409433
434+ Object.keys(toRelay).forEach((key) => {
435+ if ((lastBody as unknown as any)[key] !== undefined) {
436+ toRelay[key] = (lastBody as unknown as any)[key];
437+ }
438+ });
439+
410440 stream.close();
411441 }
412442
0 commit comments