sfcc-dev-mcp
Version:
MCP server for Salesforce B2C Commerce Cloud development assistance including logs, debugging, and development tools
77 lines • 2.07 kB
JavaScript
/**
* Query Builder Utility
*
* This module provides utilities for building query strings and handling URL parameters
* for SFCC API requests with proper encoding and array handling.
*/
/**
* Query parameter builder for SFCC APIs
*/
export class QueryBuilder {
params;
constructor() {
this.params = new URLSearchParams();
}
/**
* Add a parameter to the query string
*/
add(key, value) {
if (value !== undefined && value !== null) {
this.params.append(key, value.toString());
}
return this;
}
/**
* Add an array parameter with proper handling for different parameter types
*/
addArray(key, values) {
if (!Array.isArray(values) || values.length === 0) {
return this;
}
if (key === 'refine') {
// Special handling for OCAPI refine parameters (multiple entries)
values.forEach(value => this.params.append(key, value.toString()));
}
else {
// Join arrays with comma for most parameters
this.params.append(key, values.join(','));
}
return this;
}
/**
* Add multiple parameters from an object
*/
addFromObject(params) {
Object.entries(params).forEach(([key, value]) => {
if (value !== undefined && value !== null) {
if (Array.isArray(value)) {
this.addArray(key, value);
}
else {
this.add(key, value);
}
}
});
return this;
}
/**
* Build the final query string
*/
build() {
return this.params.toString();
}
/**
* Reset the builder
*/
reset() {
this.params = new URLSearchParams();
return this;
}
/**
* Static method to build query string from object
*/
static fromObject(params) {
return new QueryBuilder().addFromObject(params).build();
}
}
//# sourceMappingURL=query-builder.js.map