langium
Version:
A language engineering tool for the Language Server Protocol
30 lines (26 loc) • 899 B
text/typescript
/******************************************************************************
* Copyright 2021 TypeFox GmbH
* This program and the accompanying materials are made available under the
* terms of the MIT License, which is available in the project root.
******************************************************************************/
export interface Disposable {
/**
* Dispose this object.
*/
dispose(): void;
}
export interface AsyncDisposable {
/**
* Dispose this object.
*/
dispose(): Promise<void>;
}
export namespace Disposable {
export function create(callback: () => Promise<void>): AsyncDisposable;
export function create(callback: () => void): Disposable;
export function create(callback: () => void | Promise<void>): Disposable | AsyncDisposable {
return {
dispose: async () => await callback()
};
}
}