@sauce-api/core
Version:
Sauce API core functionality
43 lines (42 loc) • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isObject = exports.getAppUrl = exports.asyncForEach = exports.formatError = exports.cleanObject = void 0;
const cleanObject = async (obj) => {
(0, exports.asyncForEach)(Object.keys(obj), async (key) => {
if ((0, exports.isObject)(obj[key])) {
await (0, exports.cleanObject)(obj[key]);
}
else {
(obj[key] == null) && delete obj[key];
}
});
};
exports.cleanObject = cleanObject;
const formatError = (status, details) => {
return {
status,
details
};
};
exports.formatError = formatError;
const asyncForEach = async (array, callback) => {
try {
const allPromises = array.map(async (item, index, array) => callback(item, index, array));
return await Promise.all(allPromises);
}
catch (e) {
throw e;
}
};
exports.asyncForEach = asyncForEach;
const getAppUrl = (config) => {
if (config.environments[process.env.ENV]) {
return config.environments[process.env.ENV].url;
}
throw new Error(`Environment ${process.env.ENV} not recognized`);
};
exports.getAppUrl = getAppUrl;
const isObject = (obj) => {
return obj === Object(obj) && !Array.isArray(obj) && typeof obj !== "function";
};
exports.isObject = isObject;