mirror of
https://github.com/betagouv/mon-entreprise
synced 2025-02-09 04:05:01 +00:00
* ⚙️ Sort les fonctions JSX de l'AST Remplace la fonction makeJsx par un composant React <Explanation /> Déplace presque tout le code React dans le répertoire components/ en prévision de sa séparation dans un paquet dédié. * ⚙️ Renomme le nœud "replacement" en "replacementRule" * ⚙️ Ajout d'un attribut visualisationKind pour les mécanismes transformées * ⚙️ Retours PR 1275
18 lines
530 B
TypeScript
18 lines
530 B
TypeScript
import { EvaluationFunction } from '.'
|
|
import { ASTNode } from './AST/types'
|
|
|
|
export let evaluationFunctions = {
|
|
constant: (node) => node,
|
|
} as any
|
|
|
|
export function registerEvaluationFunction<
|
|
NodeName extends ASTNode['nodeKind']
|
|
>(nodeKind: NodeName, evaluationFunction: EvaluationFunction<NodeName>) {
|
|
evaluationFunctions ??= {}
|
|
if (evaluationFunctions[nodeKind]) {
|
|
throw Error(
|
|
`Multiple evaluation functions registered for the nodeKind \x1b[4m${nodeKind}`
|
|
)
|
|
}
|
|
evaluationFunctions[nodeKind] = evaluationFunction
|
|
}
|