Skip to content

Commit

Permalink
0.0.9-beta
Browse files Browse the repository at this point in the history
  • Loading branch information
SOVLOOKUP committed Oct 3, 2023
1 parent a13552c commit 3b36a7f
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 15 deletions.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,10 @@ pnpm add rubick-native
{
"time": { "secs_since_epoch": 1695999163, "nanos_since_epoch": 631148700 }, // 触发时间
"name": "a", // 输入内容
"event_type": { "KeyPress": "KeyA" } // 事件类型
"event": {
"type":"KeyPress", // 事件类型
"value": "KeyA" // 事件值
}
}
```

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "rubick-native",
"version": "0.0.8",
"version": "0.0.9-beta",
"type": "module",
"main": "dist/index.js",
"module": "dist/index.js",
Expand Down
34 changes: 21 additions & 13 deletions src/monitor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,16 +120,15 @@ export interface MouseKeyBoardEventOther {
nanos_since_epoch: number
},
name: null,
event_type: {
"KeyRelease": EventKeyType
event: {
type: "KeyRelease" | "ButtonPress" | "ButtonRelease"
value: EventKeyType
} | {
"ButtonPress": EventBtnType
type: "MouseMove"
value: { x: number, y: number }
} | {
"ButtonRelease": EventBtnType
} | {
"MouseMove": { x: number, y: number }
} | {
"Wheel": { delta_x: number, delta_y: number }
type: "Wheel",
value: { delta_x: number, delta_y: number }
}
}

Expand All @@ -139,12 +138,21 @@ export interface MouseKeyBoardEventKeyPress {
nanos_since_epoch: number
},
name: string,
event_type: {
"KeyPress": EventKeyType
event: {
type: "KeyPress"
value: EventKeyType
}
}

export type MouseKeyBoardEvent = MouseKeyBoardEventOther | MouseKeyBoardEventKeyPress

export const onInputEvent = (callback: (event: MouseKeyBoardEvent) => void) => oie((event) => callback(JSON.parse(event)))
export const grabInputEvent = (callback: (event: MouseKeyBoardEvent) => boolean) => gie((event) => callback(JSON.parse(event)))
const parse = (e: string) => {
const event = JSON.parse(e)
const [type, value] = Object.entries(event.event_type).pop()!
return {
time: event.time,
name: event.name,
event: { type, value }
} as MouseKeyBoardEvent
}
export const onInputEvent = (callback: (event: MouseKeyBoardEvent) => void) => oie((event) => callback(parse(event)))
export const grabInputEvent = (callback: (event: MouseKeyBoardEvent) => boolean) => gie((event) => callback(parse(event)))
3 changes: 3 additions & 0 deletions test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { grabInputEvent } from "./src"

grabInputEvent((event) => {
// if (event.event.type === "Wheel") {
// console.log(event);
// }
console.log(event);
return true
})
Expand Down

0 comments on commit 3b36a7f

Please sign in to comment.