node-diarization
Version:
Transcription and diarization using Whisper and Pyannote with NodeJS
38 lines (37 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseShellResult = exports.mergeOptions = void 0;
// merge default options with provided
const mergeOptions = (...options) => {
const isObject = (obj) => obj && typeof obj === 'object';
return options.reduce((prev, obj) => {
Object.keys(obj).forEach(key => {
const pVal = prev[key];
const oVal = obj[key];
if (isObject(pVal) && isObject(oVal)) {
prev[key] = (0, exports.mergeOptions)(pVal, oVal);
}
else {
prev[key] = oVal;
}
});
return prev;
}, {});
};
exports.mergeOptions = mergeOptions;
// convert shell results to parsed shell results
const parseShellResult = (shellResult) => {
const shellParsedResult = {
errors: [],
};
try {
shellParsedResult.data = JSON.parse(shellResult.data);
}
catch (e) {
shellResult.errors += `${shellResult.data}\n`;
shellParsedResult.data = null;
}
shellParsedResult.errors = shellResult.errors.split('\n').filter(e => e);
return shellParsedResult;
};
exports.parseShellResult = parseShellResult;