diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2020-12-10 12:52:17 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-10 12:52:17 +0000 |
commit | 5a0444d7bb7eae27fdca5c2be8fc3ec6c36d53bd (patch) | |
tree | 46d70e19f9720d237f4423c1debfcacdd088ce0b /src/content/operators/impls/ToggleAddonOperator.ts | |
parent | a3c34a309c4b1421eb4914c3fbeba327a5400021 (diff) | |
parent | d2fb674566393d9a8b88d71dba9f5081786b118c (diff) |
Merge pull request #917 from ueokande/operation-as-a-operator
refactor: Make each operation as an operator
Diffstat (limited to 'src/content/operators/impls/ToggleAddonOperator.ts')
-rw-r--r-- | src/content/operators/impls/ToggleAddonOperator.ts | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/content/operators/impls/ToggleAddonOperator.ts b/src/content/operators/impls/ToggleAddonOperator.ts new file mode 100644 index 0000000..2a249d6 --- /dev/null +++ b/src/content/operators/impls/ToggleAddonOperator.ts @@ -0,0 +1,16 @@ +import Operator from "../Operator"; +import AddonIndicatorClient from "../../client/AddonIndicatorClient"; +import AddonEnabledRepository from "../../repositories/AddonEnabledRepository"; + +export default class ToggleAddonOperator implements Operator { + constructor( + private readonly indicator: AddonIndicatorClient, + private readonly repository: AddonEnabledRepository + ) {} + + async run(): Promise<void> { + const current = this.repository.get(); + this.repository.set(!current); + await this.indicator.setEnabled(!current); + } +} |