@paddle/paddle-node-sdk
Version:
A Node.js SDK that you can use to integrate Paddle Billing with applications written in server-side JavaScript.
29 lines (28 loc) • 998 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryParameters = void 0;
function convertCamelCaseToSnakeCase(input) {
return input.replace(/\b(\w+)([A-Z][a-z])/g, (_match, p1, p2) => {
return p1.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase() + '_' + p2.toLowerCase();
});
}
function isValidValue(value) {
return value !== undefined && value !== null && value !== '';
}
class QueryParameters {
queryParameters;
constructor(queryParameters) {
this.queryParameters = queryParameters;
}
toQueryString() {
const urlSearchParam = new URLSearchParams();
for (const key in this.queryParameters) {
const value = this.queryParameters[key];
if (key && isValidValue(value)) {
urlSearchParam.append(convertCamelCaseToSnakeCase(key), `${value}`);
}
}
return '?' + urlSearchParam.toString();
}
}
exports.QueryParameters = QueryParameters;