UNPKG

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
_ = require 'lodash' class OctobluDeviceSchemaTransmogrifier constructor: (oldDevice) -> throw new Error('Someone tried to transmogrify an undefined device! Stop doing that.') unless oldDevice? @device = _.clone oldDevice @device.schemas = _.cloneDeep oldDevice.schemas transmogrify: => return @device if _.get(@device, 'schemas.version') == '1.0.0' _.set @device, 'schemas.version', '1.0.0' @_migrateMessageSchema() return @device _migrateMessageSchema: => messageSchema = @device.messageSchema delete @device.messageSchema @device.schemas.messages ?= [] return @device.schemas.messages = messageSchema if _.isArray messageSchema @device.schemas.messages.push messageSchema module.exports = OctobluDeviceSchemaTransmogrifier