UNPKG

sfcc-dev-mcp

Version:

MCP server for Salesforce B2C Commerce Cloud development assistance including logs, debugging, and development tools

77 lines 2.07 kB
/** * 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