UNPKG

@wordpress/api-fetch

Version:
46 lines (44 loc) 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _url = require("@wordpress/url"); /** * WordPress dependencies */ /** * This appends a `wp_theme_preview` parameter to the REST API request URL if * the admin URL contains a `theme` GET parameter. * * If the REST API request URL has contained the `wp_theme_preview` parameter as `''`, * then bypass this middleware. * * @param {Record<string, any>} themePath * @return {import('../types').APIFetchMiddleware} Preloading middleware. */ const createThemePreviewMiddleware = themePath => (options, next) => { if (typeof options.url === 'string') { const wpThemePreview = (0, _url.getQueryArg)(options.url, 'wp_theme_preview'); if (wpThemePreview === undefined) { options.url = (0, _url.addQueryArgs)(options.url, { wp_theme_preview: themePath }); } else if (wpThemePreview === '') { options.url = (0, _url.removeQueryArgs)(options.url, 'wp_theme_preview'); } } if (typeof options.path === 'string') { const wpThemePreview = (0, _url.getQueryArg)(options.path, 'wp_theme_preview'); if (wpThemePreview === undefined) { options.path = (0, _url.addQueryArgs)(options.path, { wp_theme_preview: themePath }); } else if (wpThemePreview === '') { options.path = (0, _url.removeQueryArgs)(options.path, 'wp_theme_preview'); } } return next(options); }; var _default = exports.default = createThemePreviewMiddleware; //# sourceMappingURL=theme-preview.js.map