Socket
Book a DemoInstallSign in
Socket

ts-command-invoker

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ts-command-invoker

Command invoker for easy implementation of undo/redo

latest
Source
npmnpm
Version
1.0.3
Version published
Maintainers
1
Created
Source

Command invoker

A simple command invoker, that can be used to implement undo/redo functionality (aka Ctrl+Z / Ctrl+Shift+Z).

Installation

npm i ts-command-invoker

Example usage

Command invoker can invoke commands and later undo or redo them. This can be useful for implementing classic undo/redo behavior such as the one you know from Google docs, etc.

import { Command, CommandInvoker } from 'ts-command-invoker';

let counter = 0;

export class AddOneCommand extends Command {
    do(): void {
        counter += 1;
    }

    undo(): void {
        counter -= 1;
    }
}

const invoker = new CommandInvoker();

invoker.invoke(new AddOneCommand());
// counter === 1

invoker.invoke(new AddOneCommand());
// counter === 2

invoker.undo()
// counter === 1

invoker.undo()
// counter === 0

invoker.redo()
// counter === 1

Multiple commands can be batched into one using MultiCommand.

import { Command, CommandInvoker, MultiCommand } from 'ts-command-invoker';

export class DeleteCommand extends Command {
    do(): void {
      // delete one item
    }

    undo(): void {
      // bring back one item
    }
}

const deleteMultiple = new MultiCommand([
    new DeleteCommand(item1),
    new DeleteCommand(item2),
]);

const invoker = new CommandInvoker();

invoker.invoke(deleteMultiple);

License

Feel free to use in any way. (ISC)

Changelog

  • v1.0.3
    • Improved Usage example
  • v1.0.0
    • Command invoker implementation

Keywords

command

FAQs

Package last updated on 09 Nov 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts