CacheControl / CacheControl/json-rules-engine

Declarative way for compute facts

Abierto
#292 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
JavaScript
Estrellas
3.1k
Forks
507
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Hi! I consider this repo as a very helpful design approach! I'm looking forward and have thoughts about admin interface for editing and storing rules. But i think we have a lack of ability for storing complex computed facts. For example, i have a a big legacy system underneath my app, and some facts from there have a big value because they computes from multiple fields of big json document. I need to reuse that facts everywhere in my app. What can i do right now? I can use only functions for this objectives. Like this:

```
engine.addFact('account', (params, almanac) => {
return almanac.bigDoc.path1.value + almanac.bigDoc.path2.value;
})
```

Ok, it's very flex and this approach cover all my needs, except storing.

My suggest:

We can use [jsonLogic library ](https://github.com/jwadhams/json-logic-js/) (or similar operators inside this repo) for declaring facts like this:

```
new Fact('derivedFact', [ 'bigDoc' ], { '+' : [
{ 'var' : 'bigDoc.path1.value' },
{ 'var' : 'bigDoc.path2.value' },
]}
)
```

While i was browsing docs, i saw that you considered this as a design bad smell. Why? Can you explain? Or i can suggest PR? 🙂

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.