| @@ -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); |