Select Git revision
reps.js 1.59 KiB
const JSUnit = require('./lib/jsunit.js')
let isStateKey = JSUnit.isStateKey
function makeRepFromModule(mdl) {
// rep != mdl
// rep is rep of mdl
var rep = {
description: {
id: mdl.description.id,
name: mdl.description.name,
alt: mdl.description.alt,
path: mdl.description.path
}
}
// yikes tho, corner cases should be easier ...
if(mdl.description.isHardware){
rep.description.isHardware = true
}
if(mdl.description.isLink){
rep.description.isLink = true
}
if(mdl.description.position){
rep.description.position = mdl.description.position
}
// TODO: making rep. of input / output should be a f'n of that object ...
// input, outputs, state objs should be known /sysobjects
// everything else is free play
rep.inputs = {}
for (key in mdl.inputs) {
rep.inputs[key] = {}
rep.inputs[key].accepts = mdl.inputs[key].accepts
}
rep.outputs = {}
for (key in mdl.outputs) {
rep.outputs[key] = {}
rep.outputs[key].emits = mdl.outputs[key].emits
rep.outputs[key].calls = new Array()
mdl.outputs[key].calls.forEach(function(inp) {
var input = {
parentId: inp.parentId,
key: inp.key
}
rep.outputs[key].calls.push(input)
})
}
rep.state = {}
for(key in mdl.state){
if(isStateKey(key)){
rep.state[key] = mdl.state[key]
}
}
return rep
}
module.exports = {
makeFromModule: makeRepFromModule
}