@regacy-innovation/shared-services
Version:
Shared services for NestJS microservices
64 lines (63 loc) • 2.61 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.flattenObject = void 0;
exports.delay = delay;
exports.formatObjectEntries = formatObjectEntries;
function delay(ms) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve) => setTimeout(resolve, ms));
});
}
function formatObjectEntries(obj, indent = 0) {
const indentation = ' '.repeat(indent);
return Object.entries(obj)
.map(([key, value]) => {
if (typeof value === 'object' && value !== null) {
if (Array.isArray(value)) {
return `${indentation}${key} - [${value
.map((item) => typeof item === 'object' ? JSON.stringify(item) : item)
.join(', ')}]`;
}
else {
return `${indentation}${key} - {\n${formatObjectEntries(value, indent + 2)}\n${indentation}}`;
}
}
else {
return `${indentation}${key} - ${value}`;
}
})
.join('\n');
}
const flattenObject = (obj, prefix = '') => {
return Object.keys(obj).reduce((acc, key) => {
const value = obj[key];
const prefixedKey = prefix ? `${prefix}.${key}` : key;
if (Array.isArray(value)) {
value.forEach((item, index) => {
if (typeof item === 'object' && item !== null) {
Object.assign(acc, (0, exports.flattenObject)(item, `${prefixedKey}[${index}]`));
}
else {
acc[`${prefixedKey}[${index}]`] = item;
}
});
}
else if (typeof value === 'object' && value !== null) {
Object.assign(acc, (0, exports.flattenObject)(value, prefixedKey));
}
else {
acc[prefixedKey] = value;
}
return acc;
}, {});
};
exports.flattenObject = flattenObject;