Skip to content

Commit 5fcaa3c

Browse files
committed
review feedback cleanup
1 parent 9cb4037 commit 5fcaa3c

File tree

2 files changed

+11
-14
lines changed

2 files changed

+11
-14
lines changed

src/wrapper/AssetsUtilitiesClient.ts

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -74,37 +74,38 @@ export class Client extends Assets {
7474
): Promise<Webflow.AssetUpload> {
7575
/** 1. Generate the hash */
7676
const {file, fileName, parentFolder} = request;
77-
let tempBuffer: Buffer | null = null;
77+
let tempBuffer: Buffer | undefined;
7878
if (typeof file === 'string') {
7979
const arrBuffer = await this._getBufferFromUrl(file);
8080
tempBuffer = Buffer.from(arrBuffer);
8181
} else if (file instanceof ArrayBuffer) {
8282
tempBuffer = Buffer.from(file);
8383
}
84-
if (tempBuffer === null) {
85-
throw new Error('Invalid file');
84+
if (!Buffer.isBuffer(tempBuffer)) {
85+
throw new Error('Invalid Buffer: Cannot create a buffer from the provided file');
8686
}
87-
const hash = crypto.createHash("md5").update(Buffer.from(tempBuffer)).digest("hex");
87+
const hash = crypto.createHash("md5").update(tempBuffer).digest("hex");
8888

8989
const wfUploadRequest = {
9090
fileName,
9191
fileHash: hash,
92+
...(parentFolder && { parentFolder }),
9293
} as Webflow.AssetsCreateRequest;
93-
if (parentFolder) {
94-
wfUploadRequest["parentFolder"] = parentFolder;
95-
}
9694

9795

9896
/** 2. Create the Asset Metadata in Webflow */
9997
let wfUploadedAsset: Webflow.AssetUpload;
10098
try {
10199
wfUploadedAsset = await this.create(siteId, wfUploadRequest, requestOptions);
100+
if (!wfUploadedAsset || !wfUploadedAsset.uploadDetails) {
101+
throw new Error("Failed to create Asset metadata in Webflow, no S3 headers returned");
102+
}
102103
} catch (error) {
103104
throw new Error(`Failed to create Asset metadata in Webflow: ${(error as Error).message}`);
104105
}
105106

106107
/** 3. Create FormData with S3 bucket signature */
107-
const wfUploadDetails = wfUploadedAsset.uploadDetails!;
108+
const wfUploadDetails = wfUploadedAsset.uploadDetails;
108109
const uploadUrl = wfUploadedAsset.uploadUrl as string;
109110
// Temp workaround since headers from response are being camelCased and we need them to be exact when sending to S3
110111
const headerMappings = {
@@ -126,10 +127,6 @@ export class Client extends Assets {
126127
formDataToUpload.append(key, transformedUploadHeaders[key]);
127128
});
128129

129-
if (!Buffer.isBuffer(tempBuffer)) {
130-
throw new Error("Invalid Buffer: Expected a Buffer instance from file");
131-
}
132-
133130
formDataToUpload.append("file", tempBuffer, {
134131
filename: fileName,
135132
contentType: wfUploadedAsset.contentType || "application/octet-stream",

tests/wrapper/AssetsUtilitiesClient.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ describe("AssetsUtilitiesClient", () => {
4949
});
5050

5151
it("should throw an error if it fails to create Webflow Asset metadata", async () => {
52-
// Mock the Webflow API to throw an error
52+
// Mock the Webflow API to throw an error
5353
jest.spyOn(client, "create").mockRejectedValue(new Error("Webflow API error"));
5454

5555
await expect(client.createAndUpload(siteId, {
@@ -65,7 +65,7 @@ describe("AssetsUtilitiesClient", () => {
6565
});
6666

6767
it("should throw an error if it fails to upload to S3", async () => {
68-
// Mock the Webflow API response for creating asset metadata
68+
// Mock the Webflow API response for creating asset metadata
6969
const mockCreateResponse = {
7070
uploadUrl: mockUploadUrl,
7171
uploadDetails: {

0 commit comments

Comments
 (0)