@morphic-ts/model-algebras
Advanced tools
Comparing version 3.0.0-alpha.4 to 3.0.0-alpha.5
import type { Kind, URIS } from '@morphic-ts/common/es6//HKT'; | ||
import type { AnyEnv } from '@morphic-ts/common/es6/config'; | ||
import type { OfType } from '@morphic-ts/common/es6/core'; | ||
import type { OfType, UnionToIntersection } from '@morphic-ts/common/es6/core'; | ||
/** | ||
@@ -23,14 +23,8 @@ * @since 0.0.1 | ||
intersection: { | ||
<A, B, LA, LB>(types: [OfType<F, LA, A, Env>, OfType<F, LB, B, Env>], name: string): Kind<F, Env, LA & LB, A & B>; | ||
<A, B, C, LA, LB, LC, Env>(types: [OfType<F, LA, A, Env>, OfType<F, LB, B, Env>, OfType<F, LC, C, Env>], name: string): Kind<F, Env, LA & LB & LC, A & B & C>; | ||
<A, B, C, D, LA, LB, LC, LD>(types: [OfType<F, LA, A, Env>, OfType<F, LB, B, Env>, OfType<F, LC, C, Env>, OfType<F, LD, D, Env>], name: string): Kind<F, Env, LA & LB & LC & LD, A & B & C & D>; | ||
<A, B, C, D, E, LA, LB, LC, LD, LE, Env>(types: [ | ||
OfType<F, LA, A, Env>, | ||
OfType<F, LB, B, Env>, | ||
OfType<F, LC, C, Env>, | ||
OfType<F, LD, D, Env>, | ||
OfType<F, LE, E, Env> | ||
], name: string): Kind<F, Env, LA & LB & LC & LD & LE, A & B & C & D & E>; | ||
<L, A, Env>(types: Array<OfType<F, L, A, Env>>, name: string): Kind<F, Env, Array<L>, Array<A>>; | ||
<Types extends readonly OfType<F, any, any, Env>[]>(types: Types, name: string): Kind<F, Env, UnionToIntersection<{ | ||
[k in keyof Types]: Types[k] extends OfType<F, infer LA, infer A, Env> ? unknown extends LA ? never : LA : never; | ||
}[number]>, UnionToIntersection<{ | ||
[k in keyof Types]: Types[k] extends OfType<F, infer LA, infer A, Env> ? unknown extends A ? never : A : never; | ||
}[number]>>; | ||
}; | ||
} |
import type { AnyEnv } from '@morphic-ts/common/es6/config'; | ||
import type { OfType } from '@morphic-ts/common/es6/core'; | ||
import type { Kind, URIS } from '@morphic-ts/common/es6/HKT'; | ||
import type { HKT, Kind, URIS } from '@morphic-ts/common/es6/HKT'; | ||
import type { Either } from 'fp-ts/es6/Either'; | ||
/** | ||
@@ -23,14 +23,8 @@ * @since 0.0.1 | ||
union: { | ||
<A, B, LA, LB>(types: [OfType<F, LA, A, Env>, OfType<F, LB, B, Env>], name: string): Kind<F, Env, LA | LB, A | B>; | ||
<A, B, C, LA, LB, LC>(types: [OfType<F, LA, A, Env>, OfType<F, LB, B, Env>, OfType<F, LC, C, Env>], name: string): Kind<F, Env, LA | LB | LC, A | B | C>; | ||
<A, B, C, D, LA, LB, LC, LD>(types: [OfType<F, LA, A, Env>, OfType<F, LB, B, Env>, OfType<F, LC, C, Env>, OfType<F, LD, D, Env>], name: string): Kind<F, Env, LA | LB | LC | LD, A | B | C | D>; | ||
<A, B, C, D, E, LA, LB, LC, LD, LE>(types: [ | ||
OfType<F, LA, A, Env>, | ||
OfType<F, LB, B, Env>, | ||
OfType<F, LC, C, Env>, | ||
OfType<F, LD, D, Env>, | ||
OfType<F, LE, E, Env> | ||
], name: string): Kind<F, Env, LA | LB | LC | LD | LE, A | B | C | D | E>; | ||
<L, A>(types: Array<OfType<F, L, A, Env>>, name: string): Kind<F, Env, Array<L>, Array<A>>; | ||
<Types extends readonly [Kind<F, Env, any, any>, ...Kind<F, Env, any, any>[]]>(types: Types): (guards: { | ||
[k in keyof Types]: (_: { | ||
[h in keyof Types]: Types[h] extends Kind<F, Env, infer E, infer A> ? A : never; | ||
}[number]) => Types[k] extends HKT<any, any, any> ? Either<Exclude<Types[number]['_A'], Types[k]['_A']>, Types[k]['_A']> : never; | ||
}, name: string) => Kind<F, Env, Types[number]['_E'], Types[number]['_A']>; | ||
}; | ||
} |
import type { Kind, URIS } from '@morphic-ts/common/lib//HKT'; | ||
import type { AnyEnv } from '@morphic-ts/common/lib/config'; | ||
import type { OfType } from '@morphic-ts/common/lib/core'; | ||
import type { OfType, UnionToIntersection } from '@morphic-ts/common/lib/core'; | ||
/** | ||
@@ -23,14 +23,8 @@ * @since 0.0.1 | ||
intersection: { | ||
<A, B, LA, LB>(types: [OfType<F, LA, A, Env>, OfType<F, LB, B, Env>], name: string): Kind<F, Env, LA & LB, A & B>; | ||
<A, B, C, LA, LB, LC, Env>(types: [OfType<F, LA, A, Env>, OfType<F, LB, B, Env>, OfType<F, LC, C, Env>], name: string): Kind<F, Env, LA & LB & LC, A & B & C>; | ||
<A, B, C, D, LA, LB, LC, LD>(types: [OfType<F, LA, A, Env>, OfType<F, LB, B, Env>, OfType<F, LC, C, Env>, OfType<F, LD, D, Env>], name: string): Kind<F, Env, LA & LB & LC & LD, A & B & C & D>; | ||
<A, B, C, D, E, LA, LB, LC, LD, LE, Env>(types: [ | ||
OfType<F, LA, A, Env>, | ||
OfType<F, LB, B, Env>, | ||
OfType<F, LC, C, Env>, | ||
OfType<F, LD, D, Env>, | ||
OfType<F, LE, E, Env> | ||
], name: string): Kind<F, Env, LA & LB & LC & LD & LE, A & B & C & D & E>; | ||
<L, A, Env>(types: Array<OfType<F, L, A, Env>>, name: string): Kind<F, Env, Array<L>, Array<A>>; | ||
<Types extends readonly OfType<F, any, any, Env>[]>(types: Types, name: string): Kind<F, Env, UnionToIntersection<{ | ||
[k in keyof Types]: Types[k] extends OfType<F, infer LA, infer A, Env> ? unknown extends LA ? never : LA : never; | ||
}[number]>, UnionToIntersection<{ | ||
[k in keyof Types]: Types[k] extends OfType<F, infer LA, infer A, Env> ? unknown extends A ? never : A : never; | ||
}[number]>>; | ||
}; | ||
} |
import type { AnyEnv } from '@morphic-ts/common/lib/config'; | ||
import type { OfType } from '@morphic-ts/common/lib/core'; | ||
import type { Kind, URIS } from '@morphic-ts/common/lib/HKT'; | ||
import type { HKT, Kind, URIS } from '@morphic-ts/common/lib/HKT'; | ||
import type { Either } from 'fp-ts/lib/Either'; | ||
/** | ||
@@ -23,14 +23,8 @@ * @since 0.0.1 | ||
union: { | ||
<A, B, LA, LB>(types: [OfType<F, LA, A, Env>, OfType<F, LB, B, Env>], name: string): Kind<F, Env, LA | LB, A | B>; | ||
<A, B, C, LA, LB, LC>(types: [OfType<F, LA, A, Env>, OfType<F, LB, B, Env>, OfType<F, LC, C, Env>], name: string): Kind<F, Env, LA | LB | LC, A | B | C>; | ||
<A, B, C, D, LA, LB, LC, LD>(types: [OfType<F, LA, A, Env>, OfType<F, LB, B, Env>, OfType<F, LC, C, Env>, OfType<F, LD, D, Env>], name: string): Kind<F, Env, LA | LB | LC | LD, A | B | C | D>; | ||
<A, B, C, D, E, LA, LB, LC, LD, LE>(types: [ | ||
OfType<F, LA, A, Env>, | ||
OfType<F, LB, B, Env>, | ||
OfType<F, LC, C, Env>, | ||
OfType<F, LD, D, Env>, | ||
OfType<F, LE, E, Env> | ||
], name: string): Kind<F, Env, LA | LB | LC | LD | LE, A | B | C | D | E>; | ||
<L, A>(types: Array<OfType<F, L, A, Env>>, name: string): Kind<F, Env, Array<L>, Array<A>>; | ||
<Types extends readonly [Kind<F, Env, any, any>, ...Kind<F, Env, any, any>[]]>(types: Types): (guards: { | ||
[k in keyof Types]: (_: { | ||
[h in keyof Types]: Types[h] extends Kind<F, Env, infer E, infer A> ? A : never; | ||
}[number]) => Types[k] extends HKT<any, any, any> ? Either<Exclude<Types[number]['_A'], Types[k]['_A']>, Types[k]['_A']> : never; | ||
}, name: string) => Kind<F, Env, Types[number]['_E'], Types[number]['_A']>; | ||
}; | ||
} |
{ | ||
"name": "@morphic-ts/model-algebras", | ||
"version": "3.0.0-alpha.4", | ||
"version": "3.0.0-alpha.5", | ||
"description": "Morphic definitions for models", | ||
@@ -69,3 +69,3 @@ "author": "Stéphane Le Dorze <stephane.ledorze@gmail.com>", | ||
}, | ||
"gitHead": "bfecb6c0a52cbbd27891ac1e10a08a20ed78b2f0" | ||
"gitHead": "d489f4fffb9287128d361226f030485f9aadd9e4" | ||
} |
38361
1107