Definindo esquemas completos para seu banco de dados de documentos? O que é isso, SQL? (Se você já tentou usar o esquema JSON ou algo parecido, tenho certeza de que conhece o problema). No Agile Diagnosis, precisávamos de uma maneira de verificar a integridade dos dados de uma forma que nos permitisse reutilizar a lógica de validação em diferentes pontos da pilha e que nos permitisse ser tão rígidos ou flexíveis quanto necessário. Nossa abordagem usa funções simples de retorno booleano (predicado), em conjunto com um pouco de açúcar de verificação de tipo e estrutura que chamamos tracery
:
var tracery = require('tracery')
var Tags = tracery([String])
var Movie = tracery({
title: String,
director: String,
year: Number,
genre: String,
tags: Tags
})
var Flavor = tracery({
sour: Boolean,
bitter: Boolean,
sweet: Boolean,
spicy: Boolean
})
var Document = tracery({
id: String,
movies: [Movie],
flavors: tracery.Collection(Flavor)
})
Veja mais no github ou pegue emnpm install tracery
rendilhado é gratuito e de código aberto sob a licença do MIT