@wordpress/api-fetch
Version:
Utility to make WordPress REST API requests.
46 lines (44 loc) • 1.56 kB
JavaScript
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
;