/**
 * Deferrer provides asynchronous operation in async-await pattern
 */ export abstract class Deferrer { /**
     * Register the callback either the eventual value is resolved or rejected
     */ static run < T > ( cb ) { return new Promise ( ( resolve , reject ) => { cb ( resolve , reject ) ; } ) ; } }