@talentsoft-opensource/widget-display-tool
Version:
Widget Simulator
26 lines (20 loc) • 838 B
text/typescript
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;
}