{"version":3,"sources":["../../../packages/core/data/native-q.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,cAAc,CAAC,CAAC;IACzB;;OAEG;IACI,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAE3B;;OAEG;IACI,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAErD;;OAEG;IACI,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACI,WAAW,UAAS;IAE3B;;OAEG;IACI,SAAS,UAAQ;IAExB;;OAEG;;CAWN;AAED;;GAEG;AACH,qBAAa,OAAO;IAChB;;OAEG;WACW,KAAK,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC;IAI3C;;OAEG;WACW,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IAMnD;;OAEG;WACW,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAKlD","file":"native-q.d.ts","sourcesContent":["/**\r\n * The deferred class based on native Promise.\r\n */\r\nexport class NativeDeferred<T> {\r\n    /**\r\n     * The native promise.\r\n     */\r\n    public promise: Promise<T>;\r\n\r\n    /**\r\n     * Resolve callback of the deferred object.\r\n     */\r\n    public resolve: (value?: T | PromiseLike<T>) => void;\r\n\r\n    /**\r\n     * Reject callback of the deferred object.\r\n     */\r\n    public reject: (reason?: any) => void;\r\n\r\n    /**\r\n     * Is fulfilled tracked status.\r\n     */\r\n    public isFulfilled = false;\r\n\r\n    /**\r\n     * Is pending tracked status.\r\n     */\r\n    public isPending = true;\r\n\r\n    /**\r\n     * Initializes a new instance of the NativeDeferred class.\r\n     */\r\n    constructor() {\r\n        this.promise = new Promise<T>((resolve, reject) => {\r\n            this.resolve = (data) => {\r\n                resolve(data); this.isFulfilled = true; this.isPending = false;\r\n            };\r\n            this.reject = (error) => {\r\n                reject(error); this.isPending = false;\r\n            };\r\n        });\r\n    }\r\n}\r\n\r\n/**\r\n * Native Q to attach on native Promise.\r\n */\r\nexport class NativeQ {\r\n    /**\r\n     * Create native deferred object.\r\n     */\r\n    public static defer<T>(): NativeDeferred<T> {\r\n        return new NativeDeferred<T>();\r\n    }\r\n\r\n    /**\r\n     * Create rejected native deferred object.\r\n     */\r\n    public static rejected<T>(reason?: any): Promise<T> {\r\n        const deferred = new NativeDeferred<T>();\r\n        deferred.reject(reason);\r\n        return deferred.promise;\r\n    }\r\n\r\n    /**\r\n     * Create resolved native deferred object.\r\n     */\r\n    public static resolved<T>(data?: T): Promise<T> {\r\n        const deferred = new NativeDeferred<T>();\r\n        deferred.resolve(data);\r\n        return deferred.promise;\r\n    }\r\n}\r\n"]}