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
.
Pour l'instant le module exporte uniquement une fonction
getModelFromSource
, mais il est prévu de publier un CLI autour du script de
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.
Cette fonction permet de résoudre les imports de règles depuis des
paquets NPM via la macro importer!
.
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 à ignorerverbose
: 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))