Select Git revision

Emmanuel Raviart authored
config.ts 3.16 KiB
import "dotenv/config"
import { validateConfig } from "$lib/server/auditors/config"
import type { RepositoryConfig } from "$lib/repositories"
export interface Config {
advanced: boolean
allowRobots: boolean
apiBaseUrls: string[]
apiWebSocketBaseUrls: string[]
baseUrl: string
budgetApiUrl?: string
budgetJwtSecret?: string
childrenKey: string
familyEntityKey: string
githubPersonalAccessToken?: string
hiddenEntitiesKeyPlural?: string[]
householdEntityKey: string
jwtSecret: string
legalUrl: string
matomo?: {
prependDomain?: boolean
siteId: number
subdomains?: string
url: string
}
openfiscaRepository: RepositoryConfig
openIdConnect?: {
clientId: string
clientSecret: string
issuerUrl: string
}
portalUrl: string
proxy: boolean
reformName?: string
showTutorial?: boolean
simulationsDir: string
taxableHouseholdEntityKey: string
territoiresUrl: string
title: string
}
const [validConfig, error] = validateConfig({
advanced: process.env["ADVANCED"],
allowRobots: process.env["ALLOW_ROBOTS"],
apiBaseUrls: process.env["API_BASE_URLS"],
baseUrl: process.env["BASE_URL"],
budgetApiUrl: process.env["BUDGET_API_URL"],
budgetJwtSecret: process.env["BUDGET_JWT_SECRET"],
childrenKey: process.env["CHILDREN_KEY"],
familyEntityKey: process.env["FAMILY_KEY"],
githubPersonalAccessToken: process.env["GITHUB_PERSONAL_ACCESS_TOKEN"],
hiddenEntitiesKeyPlural: process.env["HIDDEN_ENTITIES"],
householdEntityKey: process.env["HOUSEHOLD_KEY"],
jwtSecret: process.env["JWT_SECRET"],
legalUrl: process.env["LEGAL_URL"],
matomo:
process.env["MATOMO_SITE_ID"] && process.env["MATOMO_URL"]
? {
prependDomain: process.env["MATOMO_PREPEND_DOMAIN"],
siteId: process.env["MATOMO_SITE_ID"],
subdomains: process.env["MATOMO_SUBDOMAINS"],
url: process.env["MATOMO_URL"],
}
: null,
openfiscaRepository: {
branch: process.env["OPENFISCA_BRANCH"],
group: process.env["OPENFISCA_GROUP"],
project: process.env["OPENFISCA_PROJECT"],
rawUrlTemplate: process.env["OPENFISCA_REPOSITORY_RAW_URL_TEMPLATE"],
urlTemplate: process.env["OPENFISCA_REPOSITORY_URL_TEMPLATE"],
},
openIdConnect: process.env["OPENID_CONNECT_CLIENT_ID"]
? {
clientId: process.env["OPENID_CONNECT_CLIENT_ID"],
clientSecret: process.env["OPENID_CONNECT_CLIENT_SECRET"],
issuerUrl: process.env["OPENID_CONNECT_ISSUER_URL"],
}
: null,
portalUrl: process.env["PORTAL_URL"],
proxy: process.env["PROXY"],
reformName: process.env["REFORM"],
showTutorial: process.env["SHOW_TUTORIAL"],
simulationsDir: process.env["SIMULATIONS_DIR"],
taxableHouseholdEntityKey: process.env["TAXABLE_HOUSEHOLD_KEY"],
territoiresUrl: process.env["TERRITOIRES_URL"],
title: process.env["TITLE"],
}) as [Config, unknown]
if (error !== null) {
console.error(
`Error in configuration:\n${JSON.stringify(
validConfig,
null,
2,
)}\nError:\n${JSON.stringify(error, null, 2)}`,
)
process.exit(-1)
}
const config = validConfig
config.apiWebSocketBaseUrls = config.apiBaseUrls.map((url) =>
url.replace(/^http/, "ws"),
)
export default config