@domain.js/main 0.3.1 → 0.3.2
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.
|
@@ -18,6 +18,12 @@ export declare function Main(cnf: Cnf, deps: Deps): {
|
|
|
18
18
|
[propName: string]: Sequelize;
|
|
19
19
|
};
|
|
20
20
|
export declare const Deps: string[];
|
|
21
|
+
/** Model 上的 sort 设定类型 */
|
|
22
|
+
export interface ModelSort<Fields extends string> {
|
|
23
|
+
default: Fields;
|
|
24
|
+
allow: Fields[];
|
|
25
|
+
defaultDirection?: "DESC" | "ASC";
|
|
26
|
+
}
|
|
21
27
|
/**
|
|
22
28
|
* Model 基类
|
|
23
29
|
*/
|
|
@@ -49,11 +55,7 @@ export declare class ModelBase<Attrs extends {} = any, Attrs4Create extends {} =
|
|
|
49
55
|
maxResultsLimit: number;
|
|
50
56
|
};
|
|
51
57
|
/** 列表查询时候排序控制参数 */
|
|
52
|
-
static sort?:
|
|
53
|
-
default: string;
|
|
54
|
-
allow: string[];
|
|
55
|
-
defaultDirection?: "DESC" | "ASC";
|
|
56
|
-
};
|
|
58
|
+
static sort?: ModelSort<string>;
|
|
57
59
|
/** 关联资源设定, 除非要关联过滤,否则不要设置资源之间的关联关系 */
|
|
58
60
|
static includes?: {
|
|
59
61
|
[k: string]: {
|
package/dist/http/router.d.ts
CHANGED
|
@@ -25,13 +25,21 @@ export declare function Router(deps: Deps): {
|
|
|
25
25
|
resource: (res: string, routePath?: string) => void;
|
|
26
26
|
};
|
|
27
27
|
declare type TRouter = ReturnType<typeof Router>;
|
|
28
|
-
declare type
|
|
29
|
-
|
|
28
|
+
export declare type ReplaceArrayItem<T extends any[], index extends number, R, S extends any[] = [], L extends number = S["length"]> = T extends [infer A, ...infer rest] ? L extends index ? [...S, R, ...rest] : ReplaceArrayItem<rest, index, R, [...S, A]> : never;
|
|
29
|
+
/** 普通 route 方法名称 */
|
|
30
30
|
declare type Keys = "get" | "post" | "put" | "patch" | "del";
|
|
31
|
+
/** 从servers 路径字符串中提取可用作model的名称,目前还不严谨,聊胜于无 */
|
|
32
|
+
declare type PickModelNames<paths extends string> = paths extends string ? paths extends `${infer F}.${string}` ? F : never : never;
|
|
33
|
+
/** 替换函数的某个参数类型定义 */
|
|
34
|
+
export declare type ParameterReplace<T extends (...args: any[]) => any, Index extends number, TR> = (...args: ReplaceArrayItem<Parameters<T>, Index, TR>) => ReturnType<T>;
|
|
31
35
|
/**
|
|
32
36
|
* 利用领域方法路径类型集合,收窄 methodPath, 同时可以自动提示
|
|
33
37
|
*/
|
|
34
|
-
export declare type NarrowDomainPaths<Paths extends string
|
|
35
|
-
[k in Keys]:
|
|
38
|
+
export declare type NarrowDomainPaths<Paths extends string, ModelNames = PickModelNames<Paths>> = Omit<TRouter, Keys> & {
|
|
39
|
+
[k in Keys]: ParameterReplace<TRouter["get"], 1, Paths>;
|
|
40
|
+
} & {
|
|
41
|
+
model: ParameterReplace<TRouter["model"], 0, ModelNames>;
|
|
42
|
+
collection: ParameterReplace<ParameterReplace<TRouter["collection"], 0, ModelNames>, 2, ModelNames>;
|
|
43
|
+
resource: ParameterReplace<TRouter["resource"], 0, ModelNames>;
|
|
36
44
|
};
|
|
37
45
|
export {};
|