UNPKG

@puzzlearena/audio

Version:

Lightweight native sound module for React Native

52 lines (51 loc) 2.23 kB
#!/usr/bin/env node "use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const readline_1 = __importDefault(require("readline")); const SUPPORTED_EXTENSIONS = [".mp3", ".wav", ".ogg"]; const rl = readline_1.default.createInterface({ input: process.stdin, output: process.stdout, }); function askQuestion(query) { return new Promise((resolve) => rl.question(query, resolve)); } async function run() { const projectRoot = process.cwd(); const defaultAudioPath = path_1.default.join(projectRoot, "src/assets/sounds"); const androidDest = path_1.default.join(projectRoot, "android/app/src/main/res/raw"); console.log(`\nProject root detected: ${projectRoot}\n`); const audioSrc = await askQuestion(`Enter audio source path [default: ${defaultAudioPath}]: `); const resolvedAudioSrc = audioSrc.trim() || defaultAudioPath; if (!fs_1.default.existsSync(resolvedAudioSrc)) { console.error(`❌ Source folder not found: ${resolvedAudioSrc}`); process.exit(1); } if (!fs_1.default.existsSync(androidDest)) { fs_1.default.mkdirSync(androidDest, { recursive: true }); } const files = fs_1.default .readdirSync(resolvedAudioSrc) .filter((f) => SUPPORTED_EXTENSIONS.some((ext) => f.toLowerCase().endsWith(ext))); if (files.length === 0) { console.warn(`⚠️ No audio files (.mp3, .wav, .ogg) found in source directory.`); } files.forEach((file) => { const src = path_1.default.join(resolvedAudioSrc, file); const dest = path_1.default.join(androidDest, file.toLowerCase()); fs_1.default.copyFileSync(src, dest); console.log(`✅ Copied: ${file}`); }); console.log("🎵 Audio files synced with Android (res/raw)."); console.log("For iOS, add these files to Xcode -> Build Phases -> Copy Bundle Resources."); rl.close(); } run().catch((err) => { console.error("❌ Error copying audio files:", err); rl.close(); });