mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-02 17:31:39 +00:00
91 lines
2.6 KiB
JavaScript
91 lines
2.6 KiB
JavaScript
/** @type {import('next').NextConfig} */
|
|
const nextConfig = {
|
|
// OpenNext handles the runtime configuration
|
|
// Removed experimental.runtime and output configuration
|
|
|
|
transpilePackages: ['@sonr.io/ui', '@sonr.io/shared', '@sonr.io/es', '@sonr.io/sdk'],
|
|
|
|
// API proxy configuration for development
|
|
async rewrites() {
|
|
// Only apply in development
|
|
if (process.env.NODE_ENV !== 'production') {
|
|
return [
|
|
{
|
|
source: '/api/chain/:path*',
|
|
destination: `${process.env.NEXT_PUBLIC_CHAIN_ENDPOINT || 'http://localhost:26657'}/:path*`,
|
|
},
|
|
{
|
|
source: '/api/rpc/:path*',
|
|
destination: `${process.env.NEXT_PUBLIC_RPC_ENDPOINT || 'http://localhost:1317'}/:path*`,
|
|
},
|
|
{
|
|
source: '/api/grpc/:path*',
|
|
destination: `${process.env.NEXT_PUBLIC_GRPC_ENDPOINT || 'http://localhost:9090'}/:path*`,
|
|
},
|
|
];
|
|
}
|
|
return [];
|
|
},
|
|
|
|
// CORS headers for API routes
|
|
async headers() {
|
|
return [
|
|
{
|
|
source: '/api/:path*',
|
|
headers: [
|
|
{ key: 'Access-Control-Allow-Credentials', value: 'true' },
|
|
{ key: 'Access-Control-Allow-Origin', value: '*' },
|
|
{ key: 'Access-Control-Allow-Methods', value: 'GET,DELETE,PATCH,POST,PUT' },
|
|
{
|
|
key: 'Access-Control-Allow-Headers',
|
|
value:
|
|
'X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version',
|
|
},
|
|
],
|
|
},
|
|
];
|
|
},
|
|
|
|
// Environment variables passed to the client
|
|
env: {
|
|
NEXT_PUBLIC_CHAIN_ID: process.env.NEXT_PUBLIC_CHAIN_ID || 'sonrtest_1-1',
|
|
NEXT_PUBLIC_AUTH_URL: process.env.NEXT_PUBLIC_AUTH_URL || 'http://localhost:3001',
|
|
NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3000',
|
|
},
|
|
|
|
// Webpack configuration
|
|
webpack: (config) => {
|
|
// Handle WebAssembly modules
|
|
config.experiments = {
|
|
...config.experiments,
|
|
asyncWebAssembly: true,
|
|
layers: true,
|
|
};
|
|
|
|
// Ignore optional dependencies warnings
|
|
config.resolve.fallback = {
|
|
...config.resolve.fallback,
|
|
fs: false,
|
|
net: false,
|
|
tls: false,
|
|
crypto: false,
|
|
};
|
|
|
|
return config;
|
|
},
|
|
|
|
// TypeScript and ESLint configuration
|
|
typescript: {
|
|
// Allow production builds to succeed even if there are type errors
|
|
ignoreBuildErrors: process.env.NODE_ENV === 'production',
|
|
},
|
|
|
|
eslint: {
|
|
// Warning: This allows production builds to successfully complete even if
|
|
// your project has ESLint errors.
|
|
ignoreDuringBuilds: process.env.NODE_ENV === 'production',
|
|
},
|
|
};
|
|
|
|
module.exports = nextConfig;
|