Overview

Basic Type Compare


Table of contents


Compare (interface)

Compare two object is equal.

Signature

interface Compare {}

Added in v0.2.0

BasicCompareType (type alias)

Baisc compare type

Signature

export type BasicCompareType = 'string' | 'number' | 'boolean' | 'date' | 'enum'

Added in v0.2.0

CompareBoolean (type alias)

Boolean compare interface

Signature

export type CompareBoolean<A = boolean> = {
  eq: Compare<A, A>
  not: Compare<A, A>
}

Added in v0.2.0

CompareEnum (type alias)

Enum compare interface

Signature

export type CompareEnum<A> = CompareBoolean<A> & {
  in: Compare<A[], A>
  not_in: Compare<A[], A>
}

Added in v0.2.0

CompareNumber (type alias)

Number compare interface

Signature

export type CompareNumber<A = number> = CompareBoolean<A> & {
  lt: Compare<A, A>
  gt: Compare<A, A>
  lte: Compare<A, A>
  gte: Compare<A, A>
  between: Compare<{ low: A; hi: A }, A>
}

Added in v0.2.0

CompareString (type alias)

String compare interface

Signature

export type CompareString<A extends string = string> = CompareNumber<A> & {
  not_contains: Compare<A, A>
  not_starts_with: Compare<A, A>
  not_ends_with: Compare<A, A>
  not_in: Compare<A[], A>
  starts_with: Compare<A, A>
  ends_with: Compare<A, A>
  contains: Compare<A, A>
  in: Compare<A[], A>
  pattern: Compare<A[] | A, A>
}

Added in v0.2.0

GetFirstParam (type alias)

Get first param type with Compare

Signature

export type GetFirstParam<T> = T extends Compare<infer U, any> ? U : never

Example

import { GetFirstParam } from 'macoolka-compare'
type Fisrt = GetFirstParam<(a: number) => (b: string) => boolean>
//First = number

Added in v0.2.0

BasicConditionNames (constant)

The contain all compare function name by type

Signature


export const BasicConditionNames: { string: string[]; number: string[]; boolean: string[]; enum: string[]; date: string[]; } = ...

Added in v0.2.0

compare (constant)

The contain all compare function by type

Signature


export const compare: { string: CompareString<any>; number: CompareNumber<any>; boolean: CompareBoolean<any>; date: CompareNumber<Date>; enum: CompareEnum<string>; } = ...

Added in v0.2.0

compareBoolean (constant)

BooleanCompare instance

Signature


export const compareBoolean: CompareBoolean<any> = ...

Added in v0.2.0

compareDate (constant)

Date compare instance

Signature


export const compareDate: CompareNumber<Date> = ...

Added in v0.2.0

compareEnum (constant)

CompareEnum instance

Signature


export const compareEnum: CompareEnum<string> = ...

Added in v0.2.0

compareNumber (constant)

CompareNumber instance

Signature


export const compareNumber: CompareNumber<any> = ...

Added in v0.2.0

compareString (constant)

CompareString instance

Signature


export const compareString: CompareString<any> = ...

Added in v0.2.0

fromEq (function)

From Eq to CompareBoolean instance

Added in v0.2.0

fromOrd (function)

From Ord to CompareNumber Instance

Added in v0.2.0