"use strict";
// import { Observable, of, from } from "rxjs";
// import * as PQueue from "p-queue";
// import loggerFactory from '../logger';
// const logger = loggerFactory('JobQueue');
// // export type QueueItemType = () => Observable<any>;
// export type QueueItemType = () => Observable<any>;
// /**
//  * TODO can be removed
//  */
// export class JobQueue {
//     private queue: PQueue<Observable<any>>;
//     constructor(){
//         this.queue = new PQueue<Observable<any>>({concurrency: 1});
//     }
//     add(item: QueueItemType): Observable<any> {
//         // return Observable.create((observer: Observer<any>) => {
//         //     this.queue
//         //         .add(() => item().toPromise()).then((data) => observer.next(data)).catch((err) => observer.error(err)).then(() => observer.complete());
//         // });        
//         return from(this.queue.add(() => item().toPromise()))
//     }
//     onEmpty(){
//         return this.queue.onEmpty();
//     }
//     get size(){
//         return this.queue.size;
//     }
// }
