2021-07-20 18:25:36 +00:00
/* eslint-disable @typescript-eslint/no-var-requires */
2021-07-20 18:24:05 +00:00
const withTM = require ( "next-transpile-modules" ) ( [ "react-timezone-select" ] ) ;
2021-04-26 12:01:21 +00:00
2021-06-07 16:38:46 +00:00
// TODO: Revisit this later with getStaticProps in App
if ( process . env . NEXTAUTH _URL ) {
2021-07-20 18:18:26 +00:00
process . env . BASE _URL = process . env . NEXTAUTH _URL . replace ( "/api/auth" , "" ) ;
2021-06-07 16:38:46 +00:00
}
2021-07-20 18:18:26 +00:00
if ( ! process . env . EMAIL _FROM ) {
console . warn (
"\x1b[33mwarn" ,
"\x1b[0m" ,
"EMAIL_FROM environment variable is not set, this may indicate mailing is currently disabled. Please refer to the .env.example file."
) ;
2021-05-27 22:10:20 +00:00
}
2021-06-08 15:24:06 +00:00
if ( process . env . BASE _URL ) {
2021-07-20 18:18:26 +00:00
process . env . NEXTAUTH _URL = process . env . BASE _URL + "/api/auth" ;
2021-06-08 15:24:06 +00:00
}
2021-05-27 22:10:20 +00:00
2021-05-04 20:31:15 +00:00
const validJson = ( jsonString ) => {
2021-07-20 18:18:26 +00:00
try {
const o = JSON . parse ( jsonString ) ;
if ( o && typeof o === "object" ) {
return o ;
2021-05-04 20:31:15 +00:00
}
2021-07-20 18:18:26 +00:00
} catch ( e ) {
console . error ( e ) ;
}
return false ;
} ;
2021-05-04 20:31:15 +00:00
2021-07-20 18:18:26 +00:00
if ( process . env . GOOGLE _API _CREDENTIALS && ! validJson ( process . env . GOOGLE _API _CREDENTIALS ) ) {
console . warn (
"\x1b[33mwarn" ,
"\x1b[0m" ,
'- Disabled \'Google Calendar\' integration. Reason: Invalid value for GOOGLE_API_CREDENTIALS environment variable. When set, this value needs to contain valid JSON like {"web":{"client_id":"<clid>","client_secret":"<secret>","redirect_uris":["<yourhost>/api/integrations/googlecalendar/callback>"]}. You can download this JSON from your OAuth Client @ https://console.cloud.google.com/apis/credentials.'
) ;
2021-05-04 20:31:15 +00:00
}
2021-04-26 12:01:21 +00:00
module . exports = withTM ( {
2021-08-03 18:15:24 +00:00
i18n : {
locales : [ "en" ] ,
defaultLocale : "en" ,
} ,
2021-09-02 14:33:05 +00:00
eslint : {
// This allows production builds to successfully complete even if the project has ESLint errors.
ignoreDuringBuilds : true ,
} ,
2021-04-07 20:05:23 +00:00
typescript : {
ignoreBuildErrors : true ,
} ,
2021-09-09 13:51:06 +00:00
webpack : ( config ) => {
config . resolve . fallback = {
... config . resolve . fallback , // if you miss it, all the other options in fallback, specified
// by next.js will be dropped. Doesn't make much sense, but how it is
fs : false ,
} ;
return config ;
} ,
2021-05-07 15:04:56 +00:00
async redirects ( ) {
return [
{
2021-07-20 18:18:26 +00:00
source : "/settings" ,
destination : "/settings/profile" ,
2021-05-07 15:04:56 +00:00
permanent : true ,
2021-07-20 18:18:26 +00:00
} ,
] ;
} ,
2021-09-06 08:58:17 +00:00
publicRuntimeConfig : {
BASE _URL : process . env . BASE _URL || "http://localhost:3000" ,
} ,
2021-04-26 12:01:21 +00:00
} ) ;