@vepler/http-sdk
Version:
The definitive TypeScript SDK for UK property technology. Access comprehensive property data, school metrics, demographics, planning applications, and more through a single, powerful API.
52 lines • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateRequiredParameters = validateRequiredParameters;
exports.filterUndefined = filterUndefined;
exports.processArrayParameter = processArrayParameter;
var errors_1 = require("./errors");
/**
* Validation utilities for parameter checking
*/
/**
* Validates that required parameters are provided
* @param params - Object containing parameters
* @param requiredParams - Array of parameter names that are required
* @throws Error if any required parameter is missing
*/
function validateRequiredParameters(params, requiredParams) {
for (var _i = 0, requiredParams_1 = requiredParams; _i < requiredParams_1.length; _i++) {
var param = requiredParams_1[_i];
if (!params[param]) {
throw new Error((0, errors_1.createRequiredParameterError)(param));
}
}
}
/**
* Filters undefined values from an object, useful for API request bodies
* @param obj - Object to filter
* @returns New object with undefined values removed
*/
function filterUndefined(obj) {
var result = {};
for (var _i = 0, _a = Object.entries(obj); _i < _a.length; _i++) {
var _b = _a[_i], key = _b[0], value = _b[1];
if (value !== undefined && value !== null) {
result[key] = value;
}
}
return result;
}
/**
* Processes array parameters for API requests (e.g., joins arrays to strings)
* @param value - The value to process
* @param separator - Separator to use for joining arrays (default: ',')
* @returns Processed value
*/
function processArrayParameter(value, separator) {
if (separator === void 0) { separator = ','; }
if (Array.isArray(value)) {
return value.join(separator);
}
return value;
}
//# sourceMappingURL=validation.js.map