diff --git a/deno.json b/deno.json index 18db7e6..87c3251 100644 --- a/deno.json +++ b/deno.json @@ -26,12 +26,9 @@ "./controls": "./src/controls.ts", "./event-emitter": "./src/event_emitter.ts", "./input": "./src/input.ts", - "./input/keyboard": "./src/input_reader/decoders/keyboard.ts", - "./input/mouse": "./src/input_reader/decoders/mouse.ts", - "./input-reader": "./src/input_reader/mod.ts", - "./input-reader/decoders/keyboard": "./src/input_reader/decoders/keyboard.ts", - "./input-reader/decoders/mouse": "./src/input_reader/decoders/mouse.ts", - "./input-reader/types": "./src/input_reader/types.ts", + "./input/keyboard": "./src/input/keyboard.ts", + "./input/mouse": "./src/input/mouse.ts", + "./input/types": "./src/input/types.ts", "./layout": "./src/layout/mod.ts", "./layout/errors": "./src/layout/errors.ts", "./layout/grid": "./src/layout/grid_layout.ts", diff --git a/deno.lock b/deno.lock new file mode 100644 index 0000000..4c55752 --- /dev/null +++ b/deno.lock @@ -0,0 +1,11 @@ +{ + "version": "5", + "specifiers": { + "jsr:@crayon/crayon@4.0.0-alpha.4": "4.0.0-alpha.4" + }, + "jsr": { + "@crayon/crayon@4.0.0-alpha.4": { + "integrity": "812afa0488d6b2a3691d23540493b2280e627ed0aa88ed8161625327b24467b2" + } + } +} diff --git a/src/input.ts b/src/input.ts index 8576eda..a8bac4c 100644 --- a/src/input.ts +++ b/src/input.ts @@ -1,6 +1,8 @@ // Copyright 2023 Im-Beast. MIT license. import type { Tui } from "./tui.ts"; -import { emitInputEvents } from "./input_reader/mod.ts"; +import { emitInputEvents } from "./input/mod.ts"; + +export * from "./input/mod.ts"; /** Emit input events to Tui */ export async function handleInput(tui: Tui): Promise { diff --git a/src/input_reader/decoders/keyboard.ts b/src/input/keyboard.ts similarity index 97% rename from src/input_reader/decoders/keyboard.ts rename to src/input/keyboard.ts index 3159362..d58b48c 100644 --- a/src/input_reader/decoders/keyboard.ts +++ b/src/input/keyboard.ts @@ -1,6 +1,6 @@ -// Copyright 2023 Im-Beast. MIT license. +3// Copyright 2023 Im-Beast. MIT license. /** Decode code sequence to {KeyPress} object. */ -import type { Alphabet, Key, KeyPressEvent } from "../types.ts"; +import type { Alphabet, Key, KeyPressEvent } from "./types.ts"; const lowerCaseAlphabet = "abcdefghijklmnopqrstuvwxyz"; diff --git a/src/input_reader/mod.ts b/src/input/mod.ts similarity index 94% rename from src/input_reader/mod.ts rename to src/input/mod.ts index bc799b6..76954e2 100644 --- a/src/input_reader/mod.ts +++ b/src/input/mod.ts @@ -7,8 +7,8 @@ import type { MouseScrollEvent, } from "./types.ts"; import type { Stdin } from "../types.ts"; -import { decodeMouseSGR, decodeMouseVT_UTF8 } from "./decoders/mouse.ts"; -import { decodeKey } from "./decoders/keyboard.ts"; +import { decodeMouseSGR, decodeMouseVT_UTF8 } from "./mouse.ts"; +import { decodeKey } from "./keyboard.ts"; import type { EmitterEvent, EventEmitter } from "../event_emitter.ts"; export type InputEventRecord = { @@ -25,7 +25,7 @@ export async function emitInputEvents( stdin: Stdin, emitter: EventEmitter, minReadInterval = 1000 / 60, -) { +): Promise { try { stdin.setRaw(true, { cbreak: Deno.build.os !== "windows" }); } catch { diff --git a/src/input_reader/decoders/mouse.ts b/src/input/mouse.ts similarity index 98% rename from src/input_reader/decoders/mouse.ts rename to src/input/mouse.ts index afd567f..92f2f34 100644 --- a/src/input_reader/decoders/mouse.ts +++ b/src/input/mouse.ts @@ -3,7 +3,7 @@ import type { MouseEvent, MousePressEvent, MouseScrollEvent, -} from "../types.ts"; +} from "./types.ts"; let mouseEvent: MouseEvent = { key: "mouse", @@ -11,7 +11,7 @@ let mouseEvent: MouseEvent = { y: 0, movementX: 0, movementY: 0, - buffer: undefined as unknown as Uint8Array, + buffer: undefined!, shift: false, ctrl: false, meta: false, @@ -32,7 +32,7 @@ export function decodeMouseSGR( ): MousePressEvent | MouseScrollEvent | undefined { const action = code.at(-1); if (!code.startsWith("\x1b[<") || (action !== "m" && action !== "M")) { - return undefined; + return undefined;SSS } const release = action === "m"; diff --git a/src/input_reader/types.ts b/src/input/types.ts similarity index 97% rename from src/input_reader/types.ts rename to src/input/types.ts index 76c563b..e00d78b 100644 --- a/src/input_reader/types.ts +++ b/src/input/types.ts @@ -1,4 +1,3 @@ -// Copyright 2023 Im-Beast. MIT license. import type { Range } from "../types.ts"; /** Interface defining key press issued to stdin */