diff --git a/app/main.ts b/app/main.ts index 9e9a75143465cdc01095408a4043c6e92682ab1a..1b2e1046ea30b08634432a87b0d9ae8bc83523d5 100644 --- a/app/main.ts +++ b/app/main.ts @@ -1,5 +1,10 @@ import { logger, LogSeverity } from "./logging.ts"; -import { DEFAULT_CACHE_ENABLED, DEFAULT_CACHE_TTL_MS_BETTERPLACE, DEFAULT_PORT, startServer } from "./server.ts"; +import { + DEFAULT_CACHE_ENABLED, + DEFAULT_CACHE_TTL_MS_BETTERPLACE, + DEFAULT_PORT, + startServer, +} from "./server.ts"; const environment = Deno.env.get("ENVIRONMENT") || "development"; @@ -9,7 +14,7 @@ logger.setUpLogger( ); const required = <T>(name: string, t?: T, fallback?: T): T => { - if (!t && fallback === undefined) { + if (t === undefined && fallback === undefined) { throw Error(`Environment variable "${name}" is required`); } else { return t !== undefined ? t : fallback!; @@ -19,11 +24,21 @@ const required = <T>(name: string, t?: T, fallback?: T): T => { const serverConfigFromEnv = () => { const asNumber = (str?: string) => (str ? Number(str) : undefined); const asBoolean = (str?: string) => (str ? /^true$/i.test(str) : undefined); - logger.info(`fake ${Deno.env.get("FAKE")} ${asBoolean(Deno.env.get("FAKE"))}`) + logger.info( + `fake ${Deno.env.get("FAKE")} ${asBoolean(Deno.env.get("FAKE"))}`, + ); return { port: required("PORT", asNumber(Deno.env.get("PORT")), DEFAULT_PORT), - cacheEnabled: required("CACHE_ENABLED", asBoolean(Deno.env.get("CACHE_ENABLED")), DEFAULT_CACHE_ENABLED), - cacheTtlMsBetterplace: required("CACHE_TTL_MS_BETTERPLACE", asNumber(Deno.env.get("CACHE_TTL_MS_BETTERPLACE")), DEFAULT_CACHE_TTL_MS_BETTERPLACE), + cacheEnabled: required( + "CACHE_ENABLED", + asBoolean(Deno.env.get("CACHE_ENABLED")), + DEFAULT_CACHE_ENABLED, + ), + cacheTtlMsBetterplace: required( + "CACHE_TTL_MS_BETTERPLACE", + asNumber(Deno.env.get("CACHE_TTL_MS_BETTERPLACE")), + DEFAULT_CACHE_TTL_MS_BETTERPLACE, + ), fake: asBoolean(Deno.env.get("FAKE")) || false, // For local development. If set, the API returns dummy data }; }; diff --git a/app/server.ts b/app/server.ts index ebccd3e7d290f26064ea3159dabfad08a626fecf..e8428197d96082dff1459eb09b82a549ba6fdeab 100644 --- a/app/server.ts +++ b/app/server.ts @@ -87,13 +87,19 @@ const createResolvers = (_config: ServerConfig) => ({ _parent: any, parameters: ProjectsParameters = {}, context: GraphQLContext, - ) => _config.fake ? Promise.resolve({totalResults: 0, data: []}) : fetchProjects(parameters, context.language), + ) => + _config.fake + ? Promise.resolve({ totalResults: 0, data: [] }) + : fetchProjects(parameters, context.language), project: ( // deno-lint-ignore no-explicit-any _parent: any, parameters: ProjectParameters, context: GraphQLContext, - ) => _config.fake ? Promise.resolve({}) : fetchProject(parameters, context.language), + ) => + _config.fake + ? Promise.resolve({}) + : fetchProject(parameters, context.language), }, Project: { categories: (args: Project) => fetchCategories(args.id), @@ -101,7 +107,8 @@ const createResolvers = (_config: ServerConfig) => ({ _config.fake ? Promise.resolve([]) : fetchNews(args, parameters), }, Initiative: { - url: (args: Initiative) => _config.fake ? Promise.resolve(undefined) : fetchInitiativeUrl(args), + url: (args: Initiative) => + _config.fake ? Promise.resolve(undefined) : fetchInitiativeUrl(args), }, }); @@ -182,8 +189,10 @@ export const startServer = (config: ServerConfig): Promise<void> => { hostname === "0.0.0.0" ? "localhost" : hostname }:${port}/graphql`, ); - if(config.fake) { - logger.info(`Server is serving fake data due to FAKE env var set to true`) + if (config.fake) { + logger.info( + `Server is serving fake data due to FAKE env var set to true`, + ); } }, });