z-web-audio-stream-cli
Version:
CLI tool for deploying Web Audio Stream worklet files with instant playback support
54 lines • 1.79 kB
JavaScript
// CLI library exports for programmatic usage
/**
* Deploy audio worklet processor to a directory
*/
export async function deployWorklet(options = {}) {
const { exec } = await import('child_process');
const { promisify } = await import('util');
const execAsync = promisify(exec);
const dest = options.dest || 'public';
const filename = options.filename || 'audio-worklet-processor.js';
const cmd = `npx web-audio-stream-cli deploy --dest "${dest}" --filename "${filename}"`;
try {
await execAsync(cmd);
}
catch (error) {
throw new Error(`Failed to deploy worklet: ${error}`);
}
}
/**
* Check project setup for Web Audio Stream
*/
export async function checkSetup(options = {}) {
const { existsSync } = await import('fs');
const { resolve } = await import('path');
const dest = options.dest || 'public';
const filename = options.filename || 'audio-worklet-processor.js';
const checks = [
{
name: 'web-audio-stream package installed',
check: () => existsSync(resolve(process.cwd(), 'node_modules/web-audio-stream')),
fix: 'Run: npm install web-audio-stream'
},
{
name: 'Public directory exists',
check: () => existsSync(resolve(process.cwd(), dest)),
fix: `Create directory: mkdir ${dest}`
},
{
name: 'Audio worklet file deployed',
check: () => existsSync(resolve(process.cwd(), dest, filename)),
fix: 'Run: web-audio-stream-cli deploy'
}
];
return checks.map(check => ({
passed: check.check(),
message: check.name,
fix: check.fix
}));
}
export default {
deployWorklet,
checkSetup
};
//# sourceMappingURL=index.js.map