import { IMSDynamicsMessage } from "../types";
import { getMethods } from "./methods";
import { IGenericWrapper } from "../../generic/types";

export const transformGenericToMSDynamics = (msg: IGenericWrapper) => {
    const { children = [] } = msg;

    const messages: Array<IMSDynamicsMessage> = children.reduce((acc, child) => {
        const res = getMethods(child.type)(child);
        Array.isArray(res) ?
            acc.push(...res) :
            acc.push(res);
        
        return acc;
    }, []);

    return {
        messages
    };
};