git multirepo stage

This commit is contained in:
Joao Moreno
2017-08-15 15:55:00 +02:00
parent 16e8189650
commit 303dd11747
6 changed files with 148 additions and 111 deletions

View File

@@ -56,7 +56,7 @@ export function done<T>(promise: Promise<T>): Promise<void> {
return promise.then<void>(() => void 0);
}
export function once<T>(event: Event<T>): Event<T> {
export function onceEvent<T>(event: Event<T>): Event<T> {
return (listener, thisArgs = null, disposables?) => {
const result = event(e => {
result.dispose();
@@ -68,7 +68,19 @@ export function once<T>(event: Event<T>): Event<T> {
}
export function eventToPromise<T>(event: Event<T>): Promise<T> {
return new Promise<T>(c => once(event)(c));
return new Promise<T>(c => onceEvent(event)(c));
}
export function once(fn: (...args: any[]) => any): (...args: any[]) => any {
let didRun = false;
return (...args) => {
if (didRun) {
return;
}
return fn(...args);
};
}
// TODO@Joao: replace with Object.assign