概述
对象比较模型
目录
- CompareFunctions (类型)
- CompareModel (类型)
- CompareModelStruct (类型)
- CompareObjectModelDefinition (类型)
- PredicateOption (类型)
- WhereCompareModel (类型)
- WhereCompareModelT (类型)
- WhereInputModel (类型)
- WhereInputModel1 (类型)
- compareModel (函数)
- getCompare (函数)
- getWherePropsName (函数)
- parseToCompareModel (函数)
- parseToWherePropName (函数)
CompareFunctions (类型)
比较函数集合
由名称和函数组成
签名
export type CompareFunctions = {
[k: string]: Compare<any, any>
}
v0.2.0 中添加
CompareModel (类型)
比较模型
比较 WhereInputModel 和 Model
签名
export type CompareModel<
W extends Record<string, any> = Record<string, any>,
T extends Record<string, any> = Record<string, any>
> = (where: WhereInputModel<W>) => PredicateOption<T>
示例
WhereInputModel:
{
name_starts_with:'刘',
age_lt: 34
}
Model
{
name:'刘兴',
age:30
}
v0.2.0 中添加
CompareModelStruct (类型)
CompareModel Group by type
签名
export type CompareModelStruct = Record<string, CompareModel>
v0.2.0 中添加
CompareObjectModelDefinition (类型)
比较模型定义
签名
export type CompareObjectModelDefinition = {
string: Array<string>
number: Array<string>
boolean: Array<string>
enum: Array<string>
date: Array<string>
}
v0.2.0 中添加
PredicateOption (类型)
签名
export type PredicateOption<T> = (a: T) => O.Option<boolean>
v0.2.0 中添加
WhereCompareModel (类型)
签名
export type WhereCompareModel<
W extends Record<string, any> = Record<string, any>,
T extends Record<string, any> = Record<string, any>
> = Compare<WhereInputModel<W>, T>
v0.2.0 中添加
WhereCompareModelT (类型)
签名
export type WhereCompareModelT<
W extends Record<string, any> = Record<string, any>,
T extends Record<string, any> = Record<string, any>
> = Compare<WhereInputModel<W>, T>
v0.2.0 中添加
WhereInputModel (类型)
签名
export type WhereInputModel<T> = T & {
AND?: Array<T> | T
OR?: Array<T> | T
NOT?: Array<T> | T
}
v0.2.0 中添加
WhereInputModel1 (类型)
签名
export type WhereInputModel1<T> = T & {
AND?: Array<WhereInputModel<T>> | WhereInputModel<T>
OR?: Array<WhereInputModel<T>> | WhereInputModel<T>
NOT?: Array<WhereInputModel<T>> | WhereInputModel<T>
}
v0.2.0 中添加
compareModel (函数)
compare WhereInputModel and Model with CompareModel
签名
export const compareModel =
<
W extends Record<string, any> = Record<string, any>,
T extends Record<string, any> = Record<string, any>
>
(whereT: CompareModel<W, T>[]): WhereCompareModel<W, T> => (where: WhereInputModel<W>) => ...
v0.2.0 中添加
getCompare (函数)
使用比较函数集合和模型属性名数组生成比较模型
签名
export const getCompare = (as: CompareFunctions) =>
<
W extends Record<string, any> = Record<string, any>,
T extends Record<string, any> = Record<string, any>
>
(propname: string[]):
CompareModel<W, T>[] => pipe(
propname,
A.map(name =>
pipe(
R.toArray(as),
A.map(([key, value]) => ...
v0.2.0 中添加
getWherePropsName (函数)
签名
export const getWherePropsName = (name: string) => (condition: string) => ...
v0.2.0 中添加
parseToCompareModel (函数)
签名
export const parseToCompareModel =
<
W extends Record<string, any> = Record<string, any>,
T extends Record<string, any> = Record<string, any>
>
(modelWhere: CompareObjectModelDefinition): CompareModel<W, T>[] =>
pipe(
modelWhere,
R.mapWithIndex((key, value) => ...
v0.2.0 中添加
parseToWherePropName (函数)
create a where’s propery name
签名
export const parseToWherePropName = (modelWhere: CompareObjectModelDefinition) =>
pipe(
modelWhere,
R.mapWithIndex((key, value: any) => ...
v0.2.0 中添加