bionode / bionode-watermill

💧Bionode-Watermill: A (Not Yet Streaming) Workflow Engine
https://bionode.gitbooks.io/bionode-watermill/content/
MIT License
37 stars 11 forks source link

json schema validator on input, output, action stream #39

Open thejmazz opened 8 years ago

thejmazz commented 8 years ago

Would be super simple, essentially wrap a module into (x, f) => f(x) where f(x) is true or f(x) is false. x can then be something like

require('is-my-schema-valid')({
  required: true,
  type: 'object',
  properties: {
    rna-fastq: {
      required: true,
      type: RegExp
      pattern: new RegExp(`^${speciesName}.${run}.fastq.gz`)
    }
  }
})

However just realized perhaps is-my-schema-valid cannot compare RegExp objects as they are not by default in JSON.stringify(). @mafintosh, how difficult to extend the plugin, perhaps similar like replacer and reviver functions to faciltate comparisons of objects?

Taking a hint from how webpack lets you choose loaders based on regexing (somewhat implicit understood) filetypes, could apply arrows of validators to specific files, or subtrees of resolved output objects.

thejmazz commented 7 years ago

this is related to #75