Select Git revision

Emmanuel Raviart authored
config.ts 2.75 KiB
import "dotenv/config"
import { validateConfig } from "$lib/auditors/config"
export interface Config {
advanced: boolean
apiBaseUrl: string
apiWebSocketBaseUrl: string
baseUrl: string
childrenKey: string
decompositionsPath: string
familyEntityKey: string
githubPersonalAccessToken?: string
hiddenEntitiesKeyPlural?: string[]
jsonDir: string
matomo?: {
prependDomain?: boolean
siteId: number
subdomains?: string
url: string
}
oauth2?: {
accessTokenUrl: string
authorizationUrl: string
clientId: string
clientSecret: string
jwtSecret: string
profileUrl: string
}
openfiscaRepository: {
branch: string
group: string
project: string
rawUrlTemplate: string
urlTemplate: string
}
portalUrl: string
proxy: boolean
rootDecompositionName: string
title: string
}
const [validConfig, error] = validateConfig({
advanced: process.env["ADVANCED"],
apiBaseUrl: process.env["API_BASE_URL"],
baseUrl: process.env["BASE_URL"],
childrenKey: process.env["CHILDREN_KEY"],
decompositionsPath: process.env["DECOMPOSITION_PATH"],
familyEntityKey: process.env["FAMILY_KEY"],
githubPersonalAccessToken: process.env["GITHUB_PERSONAL_ACCESS_TOKEN"],
hiddenEntitiesKeyPlural: process.env["HIDDEN_ENTITIES"],
jsonDir: process.env["JSON_DIR"],
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,
oauth2: process.env["OAUTH2_CLIENT_ID"]
? {
accessTokenUrl: process.env["OAUTH2_ACCESS_TOKEN_URL"],
authorizationUrl: process.env["OAUTH2_AUTHORIZATION_URL"],
clientId: process.env["OAUTH2_CLIENT_ID"],
clientSecret: process.env["OAUTH2_CLIENT_SECRET"],
jwtSecret: process.env["OAUTH2_JWT_SECRET"],
profileUrl: process.env["OAUTH2_PROFILE_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"],
},
portalUrl: process.env["PORTAL_URL"],
proxy: process.env["PROXY"],
rootDecompositionName: process.env["DECOMPOSITION_ROOT"],
title: process.env["TITLE"],
})
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 as Config
config.apiWebSocketBaseUrl = config.apiBaseUrl.replace(/^http/, "ws")
export default config