glitch-javascript-sdk 1.4.4 → 1.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "glitch-javascript-sdk",
3
- "version": "1.4.4",
3
+ "version": "1.4.6",
4
4
  "description": "Javascript SDK for Glitch",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -150,35 +150,34 @@ class Requests {
150
150
  .join('&');
151
151
  url = `${url}?${queryString}`;
152
152
  }
153
-
153
+
154
154
  // Prepare FormData
155
155
  const formData = new FormData();
156
156
  formData.append(filename, file);
157
-
157
+
158
158
  if (Requests.community_id) {
159
159
  data = {
160
160
  ...data,
161
161
  communities: [Requests.community_id],
162
162
  };
163
163
  }
164
-
164
+
165
165
  for (let key in data) {
166
166
  formData.append(key, data[key]);
167
167
  }
168
-
168
+
169
169
  // Prepare headers
170
170
  let headers: { [key: string]: string } = {
171
171
  'Content-Type': 'multipart/form-data',
172
172
  };
173
-
173
+
174
174
  if (Requests.authToken) {
175
175
  headers['Authorization'] = `Bearer ${Requests.authToken}`;
176
176
  }
177
-
178
- // Format URL
179
- url = url.replace(/\/\//g, '/');
180
- const uri = `${Requests.baseUrl}${url}`.replace(/\/\//g, '/');
181
-
177
+
178
+ // Construct the full URL properly
179
+ const uri = new URL(url, Requests.baseUrl).href;
180
+
182
181
  // Make the request
183
182
  return axios({
184
183
  method: 'POST',
@@ -188,7 +187,7 @@ class Requests {
188
187
  onUploadProgress,
189
188
  });
190
189
  }
191
-
190
+
192
191
  public static uploadBlob<T>(
193
192
  url: string,
194
193
  filename: string,
@@ -197,6 +196,11 @@ class Requests {
197
196
  params?: Record<string, any>,
198
197
  onUploadProgress?: (progressEvent: AxiosProgressEvent) => void
199
198
  ): AxiosPromise<Response<T>> {
199
+
200
+ if (!url.startsWith('/api')) {
201
+ url = `/api${url}`;
202
+ }
203
+
200
204
  // Process URL and params
201
205
  if (params && Object.keys(params).length > 0) {
202
206
  const queryString = Object.entries(params)
@@ -204,35 +208,34 @@ class Requests {
204
208
  .join('&');
205
209
  url = `${url}?${queryString}`;
206
210
  }
207
-
211
+
208
212
  // Prepare FormData
209
213
  const formData = new FormData();
210
214
  formData.append(filename, blob);
211
-
215
+
212
216
  if (Requests.community_id) {
213
217
  data = {
214
218
  ...data,
215
219
  communities: [Requests.community_id],
216
220
  };
217
221
  }
218
-
222
+
219
223
  for (let key in data) {
220
224
  formData.append(key, data[key]);
221
225
  }
222
-
226
+
223
227
  // Prepare headers
224
228
  let headers: { [key: string]: string } = {
225
229
  'Content-Type': 'multipart/form-data',
226
230
  };
227
-
231
+
228
232
  if (Requests.authToken) {
229
233
  headers['Authorization'] = `Bearer ${Requests.authToken}`;
230
234
  }
231
-
232
- // Format URL
233
- url = url.replace(/\/\//g, '/');
234
- const uri = `${url}`.replace(/\/\//g, '/');
235
-
235
+
236
+ // Construct the full URL properly
237
+ const uri = new URL(url, Requests.baseUrl).href;
238
+
236
239
  // Make the request
237
240
  return axios({
238
241
  method: 'POST',
@@ -242,7 +245,7 @@ class Requests {
242
245
  onUploadProgress,
243
246
  });
244
247
  }
245
-
248
+
246
249
 
247
250
  // Method adapted for browser environments
248
251
 
@@ -254,6 +257,10 @@ class Requests {
254
257
  chunkSize?: number, // Default chunk size of 1MB
255
258
  ): Promise<void> {
256
259
 
260
+ if (!uploadUrl.startsWith('/api')) {
261
+ uploadUrl = `/api${uploadUrl}`;
262
+ }
263
+
257
264
  if (!chunkSize) {
258
265
  chunkSize = 1024 * 1024
259
266
  }
@@ -286,7 +293,7 @@ class Requests {
286
293
  }
287
294
 
288
295
  // Construct the full URL if necessary or use a method to determine the base URL
289
- const fullUploadUrl = `${uploadUrl}`;
296
+ const fullUploadUrl = `${Requests.baseUrl}${uploadUrl}`;
290
297
 
291
298
  // Make sure the authorization token is included if required
292
299
  const headers: { [key: string]: string } = {};