UNPKG

@wordpress/core-data

Version:
50 lines (49 loc) 1.44 kB
// packages/core-data/src/queried-data/get-query-parts.js import { addQueryArgs } from "@wordpress/url"; import { withWeakMapCache, getNormalizedCommaSeparable } from "../utils"; function getQueryParts(query) { const parts = { stableKey: "", page: 1, perPage: 10, fields: null, include: null, context: "default" }; const keys = Object.keys(query).sort(); for (let i = 0; i < keys.length; i++) { const key = keys[i]; let value = query[key]; switch (key) { case "page": parts[key] = Number(value); break; case "per_page": parts.perPage = Number(value); break; case "context": parts.context = value; break; default: if (key === "_fields") { parts.fields = getNormalizedCommaSeparable(value) ?? []; value = parts.fields.join(); } if (key === "include") { if (typeof value === "number") { value = value.toString(); } parts.include = (getNormalizedCommaSeparable(value) ?? []).map(Number); value = parts.include.join(); } parts.stableKey += (parts.stableKey ? "&" : "") + addQueryArgs("", { [key]: value }).slice(1); } } return parts; } var get_query_parts_default = withWeakMapCache(getQueryParts); export { get_query_parts_default as default, getQueryParts }; //# sourceMappingURL=get-query-parts.js.map