const pattern: string = "integration/";
const patternMock: string = pattern + "mock";
const property: string = "Widget";
const regexp = new RegExp(pattern, "i");
const regexpMock = new RegExp(patternMock, "i");

export function getWidgetDefinition (window: any, isMockWidget: boolean = false) {
    const filterName = (name: string) => isMockWidget ? 
        name.match(regexpMock) : 
        name.match(regexp) && !name.match(regexpMock);
    
    const widgetNames = Object.keys(window)
        .filter(name => filterName(name) && window[name].hasOwnProperty(property));

    if (widgetNames.length) {
        const name: string = widgetNames[0];
        return {
            name: name.substring(name.lastIndexOf('/') + 1),
            component: window[name].Widget
        };
    }

    return null;
}    

