octoblu-device-schema-transmogrifier
Version:
Transmogrifies message and device schemas from version NULL to v1.0.0 for meshblu devices
24 lines (18 loc) • 785 B
text/coffeescript
_ = require 'lodash'
class OctobluDeviceSchemaTransmogrifier
constructor: (oldDevice) ->
throw new Error('Someone tried to transmogrify an undefined device! Stop doing that.') unless oldDevice?
= _.clone oldDevice
.schemas = _.cloneDeep oldDevice.schemas
transmogrify: =>
return if _.get(, 'schemas.version') == '1.0.0'
_.set , 'schemas.version', '1.0.0'
return
_migrateMessageSchema: =>
messageSchema = .messageSchema
delete .messageSchema
.schemas.messages ?= []
return .schemas.messages = messageSchema if _.isArray messageSchema
.schemas.messages.push messageSchema
module.exports = OctobluDeviceSchemaTransmogrifier