Compilation

Pour des raisons de performances le moteur de règles Publicodes attend en entrée un objet JSON regroupant l’ensemble des règles à évaluer. Ainsi, les fichiers de règles (.publicodes ou .yaml) doivent être compilés en un objet JSON avant d’être utilisés.

Cette étape de compilation a été factorisée dans un module dédié : @publicodes/tools/compilation.

Générer un modèle JSON à partir des fichiers sources

La fonction getModelFromSource permet de compiler un ensemble de fichiers Publicodes en un seul objet JSON.

Usage

La fonction getModelFromSource prend en paramètre :

  • un glob (ou un chemin vers un dossier) permettant de définir les fichiers à compiler.

    Si le paramètre est un chemin vers un dossier, <dossier>/**/*.publicodes est utilisé par défaut.

  • un objet de configuration optionnel :
    • ignore : un tableau de globs à ignorer
    • verbose : un booléen permettant d’afficher les logs de compilation

Exemple d’utilisation

import { writeFileSync } from 'fs';
import { getModelFromSource } from '@publicodes/tools/compilation';

const model = getModelFromSource('data', {
    ignore: ['data/test/**'],
    verbose: true
});

writeFileSync('dist/model.json', JSON.stringify(model, null, 2));