Skip to content

Commit

Permalink
fix: send Content-Length when uploading add-on and source files
Browse files Browse the repository at this point in the history
required by `axios@1.3.0`
  • Loading branch information
iorate committed Feb 1, 2023
1 parent 9503af3 commit 30c2d32
Showing 1 changed file with 14 additions and 14 deletions.
28 changes: 14 additions & 14 deletions src/update-addon.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import fs from 'node:fs';
import { createReadStream } from 'node:fs';
import fs from 'node:fs/promises';
import util from 'node:util';
import axios, { AxiosResponse } from 'axios';
import FormData from 'form-data';
Expand Down Expand Up @@ -47,10 +48,7 @@ export async function updateAddon({
const apiParams = { apiKey, apiSecret, baseURL };

logger.log('Uploading the add-on...');
const { uuid: uploadId } = await createUpload(apiParams, {
upload: fs.createReadStream(addonZipPath),
channel,
});
const { uuid: uploadId } = await createUpload(apiParams, { uploadPath: addonZipPath, channel });

logger.log('Waiting for validation...');
await waitForValidation(apiParams, uploadId);
Expand All @@ -65,9 +63,7 @@ export async function updateAddon({

if (sourceZipPath != null) {
logger.log('Uploading the source code...');
await patchVersion(apiParams, addonId, versionId, {
source: fs.createReadStream(sourceZipPath),
});
await patchVersion(apiParams, addonId, versionId, { sourcePath: sourceZipPath });
}
}

Expand Down Expand Up @@ -136,12 +132,14 @@ const uploadSchema = z.object({

type Upload = z.infer<typeof uploadSchema>;

function createUpload(
async function createUpload(
apiParams: Readonly<APIParams>,
{ upload, channel }: Readonly<{ upload: fs.ReadStream; channel: Channel }>,
{ uploadPath, channel }: Readonly<{ uploadPath: string; channel: Channel }>,
): Promise<Upload> {
const formData = new FormData();
formData.append('upload', upload);
formData.append('upload', createReadStream(uploadPath), {
knownLength: (await fs.stat(uploadPath)).size,
});
formData.append('channel', channel);
return apiFetch(apiParams, 'POST', 'upload/', formData, uploadSchema);
}
Expand All @@ -167,14 +165,16 @@ function createVersion(
return apiFetch(apiParams, 'POST', `addon/${addonId}/versions/`, body, versionSchema);
}

function patchVersion(
async function patchVersion(
apiParams: Readonly<APIParams>,
addonId: string,
id: number,
{ source }: Readonly<{ source: fs.ReadStream }>,
{ sourcePath }: Readonly<{ sourcePath: string }>,
): Promise<Version> {
const formData = new FormData();
formData.append('source', source);
formData.append('source', createReadStream(sourcePath), {
knownLength: (await fs.stat(sourcePath)).size,
});
return apiFetch(apiParams, 'PATCH', `addon/${addonId}/versions/${id}/`, formData, versionSchema);
}

Expand Down

0 comments on commit 30c2d32

Please sign in to comment.