diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2019-05-14 20:28:22 +0900 |
---|---|---|
committer | Shin'ya Ueoka <ueokande@i-beam.org> | 2019-05-18 21:25:18 +0900 |
commit | 2ec912c262b51fe9523ebf74d5062d0b9bbdab71 (patch) | |
tree | bbda7eef0730cd1bff7b88850fbe3327e7d4f4e3 /src/content/repositories | |
parent | efc48dc7421e3bd48534bc94f84e2b0bd47ae47c (diff) |
Mark keys as a clean archtecture
Diffstat (limited to 'src/content/repositories')
-rw-r--r-- | src/content/repositories/MarkKeyRepository.ts | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/content/repositories/MarkKeyRepository.ts b/src/content/repositories/MarkKeyRepository.ts new file mode 100644 index 0000000..c24548a --- /dev/null +++ b/src/content/repositories/MarkKeyRepository.ts @@ -0,0 +1,52 @@ +export default interface MarkKeyRepository { + isSetMode(): boolean; + + enableSetMode(): void; + + disabeSetMode(): void; + + isJumpMode(): boolean; + + enableJumpMode(): void; + + disabeJumpMode(): void; + + // eslint-disable-next-line semi +} + +interface Mode { + setMode: boolean; + jumpMode: boolean; +} + +let current: Mode = { + setMode: false, + jumpMode: false, +}; + +export class MarkKeyRepositoryImpl implements MarkKeyRepository { + + isSetMode(): boolean { + return current.setMode; + } + + enableSetMode(): void { + current.setMode = true; + } + + disabeSetMode(): void { + current.setMode = false; + } + + isJumpMode(): boolean { + return current.jumpMode; + } + + enableJumpMode(): void { + current.jumpMode = true; + } + + disabeJumpMode(): void { + current.jumpMode = false; + } +} |