const { getDefaultConfig } = require('expo/metro-config'); const { withNativeWind } = require('nativewind/metro'); const config = getDefaultConfig(__dirname); // --- Web: Required for expo-sqlite --- // expo-sqlite on web uses SQLite compiled to WASM; Metro must treat .wasm as an asset. if (!config.resolver.assetExts.includes('wasm')) { config.resolver.assetExts.push('wasm'); } // --- Web: Required for expo-sqlite --- // SharedArrayBuffer (used by SQLite WASM) requires COEP/COOP headers. // Dev server: set here. Production: set via app.config.js expo-router headers. config.server = config.server ?? {}; const existingEnhanceMiddleware = config.server.enhanceMiddleware; config.server.enhanceMiddleware = (middleware, server) => { const nextMiddleware = existingEnhanceMiddleware ? existingEnhanceMiddleware(middleware, server) : middleware; return (req, res, next) => { res.setHeader('Cross-Origin-Embedder-Policy', 'credentialless'); res.setHeader('Cross-Origin-Opener-Policy', 'same-origin'); return nextMiddleware(req, res, next); }; }; module.exports = withNativeWind(config, { input: './src/global.css', inlineRem: 16, });