wok-server 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +47 -0
- package/dist/cache/cache.js +94 -0
- package/dist/cache/config.js +19 -0
- package/dist/cache/index.js +27 -0
- package/dist/cache/purge-task.js +56 -0
- package/dist/cache/stat.js +47 -0
- package/dist/config/convert.js +36 -0
- package/dist/config/exception.js +14 -0
- package/dist/config/index.js +67 -0
- package/dist/http-client/index.js +132 -0
- package/dist/i18n/ar.js +17 -0
- package/dist/i18n/de.js +17 -0
- package/dist/i18n/en-us.js +17 -0
- package/dist/i18n/es.js +17 -0
- package/dist/i18n/fr.js +17 -0
- package/dist/i18n/i18n.js +231 -0
- package/dist/i18n/index.js +52 -0
- package/dist/i18n/ja.js +17 -0
- package/dist/i18n/ko.js +17 -0
- package/dist/i18n/msg.js +2 -0
- package/dist/i18n/pt.js +17 -0
- package/dist/i18n/ru.js +17 -0
- package/dist/i18n/tag.js +18 -0
- package/dist/i18n/zh-HK.js +17 -0
- package/dist/i18n/zh-TW.js +17 -0
- package/dist/i18n/zh-cn.js +17 -0
- package/dist/index.js +13 -0
- package/dist/log/config.js +28 -0
- package/dist/log/date.js +21 -0
- package/dist/log/file.js +79 -0
- package/dist/log/index.js +109 -0
- package/dist/log/level.js +39 -0
- package/dist/log/store.js +16 -0
- package/dist/mongodb/collection.js +2 -0
- package/dist/mongodb/config.js +34 -0
- package/dist/mongodb/doc.js +2 -0
- package/dist/mongodb/exception.js +14 -0
- package/dist/mongodb/index.js +58 -0
- package/dist/mongodb/manager/base.js +563 -0
- package/dist/mongodb/manager/index.js +63 -0
- package/dist/mongodb/manager/tx-strict.js +84 -0
- package/dist/mongodb/manager/tx.js +30 -0
- package/dist/mongodb/migration.js +52 -0
- package/dist/mvc/access-log.js +31 -0
- package/dist/mvc/config.js +20 -0
- package/dist/mvc/exchange.js +113 -0
- package/dist/mvc/handler/index.js +6 -0
- package/dist/mvc/handler/json.js +33 -0
- package/dist/mvc/handler/restful.js +35 -0
- package/dist/mvc/handler/upload.js +33 -0
- package/dist/mvc/index.js +316 -0
- package/dist/mvc/interceptor.js +2 -0
- package/dist/mvc/query.js +43 -0
- package/dist/mvc/render/file.js +177 -0
- package/dist/mvc/render/html/html.js +90 -0
- package/dist/mvc/render/html/index.js +18 -0
- package/dist/mvc/render/html/style.js +2 -0
- package/dist/mvc/render/index.js +7 -0
- package/dist/mvc/render/json.js +26 -0
- package/dist/mvc/render/text.js +16 -0
- package/dist/mvc/router.js +2 -0
- package/dist/mysql/config.js +49 -0
- package/dist/mysql/exception.js +14 -0
- package/dist/mysql/index.js +85 -0
- package/dist/mysql/manager/base.js +233 -0
- package/dist/mysql/manager/index.js +107 -0
- package/dist/mysql/manager/ops/count.js +20 -0
- package/dist/mysql/manager/ops/criteria.js +326 -0
- package/dist/mysql/manager/ops/delete.js +65 -0
- package/dist/mysql/manager/ops/exist.js +26 -0
- package/dist/mysql/manager/ops/find.js +111 -0
- package/dist/mysql/manager/ops/index.js +14 -0
- package/dist/mysql/manager/ops/insert.js +101 -0
- package/dist/mysql/manager/ops/modify.js +10 -0
- package/dist/mysql/manager/ops/paginate.js +23 -0
- package/dist/mysql/manager/ops/query.js +9 -0
- package/dist/mysql/manager/ops/update.js +201 -0
- package/dist/mysql/manager/tx-strict.js +98 -0
- package/dist/mysql/manager/tx.js +30 -0
- package/dist/mysql/manager/utils.js +56 -0
- package/dist/mysql/migration.js +136 -0
- package/dist/mysql/table-info.js +8 -0
- package/dist/task/daily.js +58 -0
- package/dist/task/fixed-delay.js +33 -0
- package/dist/task/fixed-rate.js +37 -0
- package/dist/task/index.js +9 -0
- package/dist/task/task.js +39 -0
- package/dist/validation/exception.js +44 -0
- package/dist/validation/index.js +29 -0
- package/dist/validation/validator/array.js +38 -0
- package/dist/validation/validator/enum.js +28 -0
- package/dist/validation/validator/index.js +14 -0
- package/dist/validation/validator/length.js +40 -0
- package/dist/validation/validator/max-length.js +35 -0
- package/dist/validation/validator/max.js +29 -0
- package/dist/validation/validator/min-length.js +33 -0
- package/dist/validation/validator/min.js +29 -0
- package/dist/validation/validator/not-blank.js +33 -0
- package/dist/validation/validator/not-null.js +21 -0
- package/dist/validation/validator/plain-obj.js +32 -0
- package/dist/validation/validator/regexp.js +30 -0
- package/documentation/en/index.md +1 -0
- package/documentation/zh-cn/cache.md +59 -0
- package/documentation/zh-cn/config.md +68 -0
- package/documentation/zh-cn/http-client.md +33 -0
- package/documentation/zh-cn/i18n.md +154 -0
- package/documentation/zh-cn/index.md +25 -0
- package/documentation/zh-cn/log.md +40 -0
- package/documentation/zh-cn/mongodb.md +262 -0
- package/documentation/zh-cn/mvc.md +430 -0
- package/documentation/zh-cn/mysql.md +389 -0
- package/documentation/zh-cn/task.md +50 -0
- package/documentation/zh-cn/test.md +57 -0
- package/documentation/zh-cn/validate.md +125 -0
- package/package.json +46 -0
- package/types/cache/cache.d.ts +52 -0
- package/types/cache/config.d.ts +32 -0
- package/types/cache/index.d.ts +2 -0
- package/types/cache/purge-task.d.ts +11 -0
- package/types/cache/stat.d.ts +26 -0
- package/types/config/convert.d.ts +6 -0
- package/types/config/exception.d.ts +7 -0
- package/types/config/index.d.ts +15 -0
- package/types/http-client/index.d.ts +71 -0
- package/types/i18n/ar.d.ts +2 -0
- package/types/i18n/de.d.ts +2 -0
- package/types/i18n/en-us.d.ts +2 -0
- package/types/i18n/es.d.ts +2 -0
- package/types/i18n/fr.d.ts +2 -0
- package/types/i18n/i18n.d.ts +102 -0
- package/types/i18n/index.d.ts +9 -0
- package/types/i18n/ja.d.ts +2 -0
- package/types/i18n/ko.d.ts +2 -0
- package/types/i18n/msg.d.ts +50 -0
- package/types/i18n/pt.d.ts +2 -0
- package/types/i18n/ru.d.ts +2 -0
- package/types/i18n/tag.d.ts +11 -0
- package/types/i18n/zh-HK.d.ts +2 -0
- package/types/i18n/zh-TW.d.ts +2 -0
- package/types/i18n/zh-cn.d.ts +2 -0
- package/types/index.d.ts +10 -0
- package/types/log/config.d.ts +27 -0
- package/types/log/date.d.ts +2 -0
- package/types/log/file.d.ts +5 -0
- package/types/log/index.d.ts +34 -0
- package/types/log/level.d.ts +15 -0
- package/types/log/store.d.ts +12 -0
- package/types/mongodb/collection.d.ts +25 -0
- package/types/mongodb/config.d.ts +45 -0
- package/types/mongodb/doc.d.ts +11 -0
- package/types/mongodb/exception.d.ts +7 -0
- package/types/mongodb/index.d.ts +29 -0
- package/types/mongodb/manager/base.d.ts +188 -0
- package/types/mongodb/manager/index.d.ts +38 -0
- package/types/mongodb/manager/tx-strict.d.ts +41 -0
- package/types/mongodb/manager/tx.d.ts +21 -0
- package/types/mongodb/migration.d.ts +12 -0
- package/types/mvc/access-log.d.ts +7 -0
- package/types/mvc/config.d.ts +30 -0
- package/types/mvc/exchange.d.ts +72 -0
- package/types/mvc/handler/index.d.ts +3 -0
- package/types/mvc/handler/json.d.ts +23 -0
- package/types/mvc/handler/restful.d.ts +11 -0
- package/types/mvc/handler/upload.d.ts +40 -0
- package/types/mvc/index.d.ts +49 -0
- package/types/mvc/interceptor.d.ts +11 -0
- package/types/mvc/query.d.ts +13 -0
- package/types/mvc/render/file.d.ts +10 -0
- package/types/mvc/render/html/html.d.ts +98 -0
- package/types/mvc/render/html/index.d.ts +11 -0
- package/types/mvc/render/html/style.d.ts +1201 -0
- package/types/mvc/render/index.d.ts +4 -0
- package/types/mvc/render/json.d.ts +17 -0
- package/types/mvc/render/text.d.ts +10 -0
- package/types/mvc/router.d.ts +11 -0
- package/types/mysql/config.d.ts +86 -0
- package/types/mysql/exception.d.ts +7 -0
- package/types/mysql/index.d.ts +16 -0
- package/types/mysql/manager/base.d.ts +158 -0
- package/types/mysql/manager/index.d.ts +36 -0
- package/types/mysql/manager/ops/count.d.ts +13 -0
- package/types/mysql/manager/ops/criteria.d.ts +120 -0
- package/types/mysql/manager/ops/delete.d.ts +46 -0
- package/types/mysql/manager/ops/exist.d.ts +6 -0
- package/types/mysql/manager/ops/find.d.ts +66 -0
- package/types/mysql/manager/ops/index.d.ts +10 -0
- package/types/mysql/manager/ops/insert.d.ts +18 -0
- package/types/mysql/manager/ops/modify.d.ts +3 -0
- package/types/mysql/manager/ops/paginate.d.ts +36 -0
- package/types/mysql/manager/ops/query.d.ts +3 -0
- package/types/mysql/manager/ops/update.d.ts +70 -0
- package/types/mysql/manager/tx-strict.d.ts +34 -0
- package/types/mysql/manager/tx.d.ts +15 -0
- package/types/mysql/manager/utils.d.ts +17 -0
- package/types/mysql/migration.d.ts +8 -0
- package/types/mysql/table-info.d.ts +36 -0
- package/types/task/daily.d.ts +15 -0
- package/types/task/fixed-delay.d.ts +8 -0
- package/types/task/fixed-rate.d.ts +8 -0
- package/types/task/index.d.ts +4 -0
- package/types/task/task.d.ts +33 -0
- package/types/validation/exception.d.ts +43 -0
- package/types/validation/index.d.ts +32 -0
- package/types/validation/validator/array.d.ts +5 -0
- package/types/validation/validator/enum.d.ts +8 -0
- package/types/validation/validator/index.d.ts +11 -0
- package/types/validation/validator/length.d.ts +10 -0
- package/types/validation/validator/max-length.d.ts +8 -0
- package/types/validation/validator/max.d.ts +7 -0
- package/types/validation/validator/min-length.d.ts +6 -0
- package/types/validation/validator/min.d.ts +7 -0
- package/types/validation/validator/not-blank.d.ts +7 -0
- package/types/validation/validator/not-null.d.ts +6 -0
- package/types/validation/validator/plain-obj.d.ts +7 -0
- package/types/validation/validator/regexp.d.ts +8 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { PoolConnection } from 'mysql2';
|
|
2
|
+
import { Table } from '../../table-info';
|
|
3
|
+
import { MixCriteria } from './criteria';
|
|
4
|
+
import { MysqlConfig } from '../../config';
|
|
5
|
+
/**
|
|
6
|
+
* 更新
|
|
7
|
+
* @param config
|
|
8
|
+
* @param connection
|
|
9
|
+
* @param mapping
|
|
10
|
+
* @param data
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
export declare function update<T>(config: MysqlConfig, connection: PoolConnection, table: Table<T>, data: T): Promise<T>;
|
|
14
|
+
/**
|
|
15
|
+
* 更新器
|
|
16
|
+
*/
|
|
17
|
+
export type Updater<T> = Partial<{
|
|
18
|
+
[key in keyof T]: T[key] | undefined | ['setNull'] | ['inc', number];
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* 部分更新
|
|
22
|
+
* @param connection
|
|
23
|
+
* @param mapping
|
|
24
|
+
* @param type
|
|
25
|
+
* @param data
|
|
26
|
+
*/
|
|
27
|
+
export declare function partialUpdate<T>(config: MysqlConfig, connection: PoolConnection, table: Table<T>, data: Updater<T>): Promise<boolean>;
|
|
28
|
+
/**
|
|
29
|
+
* 更新指定的一条记录
|
|
30
|
+
* @param config
|
|
31
|
+
* @param connection
|
|
32
|
+
* @param table
|
|
33
|
+
* @param query
|
|
34
|
+
* @param data
|
|
35
|
+
*/
|
|
36
|
+
export declare function updateOne<T>(config: MysqlConfig, connection: PoolConnection, table: Table<T>, query: Partial<T>, updater: Updater<T>): Promise<boolean>;
|
|
37
|
+
/**
|
|
38
|
+
* 更新选项
|
|
39
|
+
*/
|
|
40
|
+
export interface UpdateOpts<T> {
|
|
41
|
+
/**
|
|
42
|
+
* 表
|
|
43
|
+
*/
|
|
44
|
+
table: Table<T>;
|
|
45
|
+
/**
|
|
46
|
+
* 查询条件
|
|
47
|
+
*/
|
|
48
|
+
query: MixCriteria<T>;
|
|
49
|
+
/**
|
|
50
|
+
* 限制数量
|
|
51
|
+
*/
|
|
52
|
+
limit?: number;
|
|
53
|
+
/**
|
|
54
|
+
* 排序规则,按先后顺序放入,每个规则是一个元组,第一个元素是字段名称,第二个元素是顺序
|
|
55
|
+
*/
|
|
56
|
+
orderBy?: Array<[keyof T, 'asc' | 'desc']>;
|
|
57
|
+
/**
|
|
58
|
+
* 更新设置
|
|
59
|
+
*/
|
|
60
|
+
updater: Updater<T>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* 更新所有匹配条件的记录
|
|
64
|
+
* @param config
|
|
65
|
+
* @param connection 连接
|
|
66
|
+
* @param table 表
|
|
67
|
+
* @param query 查询条件
|
|
68
|
+
* @param updater 更新操作,支持置空和递增(需要使用元组)
|
|
69
|
+
*/
|
|
70
|
+
export declare function updateMany<T>(config: MysqlConfig, connection: PoolConnection, opts: UpdateOpts<T>): Promise<number>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { PoolConnection } from 'mysql2';
|
|
2
|
+
import { MysqlConfig } from '../config';
|
|
3
|
+
import { MysqlTxSession } from './tx';
|
|
4
|
+
import { Table } from '../table-info';
|
|
5
|
+
import { DeleteManyOpts, FindOpts, MixCriteria, MysqlPage, MysqlPaginateOpts, UpdateOpts, Updater } from './ops';
|
|
6
|
+
/**
|
|
7
|
+
* 严格 mysql 事务会话,会禁用一些操作.
|
|
8
|
+
*/
|
|
9
|
+
export declare class MysqlStrictTxSession extends MysqlTxSession {
|
|
10
|
+
#private;
|
|
11
|
+
constructor(config: MysqlConfig, conn: PoolConnection);
|
|
12
|
+
findById<T>(table: Table<T>, id: string | number): Promise<T | null>;
|
|
13
|
+
findByIdIn<T>(table: Table<T>, ids: (string | number)[]): Promise<T[]>;
|
|
14
|
+
existsBy<T>(table: Table<T>, criteria?: MixCriteria<T> | undefined): Promise<boolean>;
|
|
15
|
+
existsById<T>(table: Table<T>, id: string | number): Promise<boolean>;
|
|
16
|
+
deleteById<T>(table: Table<T>, id: string | number): Promise<boolean>;
|
|
17
|
+
deleteOne<T>(table: Table<T>, criteria: Partial<T>): Promise<boolean>;
|
|
18
|
+
deleteMany<T>(opts: DeleteManyOpts<T>): Promise<number>;
|
|
19
|
+
findAll<T>(table: Table<T>): Promise<T[]>;
|
|
20
|
+
findFirst<T>(table: Table<T>, criteria?: MixCriteria<T> | undefined): Promise<T | null>;
|
|
21
|
+
insert<T>(table: Table<T>, data: T): Promise<T>;
|
|
22
|
+
insertMany<T>(table: Table<T>, list: T[]): Promise<void>;
|
|
23
|
+
update<T>(table: Table<T>, data: T): Promise<T>;
|
|
24
|
+
updateMany<T>(opts: UpdateOpts<T>): Promise<number>;
|
|
25
|
+
updateOne<T>(table: Table<T>, query: Partial<T>, updater: Partial<{
|
|
26
|
+
[key in keyof T]: ['setNull'] | ['inc', number] | T[key] | undefined;
|
|
27
|
+
}>): Promise<boolean>;
|
|
28
|
+
partialUpdate<T>(table: Table<T>, data: Updater<T>): Promise<boolean>;
|
|
29
|
+
find<T>(opts: FindOpts<T>): Promise<T[]>;
|
|
30
|
+
count<T>(table: Table<T>, criteria?: MixCriteria<T> | undefined): Promise<number>;
|
|
31
|
+
paginate<T>(opts: MysqlPaginateOpts<T>): Promise<MysqlPage<T>>;
|
|
32
|
+
query<T>(sql: string, values?: any[] | undefined): Promise<T[]>;
|
|
33
|
+
modify(sql: string, values?: any[] | undefined): Promise<number>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PoolConnection } from 'mysql2';
|
|
2
|
+
import { BaseMysqlManager } from './base';
|
|
3
|
+
import { MysqlConfig } from '../config';
|
|
4
|
+
/**
|
|
5
|
+
* mysql 事务会话.
|
|
6
|
+
*/
|
|
7
|
+
export declare class MysqlTxSession extends BaseMysqlManager {
|
|
8
|
+
#private;
|
|
9
|
+
constructor(config: MysqlConfig, conn: PoolConnection);
|
|
10
|
+
protected queryWithConnection<T>(queryFn: (conn: PoolConnection) => Promise<T>): Promise<T>;
|
|
11
|
+
/**
|
|
12
|
+
* 中止,被中止后的会话不能再进行任何操作
|
|
13
|
+
*/
|
|
14
|
+
abort(): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Connection, OkPacket, Pool, PoolConnection, ResultSetHeader, RowDataPacket } from 'mysql2';
|
|
2
|
+
import { MysqlConfig } from '../config';
|
|
3
|
+
/**
|
|
4
|
+
* 查询,适用于各种 sql 的执行
|
|
5
|
+
* @param config
|
|
6
|
+
* @param conn
|
|
7
|
+
* @param sql
|
|
8
|
+
* @param values
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function promiseQuery(config: MysqlConfig, conn: Connection, sql: string, values?: any[]): Promise<OkPacket | ResultSetHeader | RowDataPacket[] | [RowDataPacket[], ResultSetHeader] | ResultSetHeader[] | RowDataPacket[][] | OkPacket[]>;
|
|
12
|
+
/**
|
|
13
|
+
* 获取连接
|
|
14
|
+
* @param pool
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
export declare function promiseGetConnection(pool: Pool): Promise<PoolConnection>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ValidationOpts } from '../validation';
|
|
2
|
+
/**
|
|
3
|
+
* 表信息. 表的字段分为三个部分:主键、普通列、时间列,分别对应的属性是:id、columns
|
|
4
|
+
* 和 createDate 还有 updatedDate,这三部分配置的字段名称不允许有重叠,否则会产生错误.
|
|
5
|
+
*/
|
|
6
|
+
export interface Table<T> {
|
|
7
|
+
/**
|
|
8
|
+
* 表名.
|
|
9
|
+
*/
|
|
10
|
+
tableName: string;
|
|
11
|
+
/**
|
|
12
|
+
* id 字段名称.
|
|
13
|
+
*/
|
|
14
|
+
id: keyof T;
|
|
15
|
+
/**
|
|
16
|
+
* 列字段名称.只有配置了名称的字段才会参与数据库的查询与更新,没有配置的其它字段可作其它用途。
|
|
17
|
+
* 注意:columns 配置的字段不能和 id 或更新时间和创建时间重叠,否则在更新时产生错误,将数据改错。
|
|
18
|
+
* 程序本身是不会做检查的,编写的时候必须要注意。
|
|
19
|
+
*/
|
|
20
|
+
columns: Array<keyof T>;
|
|
21
|
+
/**
|
|
22
|
+
* 创建时间字段信息.
|
|
23
|
+
*/
|
|
24
|
+
createdDate?: {
|
|
25
|
+
column: keyof T;
|
|
26
|
+
type: 'number' | 'date';
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* 更新时间字段信息.
|
|
30
|
+
*/
|
|
31
|
+
updatedDate?: {
|
|
32
|
+
column: keyof T;
|
|
33
|
+
type: 'number' | 'date';
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export declare const tableValidation: ValidationOpts<Table<any>>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Task, TaskController } from './task';
|
|
2
|
+
/**
|
|
3
|
+
* 每日任务.
|
|
4
|
+
* @param hours 时
|
|
5
|
+
* @param minutes 分
|
|
6
|
+
* @param task 要执行的任务
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export declare function scheduleDailyTask(hours: number, minutes: number, task: Task): TaskController;
|
|
10
|
+
/**
|
|
11
|
+
* 计算到下次指定时间点的延迟
|
|
12
|
+
* @param hours
|
|
13
|
+
* @param minutes
|
|
14
|
+
*/
|
|
15
|
+
export declare function dailyTaskDelay(hours: number, minutes: number): number;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Task, TaskController } from './task';
|
|
2
|
+
/**
|
|
3
|
+
* 固定延迟执行任务
|
|
4
|
+
* @param initialDelay 第一次执行延迟的时间,单位秒
|
|
5
|
+
* @param delay 每次的延迟时间,单位秒
|
|
6
|
+
* @param task 任务
|
|
7
|
+
*/
|
|
8
|
+
export declare function scheduleWithFixedDelay(initialDelay: number, delay: number, task: Task): TaskController;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Task, TaskController } from './task';
|
|
2
|
+
/**
|
|
3
|
+
* 固定延迟执行任务
|
|
4
|
+
* @param initialDelay 第一次执行延迟的时间,单位秒
|
|
5
|
+
* @param period 每次的延迟时间,单位秒
|
|
6
|
+
* @param task 任务
|
|
7
|
+
*/
|
|
8
|
+
export declare function scheduleWithFixedRate(initialDelay: number, period: number, task: Task): TaskController;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 任务.
|
|
3
|
+
*/
|
|
4
|
+
export interface Task {
|
|
5
|
+
/**
|
|
6
|
+
* 任务的名称,用于跟踪任务的执行情况,定位错误.
|
|
7
|
+
* 当任务执行时间过长或任务失败时,相关的错误提示信息会显示名称,以便于排查.
|
|
8
|
+
*/
|
|
9
|
+
name: string;
|
|
10
|
+
/**
|
|
11
|
+
* 任务运行.
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
run: () => Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 任务控制器
|
|
18
|
+
*/
|
|
19
|
+
export declare class TaskController {
|
|
20
|
+
#private;
|
|
21
|
+
isStopped(): boolean;
|
|
22
|
+
stop(): void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 任务执行,封装任务执行过程中的一些通用信息输出和异常控制.
|
|
26
|
+
* @param task
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
29
|
+
export declare function execTask(task: Task): Promise<{
|
|
30
|
+
start: number;
|
|
31
|
+
cost: number;
|
|
32
|
+
end: number;
|
|
33
|
+
}>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 校验异常.
|
|
3
|
+
*/
|
|
4
|
+
export declare class ValidationException {
|
|
5
|
+
/**
|
|
6
|
+
* 异常信息,如 “不能为空” 之类的.
|
|
7
|
+
*/
|
|
8
|
+
readonly errMsg: string;
|
|
9
|
+
/**
|
|
10
|
+
* 校验器名称,如 length 、notNull 之类的.
|
|
11
|
+
*/
|
|
12
|
+
readonly validator: string;
|
|
13
|
+
/**
|
|
14
|
+
* 校验出错的路径.
|
|
15
|
+
*/
|
|
16
|
+
readonly propertyPath: string;
|
|
17
|
+
/**
|
|
18
|
+
* 值
|
|
19
|
+
*/
|
|
20
|
+
readonly val: any;
|
|
21
|
+
constructor(
|
|
22
|
+
/**
|
|
23
|
+
* 异常信息,如 “不能为空” 之类的.
|
|
24
|
+
*/
|
|
25
|
+
errMsg: string,
|
|
26
|
+
/**
|
|
27
|
+
* 校验器名称,如 length 、notNull 之类的.
|
|
28
|
+
*/
|
|
29
|
+
validator: string,
|
|
30
|
+
/**
|
|
31
|
+
* 校验出错的路径.
|
|
32
|
+
*/
|
|
33
|
+
propertyPath: string,
|
|
34
|
+
/**
|
|
35
|
+
* 值
|
|
36
|
+
*/
|
|
37
|
+
val: any);
|
|
38
|
+
/**
|
|
39
|
+
* 对错误的完整描述信息,用于日志记录.
|
|
40
|
+
*/
|
|
41
|
+
desc(): string;
|
|
42
|
+
get message(): string;
|
|
43
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 校验结果。message:错误信息,反馈给调用处;validator 校验器名称,用于记录错误信息来自哪个校验器,
|
|
3
|
+
* 以便于程序在出错时知道信息来自哪里。
|
|
4
|
+
*/
|
|
5
|
+
export type ValidationResult = {
|
|
6
|
+
ok: true;
|
|
7
|
+
} | {
|
|
8
|
+
ok: false;
|
|
9
|
+
message: string;
|
|
10
|
+
validator: string;
|
|
11
|
+
/**
|
|
12
|
+
* 如果校验的是层级深的对象,内部的属性发生了错误,可用于标记属性的路径
|
|
13
|
+
*/
|
|
14
|
+
propPath?: string[];
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* 校验器.
|
|
18
|
+
*/
|
|
19
|
+
export type PropValidator<T> = (val: T) => ValidationResult;
|
|
20
|
+
/**
|
|
21
|
+
* 对象的校验选项
|
|
22
|
+
*/
|
|
23
|
+
export type ValidationOpts<T> = Partial<{
|
|
24
|
+
[key in keyof T]: PropValidator<T[key]>[];
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* 校验对象.
|
|
28
|
+
* @param obj
|
|
29
|
+
*/
|
|
30
|
+
export declare function validate<T>(obj: T, opts: ValidationOpts<T>): void;
|
|
31
|
+
export * from './exception';
|
|
32
|
+
export * from './validator';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './not-null';
|
|
2
|
+
export * from './not-blank';
|
|
3
|
+
export * from './max';
|
|
4
|
+
export * from './min';
|
|
5
|
+
export * from './regexp';
|
|
6
|
+
export * from './length';
|
|
7
|
+
export * from './enum';
|
|
8
|
+
export * from './array';
|
|
9
|
+
export * from './plain-obj';
|
|
10
|
+
export * from './max-length';
|
|
11
|
+
export * from './min-length';
|