function typeInstance(odef) {
console.log('typeInstance', odef);
function keyval(typed) {
const values = {};
Object.keys(typed.type).forEach((key, i) => {
values[key] = typed.value[i];
});
return values;
}
const values = keyval(odef);
let oinst = {value: [], type: {}, name: values.name};
console.log('------ values', values)
values.components.forEach(component => {
const cvalues = keyval({type: dT.composites["type_component"], value: component});
console.log('cvalues', cvalues);
let type = cvalues.Component;
if (cvalues.dimensions.length > 0) {
const dims = cvalues.dimensions.map(dim => {
if (dim.eq(new dT.BN(0))) return '';
return dim.toString();
}).join('][');
type += `[${dims}]`;
}
console.log('--- type', type);
oinst.type[cvalues.label] = type;
const val = dT.t.apply({type, value: null}, 'random');
console.log('------- random val', val);
oinst.value.push(val.value);
});
console.log('--- oinst', oinst);
return oinst;
}