UNPKG

@commercelayer/sdk

Version:
63 lines (60 loc) 2.76 kB
'use strict'; var chunkIKHD5UQP_cjs = require('./chunk-IKHD5UQP.cjs'); var chunkJVF5KY2J_cjs = require('./chunk-JVF5KY2J.cjs'); // src/query.ts var debug = chunkJVF5KY2J_cjs.debug_default("query"); var arrayFilters = ["_any", "_all", "_in", "_not_in_or_null"]; var isArrayFilter = (filter) => { return arrayFilters.some((f) => filter.endsWith(f)); }; var objectFilters = ["_jcont"]; var isObjectFilter = (filter) => { return objectFilters.some((f) => filter.endsWith(f)); }; var isParamsList = (params) => { return params && (params.filters || params.pageNumber || params.pageSize || params.sort); }; var generateQueryStringParams = (params, res) => { debug("generate query string params: %O, %O", params, res); const qp = {}; if (!params) return qp; if (params.include) qp.include = params.include.join(","); if (params.fields) { if (Array.isArray(params.fields)) params.fields = { [res.type || res]: params.fields }; Object.entries(params.fields).forEach(([p, v]) => { qp[`fields[${p}]`] = v.join(","); }); } if (isParamsList(params)) { if (params.sort) { if (Array.isArray(params.sort)) qp.sort = params.sort.join(","); else qp.sort = Object.entries(params.sort).map(([k, v]) => `${v === "desc" ? "-" : ""}${k}`).join(","); } if (params.pageNumber) qp["page[number]"] = String(params.pageNumber); if (params.pageSize) qp["page[size]"] = String(params.pageSize); if (params.filters) { Object.entries(params.filters).forEach(([p, v]) => { let val; if (Array.isArray(v)) { if (!isArrayFilter(p)) throw new chunkIKHD5UQP_cjs.SdkError({ message: `Incorrect filter [${p}]: Array value is supported only for the following filters: ${arrayFilters.join(", ")}`, type: "request" /* REQUEST */ }); val = v.join(","); } else if (typeof v === "object") { if (!isObjectFilter(p)) throw new chunkIKHD5UQP_cjs.SdkError({ message: `Incorrect filter [${p}]: Object value is supported only for the following filters: ${objectFilters.join(", ")}`, type: "request" /* REQUEST */ }); val = JSON.stringify(v); } else val = String(v); qp[`filter[q][${p}]`] = val; }); } } debug("query string params: %O", qp); return qp; }; var generateSearchString = (params, questionMark = true) => { if (!params || Object.keys(params).length === 0) return ""; return `${questionMark ? "?" : ""}${Object.entries(params).map(([key, val]) => `${key}=${String(val)}`).join("&")}`; }; exports.generateQueryStringParams = generateQueryStringParams; exports.generateSearchString = generateSearchString; exports.isParamsList = isParamsList; //# sourceMappingURL=chunk-YY5ENJSH.cjs.map //# sourceMappingURL=chunk-YY5ENJSH.cjs.map