/** @type {import('expo/metro-config').MetroConfig} */ const { getDefaultConfig } = require('expo/metro-config'); const path = require('path'); const config = getDefaultConfig(__dirname); // Add wasm asset support config.resolver.assetExts.push('wasm'); // Fix for react-native-webrtc event-target-shim import warning // The package doesn't properly export "./index" in its exports field config.resolver.unstable_enablePackageExports = false; // Support TypeScript path aliases (@/ -> ./src/) config.resolver.alias = { '@': path.resolve(__dirname, 'src'), }; // NOTE: enhanceMiddleware is marked as deprecated in Metro's types, // but there's currently no official alternative for custom dev server headers. // For production, configure COEP/COOP headers on your hosting platform. // These headers are required for SharedArrayBuffer (used by expo-sqlite on web). config.server.enhanceMiddleware = (middleware) => { return (req, res, next) => { res.setHeader('Cross-Origin-Embedder-Policy', 'credentialless'); res.setHeader('Cross-Origin-Opener-Policy', 'same-origin'); middleware(req, res, next); }; }; module.exports = config;