UNPKG

@shopify/shopify-api

Version:

Shopify API Library for Node - accelerate development with support for authentication, graphql proxy, webhooks

45 lines (43 loc) 1.42 kB
class ProcessedQuery { static stringify(keyValuePairs) { if (!keyValuePairs || Object.keys(keyValuePairs).length === 0) return ''; return new ProcessedQuery().putAll(keyValuePairs).stringify(); } processedQuery; constructor() { this.processedQuery = new URLSearchParams(); } putAll(keyValuePairs) { Object.entries(keyValuePairs).forEach(([key, value]) => this.put(key, value)); return this; } put(key, value) { if (Array.isArray(value)) { this.putArray(key, value); } else if (value?.constructor === Object) { this.putObject(key, value); } else { this.putSimple(key, value); } } putArray(key, value) { value.forEach((arrayValue) => this.processedQuery.append(`${key}[]`, `${arrayValue}`)); } putObject(key, value) { Object.entries(value).forEach(([entry, entryValue]) => { this.processedQuery.append(`${key}[${entry}]`, `${entryValue}`); }); } putSimple(key, value) { this.processedQuery.append(key, `${value}`); } stringify(omitQuestionMark = false) { const queryString = this.processedQuery.toString(); return omitQuestionMark ? queryString : `?${queryString}`; } } export { ProcessedQuery as default }; //# sourceMappingURL=processed-query.mjs.map