free-types-core 0.5.0 → 0.6.1

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.
package/dist/Type.d.ts CHANGED
@@ -10,19 +10,10 @@ interface CreateType<T extends {
10
10
  type: unknown;
11
11
  constraints: unknown[];
12
12
  }> {
13
+ [k: number]: unknown;
13
14
  type: T['type'];
14
15
  constraints: T['constraints'];
15
16
  arguments: unknown[];
16
- 0: unknown;
17
- 1: unknown;
18
- 2: unknown;
19
- 3: unknown;
20
- 4: unknown;
21
- 5: unknown;
22
- 6: unknown;
23
- 7: unknown;
24
- 8: unknown;
25
- 9: unknown;
26
17
  }
27
18
  declare type Slots<T> = T extends Precomputable ? PrecomputedSlots[T & Precomputable] : Tuple<T extends unknown[] ? T['length'] : T extends number ? T : number>;
28
19
  declare type Constraints<Input, Slots> = number extends Input ? unknown[] : unknown[] extends Input ? unknown[] : Input extends unknown[] ? Input : Slots;
package/dist/utils.d.ts CHANGED
@@ -9,7 +9,9 @@ declare type _Next = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
9
9
  declare type Subtract<A extends number, B extends number> = number extends A ? number : number extends B ? number : _Subtract<A, B>;
10
10
  declare type _Subtract<A extends number, B extends number, _A = Prev<A>, _B = Prev<B>> = B extends 0 ? A : [_A] extends [never] ? never : [_B] extends never ? never : _Subtract<_A & number, _B & number>;
11
11
  declare type ArrayKeys = Exclude<keyof [], never>;
12
- declare type Slice<T extends unknown[], From extends number, To extends number = Required<T>['length'], I extends number = From, R extends unknown[] = []> = I extends To ? R : Slice<T, From, To, Next<I>, IsOptional<T, I> extends true ? [...R, T[I]?] : [...R, T[I]]>;
12
+ declare type Slice<T extends unknown[], From extends number, To extends number = Required<T>['length'], I extends number = From, R extends unknown[] = []> = number extends To ? SliceOpenEndedTuple<T, From> : SliceTuple<T, From, To, I, R>;
13
+ declare type SliceOpenEndedTuple<T extends unknown[], From extends number> = From extends 0 ? T : T extends [unknown, ...infer R] ? SliceOpenEndedTuple<R, Prev<From>> : never;
14
+ declare type SliceTuple<T extends unknown[], From extends number, To extends number = Required<T>['length'], I extends number = From, R extends unknown[] = []> = I extends To ? R : Slice<T, From, To, Next<I>, IsOptional<T, I> extends true ? [...R, T[I]?] : [...R, T[I]]>;
13
15
  declare type IsOptional<T extends unknown[], I extends number> = [
14
16
  {
15
17
  [K in T['length'] as K]: K extends I ? never : unknown;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "free-types-core",
3
- "version": "0.5.0",
3
+ "version": "0.6.1",
4
4
  "description": "A type-level library enabling the creation and the manipulation of type constructors which are detached from their type parameters.",
5
5
  "keywords:": [
6
6
  "higher kinded type",