Declarative way for compute facts
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- javascript, json
- Domínio
- backend
Direção de pesquisa
Nenhum arquivo-fonte ou teste é mencionado. Comece revisando a discussão da documentação sobre computed facts e a abordagem existente de addFact/function; em seguida, compare a declaração proposta em json-logic para facts derivados reutilizáveis. O trabalho estará concluído quando um maintainer decidir se isso pertence ao engine e, se for aceito, houver um design delimitado para armazenamento e avaliação.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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 (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? 🙂
- Linguagem predominante
- JavaScript
- Estrelas
- 3.1k
- Forks
- 507
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de CacheControl/json-rules-engine
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
CacheControl/json-rules-engine#427 · 1 reação ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 48/100
CacheControl/json-rules-engine#424 · 1 comentário ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 25/100
CacheControl/json-rules-engine#421 · 1 comentário ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 38/100
CacheControl/json-rules-engine#417 · 1 reação ·
Todas as issues de CacheControl/json-rules-engine
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
HarperFast/skills#96 ·
-
[Block] Latest Posts [Type] Bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
-
Daemon passes --experimental-wasm-jspi unconditionally on Node >= 24; Node 26 rejects the flag Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Automattic/studio#4908 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
sugarlabs/musicblocks#8847 ·