@theia/core
Version:
Theia is a cloud & desktop IDE framework implemented in TypeScript.
76 lines • 3.26 kB
TypeScript
import type { FrontendApplication } from './frontend-application';
import { MaybePromise } from '../common/types';
import { StopReason } from '../common/frontend-application-state';
/**
* Clients can implement to get a callback for contributing widgets to a shell on start.
*/
export declare const FrontendApplicationContribution: unique symbol;
export interface FrontendApplicationContribution {
/**
* Called on application startup before configure is called.
*/
initialize?(): void;
/**
* Called before commands, key bindings and menus are initialized.
* Should return a promise if it runs asynchronously.
*/
configure?(app: FrontendApplication): MaybePromise<void>;
/**
* Called when the application is started. The application shell is not attached yet when this method runs.
* Should return a promise if it runs asynchronously.
*/
onStart?(app: FrontendApplication): MaybePromise<void>;
/**
* Called on `beforeunload` event, right before the window closes.
* Return `true` or an OnWillStopAction in order to prevent exit.
* Note: No async code allowed, this function has to run on one tick.
*/
onWillStop?(app: FrontendApplication): boolean | undefined | OnWillStopAction<unknown>;
/**
* Called when an application is stopped or unloaded.
*
* Note that this is implemented using `window.beforeunload` which doesn't allow any asynchronous code anymore.
* I.e. this is the last tick.
*/
onStop?(app: FrontendApplication): void;
/**
* Called after the application shell has been attached in case there is no previous workbench layout state.
* Should return a promise if it runs asynchronously.
*/
initializeLayout?(app: FrontendApplication): MaybePromise<void>;
/**
* An event is emitted when a layout is initialized, but before the shell is attached.
*/
onDidInitializeLayout?(app: FrontendApplication): MaybePromise<void>;
}
export interface OnWillStopAction<T = unknown> {
/**
* @resolves to a prepared value to be passed into the `action` function.
*/
prepare?: (stopReason?: StopReason) => MaybePromise<T>;
/**
* @resolves to `true` if it is safe to close the application; `false` otherwise.
*/
action: (prepared: T, stopReason?: StopReason) => MaybePromise<boolean>;
/**
* A descriptive string for the reason preventing close.
*/
reason: string;
/**
* A number representing priority. Higher priority items are run later.
* High priority implies that some options of this check will have negative impacts if
* the user subsequently cancels the shutdown.
*/
priority?: number;
}
export declare namespace OnWillStopAction {
function is(candidate: unknown): candidate is OnWillStopAction;
}
/**
* Default frontend contribution that can be extended by clients if they do not want to implement any of the
* methods from the interface but still want to contribute to the frontend application.
*/
export declare abstract class DefaultFrontendApplicationContribution implements FrontendApplicationContribution {
initialize(): void;
}
//# sourceMappingURL=frontend-application-contribution.d.ts.map