Assemble data into one json

pull/2524/head
Jérémy Rialland 2022-12-08 18:34:37 +01:00 committed by Jérémy Rialland
parent 4869ad97ed
commit db85940f08
4 changed files with 215554 additions and 0 deletions

View File

@ -0,0 +1,3 @@
## Description
Assemble les données des codes APE (en `données-NAF-CPF-APE`) et les données du nombre d'établissements par code APE (dans `nombre-etablissements-par-code-ape-et-departement`) afin d'obtenir les codes APE ainsi que leurs données associées triables par département et par nombre d'établissements en 2021.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,80 @@
import { writeFileSync } from 'fs'
import { join } from 'path'
import { fileURLToPath } from 'url'
import { Data as RawApeData } from '../données-NAF-CPF-APE/convert-pdf.js'
import rawApeData from '../données-NAF-CPF-APE/output.json' assert { type: 'json' }
import { Out as EtablissementsData } from '../nombre-etablissements-par-code-ape-et-departement/convert-json.js'
import rawEtablissementsData from '../nombre-etablissements-par-code-ape-et-departement/output.json' assert { type: 'json' }
const __dirname = fileURLToPath(new URL('.', import.meta.url))
const OUTPUT_JSON_PATH = join(__dirname, './output.json')
const OUTPUT_MIN_JSON_PATH = join(__dirname, './output.min.json')
const apeData = rawApeData as RawApeData[]
const etablissementsData = rawEtablissementsData as EtablissementsData
interface ApeData {
codeApe: string
title: string
data: string[]
contenuCentral: string[]
contenuAnnexe: string[]
contenuExclu: string[]
}
type NbEtablissement2021Index = number
export interface Output {
/**
* Données textuel pour chaque code APE
*/
apeData: ApeData[]
/**
* Nombre d'établissement par département et par code APE,
* l'index de ce tableau correspond au index dans indexByCodeApe, indexByCodeDepartement et sortByEffectif.
* Cela permet de trouver le nombre d'établissement en 2021 avec un couple code APE + code d'un département.
*/
nbEtablissements2021: number[]
indexByCodeApe: { [codeAPE: string]: NbEtablissement2021Index[] }
indexByCodeDepartement: {
[codeDepartement: string]: NbEtablissement2021Index[]
}
sortByEffectif: NbEtablissement2021Index[]
}
const output: Output = {
apeData: apeData
.filter(({ type }) => type === 'sousClasse')
.map(
({
code: codeApe,
title,
data,
contenuCentral,
contenuAnnexe,
contenuExclu,
}) => {
return {
codeApe,
title,
data,
contenuCentral,
contenuAnnexe,
contenuExclu,
}
}
),
nbEtablissements2021: etablissementsData.data.map(
({ nombre_d_etablissements_2021: nbEtablissements }) => nbEtablissements
),
indexByCodeApe: etablissementsData.indexByCodeApe,
indexByCodeDepartement: etablissementsData.indexByCodeDepartement,
sortByEffectif: etablissementsData.sortByEffectif,
}
writeFileSync(OUTPUT_JSON_PATH, JSON.stringify(output, null, 2))
writeFileSync(OUTPUT_MIN_JSON_PATH, JSON.stringify(output))