UNPKG

1.58 kBTypeScriptView Raw
1import { ActionResult } from "../../action/ActionResult";
2import { HandlerContext } from "../../HandlerContext";
3import { Project } from "../../project/Project";
4import { EditMode } from "./editModes";
5/**
6 * Modifies the given project, returning information about the modification.
7 * @param p project to edit
8 * @param context context for the current command or event handler
9 * @param params params, if available
10 */
11export declare type ProjectEditor<P = any, ER extends EditResult = EditResult> = (p: Project, context?: HandlerContext, params?: P) => Promise<ER>;
12export declare type SimpleProjectEditor<P = any> = (p: Project, context?: HandlerContext, params?: P) => Promise<Project>;
13export declare type AnyProjectEditor<P = any> = ProjectEditor<P> | SimpleProjectEditor<P>;
14/**
15 * Result of editing a project. More information may be added by instances.
16 */
17export interface EditResult<P extends Project = Project> extends ActionResult<P> {
18 /**
19 * Whether or not this project was edited.
20 * Undefined if we don't know, as not all editors keep track of their doings.
21 */
22 readonly edited?: boolean;
23 /**
24 * Populated only if editing was successful
25 */
26 readonly editMode?: EditMode;
27}
28export declare function toEditor<P = any>(ed: (SimpleProjectEditor<P> | ProjectEditor<P>)): ProjectEditor<P>;
29export declare function successfulEdit<P extends Project>(p: P, edited: boolean): EditResult<P>;
30export declare function failedEdit<P extends Project>(p: P, error: Error, edited?: boolean): EditResult<P>;
31//# sourceMappingURL=projectEditor.d.ts.map
\No newline at end of file