概述

对象比较模型


目录


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 中添加