UNPKG

pomljs

Version:

Prompt Orchestration Markup Language

42 lines (39 loc) 1.19 kB
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