/* Copyright IBM Corp. 2017 */ import { Observable } from 'rxjs'; import { map, mergeMap } from 'rxjs/operators'; import { createAbstractComponentContext } from '../commands/create.components.command'; import { ComponentRegistry } from './component.reg'; import { WchTools } from './wchtools'; function _createTypeInterface( aType: any, aTools: WchTools, aComponentReg: ComponentRegistry, aTemplate: Observable): Observable { // create the context const rxCtx = createAbstractComponentContext(aType, aComponentReg, aTools); // apply the template return rxCtx.pipe(mergeMap(ctx => aTemplate.pipe(map(tmp => tmp(ctx))))); }