Skip to content

How do m2a merge works ? (element type field should be generated once) #6

@tigrou-ux

Description

@tigrou-ux

Hello B3rn475,

I try to understand how m2a work and I miss something. The following code throws "element type field should be generated once". I'd like the obj1, 2 and 3 to be merged into entity like

{
                id: "entity",
                type: "entity",
                attributes: {
                    elementnames : ["myelement1","myelement2","myelement3"]
                },
                metadata: {}
}
var extendModel = createExtender({
  type: {},
  relation: {},
  custom: {}
});

var buildModel = function() {
    var obj1 = {
        id: "partial-element-1",
        type: "partial-element",
        attributes: {
            elementname: "myelement1"
        },
        metadata: {}
    }
    var obj2 = {
        id: "partial-element-2",
        type: "partial-element",
        attributes: {
            elementname: "myelement2"
        },
        metadata: {}
    }
    var obj3 = {
        id: "partial-element-3",
        type: "partial-element",
        attributes: {
            elementname: "myelement3"
        },
        metadata:{}
    }
    return extendModel({
        elements: [obj1, obj2, obj3],
        relations: [],
        metadata: {}
    })
}
var transformer = createTransformer({
    element: [
        createRule(function(element, model) {
            return true;
        }, function(element, model) {
            var el = {
                id: "entity",
                type: "entity",
                attributes: {
                    elementnames : []
                },
                metadata: {}
            }
            el.attributes.elementnames.push(element.attributes.elementname)
            return {
                elements: [el],
                relations: [],
                metadata: {} 
            }
        })
    ]
}, 'm2a');
var model = buildModel();
console.log(util.inspect(model));
var modelTransformed = transformer(model);

Thank you !

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions