Assemble data into one json
parent
4869ad97ed
commit
db85940f08
|
@ -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
|
@ -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))
|
Loading…
Reference in New Issue