openOutpaint/js/lib/commands.d.js
Victor Seiji Hariki 941d44b365 Allow extra information in history
Signed-off-by: Victor Seiji Hariki <victorseijih@gmail.com>
2023-01-04 18:33:29 -03:00

47 lines
1.7 KiB
JavaScript

/**
* An object that represents an entry of the command in the history
*
* @typedef CommandEntry
* @property {string} id A unique ID generated for this entry
* @property {string} title The title passed to the command being run
* @property {() => void | Promise<void>} undo A method to undo whatever the command did
* @property {() => void | Promise<void>} redo A method to redo whatever undo did
* @property {{[key: string]: any}} state The state of the current command instance
*/
/**
* Extra command information
*
* @typedef CommandExtraParams
* @property {boolean} recordHistory The title passed to the command being run
* @property {Record<string, any>} extra Extra information to be stored in the history entry
*/
/**
* A command, which is run, then returns a CommandEntry object that can be used to manually undo/redo it
*
* @callback Command
* @param {string} title The title passed to the command being run
* @param {any} options A options object for the command
* @param {CommandExtraParams} extra A options object for the command
* @returns {Promise<CommandEntry>}
*/
/**
* A method for running a command (or redoing it)
*
* @callback CommandDoCallback
* @param {string} title The title passed to the command being run
* @param {*} options A options object for the command
* @param {{[key: string]: any}} state The state of the current command instance
* @returns {void | Promise<void>}
*/
/**
* A method for undoing a command
*
* @callback CommandUndoCallback
* @param {string} title The title passed to the command when it was run
* @param {{[key: string]: any}} state The state of the current command instance
* @returns {void | Promise<void>}
*/