Skip to content

Commit 51f26cc

Browse files
committed
add script lib
1 parent 5624936 commit 51f26cc

11 files changed

Lines changed: 1712 additions & 0 deletions

scripts/lib/README.md

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
## @wecooperate/imonitor
2+
3+
@wecooperate/imonitor[iMonitor(冰镜)](https://imonitorsdk.com/imonitor)的TypeScript扩展声明库。
4+
5+
### 快速开始
6+
7+
```typescript
8+
import { MessageColumn, IMessageColumn, IMessage, MessageType, MessageMatcher, IMessageMatcher, MessageColumnAlign, Icon } from '@wecooperate/imonitor';
9+
import * as path from 'path';
10+
11+
@MessageColumn("TypeScript.FileExt")
12+
class FileExtColumn implements IMessageColumn {
13+
align = MessageColumnAlign.Right;
14+
15+
GetString(msg: IMessage): string {
16+
if (msg.Type > MessageType.RegCreateKey) {
17+
return "";
18+
}
19+
return path.extname(msg.Path);
20+
}
21+
GetTextColor(msg: IMessage): number {
22+
return 0x0000FF;
23+
}
24+
GetBackgroundColor(msg: IMessage): number {
25+
return 0x554444;
26+
}
27+
GetIcon(msg: IMessage): Icon {
28+
return msg.Process.Icon;
29+
}
30+
}
31+
32+
@MessageMatcher("TypeScript.FileExt.PE")
33+
class FileExtMatcher implements IMessageMatcher {
34+
IsMatch(msg: IMessage): boolean {
35+
if (msg.Type > MessageType.RegCreateKey) {
36+
return false;
37+
}
38+
let ext = path.extname(msg.Path).toLowerCase();
39+
return ext === '.exe' || ext === ".dll" || ext === ".sys";
40+
}
41+
}
42+
```
43+
44+
将上面的代码通过TypeScript的Playground功能,可以快速生成JavaScript代码。 [TypeScript Playground](https://www.typescriptlang.org/play?ssl=34&ssc=2&pln=1&pc=1#code/JYWwDg9gTgLgBAbzgWQKYGd0EMDmqDCEANgK4gB2ANHAJJqa4HFlW33Z7XuMAqAnmFRcMHVMiwwAxgAtUUanRGNxU2fJRK8hUhQCCRYDlY1JEcnAC+cAGZQIIOAHIAAgHdUpiIKgTUAelAzYBhoRwBuAFgAKFBIWDgAKjgsdDgwCWkbOwdHdJhpcOjo524tZgoACgAifkEAZUkoYDAYADoAMWAiVABRAA8YKoBKaMkiFNTO7v6YbRY4WO6QVHIYVMUGMp1zBGi4feSDIzgAXg1Npm39Q3JWgCVDaRhIqL2DgHFUGDqYJvIcCogdA4ABcbE0qCGYPQv2A-0QbwOB2A1jggOBrVqqDgAD5zqIsfdUDh8FBUL4ANKoPhDBFRJEMg5kmAkKDmKpVF6M-YWREM5ms8x5aStVADchYZbonCtAAKGSGXIOvPpHy+PDFs2I0GlYI2oihcHIZAARnI6dy4AK2XAAAx9W2O23tdpKnl8z4wABCWEkAGscHYSOQACbaHVA0Hgi6G40gM1QC3c63me0AVjTABZs5m3ZYPV8TGZddGDXrTDs+UiU3BI3K7JIRK0i+Q8yqVcVSmIJDI5NUsQ0mi0Ol1egM5T1hqNxpg4FMxzAVL3E4tUMtVusu0u1En9jR0NuS-rGIaTRBiOTK6rGSi0XWsbj8bwBKgiSSyZTqbTdtfLVavoKNhYEQ6CoHmSIqpa3TwJqpxpBkoripKqDSnKCqtCEAAyEDuFA+ApChipVkyAE2rBJwUU4iGoI4cAAD50XA5GUVUrQhkQRBVPRjHMWcrHoHw6Ccny7bREAA)
45+
46+
脚本加载后使用效果如下:
47+
48+
![](./snapshot.png)
49+
50+
更多使用可以参考examples目录。
51+
52+
### 添加一个列
53+
54+
1. 继承实现IMessageColumn
55+
2. 通过RegisterMessageColumn注册(如果使用typescript,可以用装饰器的方式 @MessageColumn
56+
57+
```typescript
58+
export interface IMessageColumn {
59+
align?: MessageColumnAlign;
60+
width?: number;
61+
description?: string;
62+
63+
GetString(msg: IMessage): string;
64+
65+
GetToolTips?(msg: IMessage): string;
66+
GetTextColor?(msg: IMessage): number;
67+
GetBackgroundColor?(msg: IMessage): number;
68+
GetIcon?(msg: IMessage): Icon;
69+
}
70+
```
71+
72+
| 成员 | 说明 | 是否必须 |
73+
| ------------------ | ------------------------------------------------------------ | -------- |
74+
| GetString | 返回列显示的字符串 ||
75+
| GetToolTips | 返回鼠标hover到列显示的ToolTips ||
76+
| GetBackgroundColor | 返回列的背景颜色 ||
77+
| GetTextColor | 返回列的文字颜色 ||
78+
| GetIcon | 返回列的图标(Icon目前只支持获取进程Icon,未来会添加加载文件Icon) ||
79+
| align | 列对齐方式(靠左、居中、靠右),默认靠左对齐 ||
80+
| width | 列初始化的宽度 | |
81+
| description | 列信息描述说明 | |
82+
83+
### 添加一个自定义规则匹配器
84+
85+
86+
1. 继承实现IMessageMatcher
87+
2. 通过RegisterMessageMatcher注册(如果使用typescript,可以用装饰器的方式 @MessageMatcher
88+
89+
```typescript
90+
export interface IMessageMatcher {
91+
description?: string;
92+
93+
IsMatch(msg: IMessage): boolean;
94+
}
95+
```
96+
97+
| 成员 | 说明 | 是否必须 |
98+
| ----------- | ---------------- | -------- |
99+
| IsMatch | 返回是否匹配 ||
100+
| description | 匹配器的描述说明 ||

scripts/lib/dist/index.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export * from './src/message';
2+
export * from './src/message_column';
3+
export * from './src/message_process';
4+
export * from './src/message_matcher';

0 commit comments

Comments
 (0)