'use strict'; import Promise from 'bluebird'; import { zonifyCall, zonifyCatch, zonifyCoroutine, zonifyFirst, zonifyLast, zonifyMiddle, zonifyOne, zonifySecond, zonifyTwo } from './zonify'; Promise.coroutine = zonifyCoroutine(Promise.coroutine); Promise.each = zonifySecond(Promise.each); Promise.filter = zonifyMiddle(Promise.filter); Promise.fromCallback = zonifyFirst(Promise.fromCallback); Promise.fromNode = Promise.fromCallback; Promise.join = zonifyLast(Promise.join); Promise.map = zonifyMiddle(Promise.map); Promise.mapSeries = zonifySecond(Promise.mapSeries); Promise.onPossiblyUnhandledRejection = zonifyOne(Promise.onPossiblyUnhandledRejection); Promise.onUnhandledRejectionHandled = zonifyOne(Promise.onUnhandledRejectionHandled); Promise.reduce = zonifyMiddle(Promise.reduce); Promise.using = zonifyLast(Promise.using); Promise.prototype.asCallback = zonifyFirst(Promise.prototype.asCallback); Promise.prototype.call = zonifyCall(Promise.prototype.call); Promise.prototype.catch = zonifyCatch(Promise.prototype.catch); Promise.prototype.caught = Promise.prototype.catch; Promise.prototype.disposer = zonifyOne(Promise.prototype.disposer); Promise.prototype.done = zonifyTwo(Promise.prototype.done); Promise.prototype.each = zonifyOne(Promise.prototype.each); Promise.prototype.error = zonifyOne(Promise.prototype.error); Promise.prototype.filter = zonifyFirst(Promise.prototype.filter); Promise.prototype.finally = zonifyOne(Promise.prototype.finally); Promise.prototype.lastly = Promise.prototype.finally; Promise.prototype.map = zonifyFirst(Promise.prototype.map); Promise.prototype.mapSeries = zonifyOne(Promise.prototype.mapSeries); Promise.prototype.nodeify = Promise.prototype.asCallback; Promise.prototype.reduce = zonifyFirst(Promise.prototype.reduce); Promise.prototype.spread = zonifyOne(Promise.prototype.spread); Promise.prototype.tap = zonifyOne(Promise.prototype.tap); Promise.prototype.then = zonifyTwo(Promise.prototype.then); Zone.assertZonePatched = function () {}; window.Promise = Promise; export default Promise;