pomljs
Version:
Prompt Orchestration Markup Language
42 lines (39 loc) • 1.19 kB
JavaScript
import * as fs from 'fs';
import path__default from 'path';
function readAudio(src, base64) {
if (src) {
return fs.readFileSync(src);
}
if (base64) {
return Buffer.from(base64, 'base64');
}
throw new Error('src or base64 is required');
}
function canonicalizeType(type, src) {
if (type) {
return type.startsWith('audio/') ? type : `audio/${type}`;
}
if (src) {
const ext = path__default.extname(src).toLowerCase();
switch (ext) {
case '.mp3': return 'audio/mpeg';
case '.wav': return 'audio/wav';
case '.ogg': return 'audio/ogg';
case '.flac': return 'audio/flac';
case '.aac': return 'audio/aac';
default: throw new Error('Cannot determine audio format');
}
}
throw new Error('Cannot determine audio format');
}
async function preprocessAudio(args) {
const { src, base64, type } = args;
const buffer = readAudio(src, base64);
const mimeType = canonicalizeType(type, src);
return {
base64: buffer.toString('base64'),
mimeType,
};
}
export { preprocessAudio };
//# sourceMappingURL=audio.js.map