PluginProbe
Gutenberg / 24.1.0
Gutenberg v24.1.0
24.1.0 24.0.0 23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 All 404 releases
← All changes | build/scripts/api-fetch/index.js +24 -6 23.9.0 → 24.1.0 View file →
@@ -348,11 +348,18 @@
348 348 var import_i18n2 = __toESM(require_i18n(), 1);
349 349
350 350 // packages/api-fetch/build-module/utils/response.mjs
351 351 var import_i18n = __toESM(require_i18n(), 1);
352 - async function parseJsonAndNormalizeError(response) {
352 + async function parseJsonAndNormalizeError(response, allowEmptyBody = false) {
353 353 try {
354 - return await response.json();
354 + if (typeof response.text !== "function") {
355 + return await response.json();
356 + }
357 + const text = await response.text();
358 + if (allowEmptyBody && text === "") {
359 + return null;
360 + }
361 + return JSON.parse(text);
355 362 } catch {
356 363 throw {
357 364 code: "invalid_json",
358 365 message: (0, import_i18n.__)("The response is not a valid JSON response.")
@@ -365,9 +372,9 @@
365 372 }
366 373 if (response.status === 204) {
367 374 return null;
368 375 }
369 - return await parseJsonAndNormalizeError(response);
376 + return await parseJsonAndNormalizeError(response, true);
370 377 }
371 378 async function parseAndThrowError(response, shouldParseResponse = true) {
372 379 if (!shouldParseResponse) {
373 380 throw response;
@@ -490,8 +497,16 @@
490 497 ];
491 498 function registerMiddleware(middleware) {
492 499 middlewares.unshift(middleware);
493 500 }
501 + function unregisterMiddleware(middleware) {
502 + const index = middlewares.indexOf(middleware);
503 + if (index === -1) {
504 + return false;
505 + }
506 + middlewares.splice(index, 1);
507 + return true;
508 + }
494 509 function enablePreloadMultiUse() {
495 510 for (const middleware of middlewares) {
496 511 middleware[ENABLE_MULTI_USE]?.();
497 512 }
@@ -500,11 +515,11 @@
500 515 for (const middleware of middlewares) {
501 516 middleware[CLEAR]?.();
502 517 }
503 518 }
504 - var defaultFetchHandler = (nextOptions) => {
505 - const { url, path, data, parse = true, ...remainingOptions } = nextOptions;
506 - let { body, headers } = nextOptions;
519 + var defaultFetchHandler = (options) => {
520 + const { url, path, data, parse = true, ...remainingOptions } = options;
521 + let { body, headers } = options;
507 522 headers = { ...DEFAULT_HEADERS, ...headers };
508 523 if (data) {
509 524 body = JSON.stringify(data);
510 525 headers["Content-Type"] = "application/json";
@@ -573,9 +588,11 @@
573 588 });
574 589 });
575 590 };
576 591 apiFetch.use = registerMiddleware;
592 + apiFetch.unregister = unregisterMiddleware;
577 593 apiFetch.setFetchHandler = setFetchHandler;
594 + apiFetch.defaultFetchHandler = defaultFetchHandler;
578 595 apiFetch.privateApis = {};
579 596 lock(apiFetch.privateApis, {
580 597 enablePreloadMultiUse,
581 598 clearPreloadedData
@@ -583,8 +600,9 @@
583 600 apiFetch.createNonceMiddleware = nonce_default;
584 601 apiFetch.createPreloadingMiddleware = preloading_default;
585 602 apiFetch.createRootURLMiddleware = root_url_default;
586 603 apiFetch.fetchAllMiddleware = fetch_all_middleware_default;
604 + apiFetch.httpV1Middleware = http_v1_default;
587 605 apiFetch.mediaUploadMiddleware = media_upload_default;
588 606 apiFetch.createThemePreviewMiddleware = theme_preview_default;
589 607 var index_default = apiFetch;
590 608 return __toCommonJS(index_exports);