kryten
Version:
A wrapper for johnny-five that lets you define/re-configure a board using JSON and then generates schemaform.io schema for controlling it.
23 lines (18 loc) • 666 B
text/coffeescript
schemaModel = require './message-schemas.json'
_ = require 'lodash'
class KrytenSchema
componentList: (names, component) =>
components = {}
names.forEach (name) ->
components[component[name].action] = [] if !components[component.action]?
components[component[name].action].push name
return components
generateMessageSchema: (names, component) =>
components = names, component
schema = {}
_.forEach components, (value, key) =>
return unless value?
schema[key] = schemaModel[key] if !schema[key]?
schema[key].properties.component.enum = value
return schema
module.exports = KrytenSchema