@commercelayer/sdk
Version:
Commerce Layer Javascript SDK
63 lines (60 loc) • 2.76 kB
JavaScript
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
;