Skip to content
Snippets Groups Projects
Select Git revision
  • db467c58bec6df5139b3a3a184d4a2d89e2558ee
  • master default protected
  • doc-script-gen-off-tests
  • 366-signe-a-cote-du-droit-en-vigueur-sur-l-ui-pour-indiquer-que-la-reforme-a-eu-lieu-mais-qu-elle-n
  • revalo_retraites
  • 381-pb-affichage-labels-des-parametres-sur-plus-de-3-lignes
  • ajoute-duplicate-aide-logement
  • poc_castype_ia
  • parametres-editables-budget
  • ui-parametres
  • 355-les-dispositifs-prestations-sociales-du-graphique-se-cachent-montrent-en-meme-temps-2
  • 358-les-variables-dont-le-montant-est-nul-apparaissent-en-bleu-et-non-cliquables
  • 356-ajuster-la-largeur-sur-les-graphiques-budgetaires
  • incoherence_cas_type_0
  • fix-ui-suppression-tranches-baremes
  • ajout-agregat-cehr-version-plf
  • impact_carbone
  • xlsx
  • header_revamp
  • 270-concevoir-la-page-d-accueil-leximpact
  • 219-conversion-des-montants-min-et-max-de-l-axe-des-x-en-smic
  • 0.0.1177
  • 0.0.1176
  • 0.0.1175
  • 0.0.1174
  • 0.0.1173
  • 0.0.1172
  • 0.0.1171
  • 0.0.1170
  • 0.0.1169
  • 0.0.1168
  • 0.0.1167
  • 0.0.1166
  • 0.0.1165
  • 0.0.1164
  • 0.0.1163
  • 0.0.1162
  • 0.0.1161
  • 0.0.1160
  • 0.0.1159
  • 0.0.1158
41 results

config.ts

Blame
  • 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