export class BomHack { constructor(private _allowedOrigin: string) {} process(bomId: string): Promise { return new Promise((resolve, reject) => { const iFrameEl: HTMLIFrameElement = document.createElement('iframe'); iFrameEl.src = `${this._allowedOrigin}/en/bom-tool/view/${bomId}/1`; iFrameEl.style.display = 'none'; document.body.appendChild(iFrameEl); window.addEventListener( 'message', event => { try { document.body.removeChild(iFrameEl); } catch (e) { console.log(e); } if (event.origin !== this._allowedOrigin) return reject(new Error("The origin doesn't match allowed origin")); return resolve(event.data); }, false ); }); } }