32 lines
1.1 KiB
JavaScript
32 lines
1.1 KiB
JavaScript
/** @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;
|