hkt-toolbelt
Advanced tools
Comparing version 0.5.1 to 0.6.0
@@ -13,3 +13,3 @@ import $, { Boolean, Cast, Kind } from "."; | ||
export declare abstract class Find<F extends Kind<(x: never) => boolean>> extends Kind { | ||
abstract f: (x: Cast<this[Kind._], unknown[]>) => _$find<F, typeof x>; | ||
abstract f: (x: Cast<this[Kind._], Kind.InputOf<F>[]>) => _$find<F, typeof x>; | ||
} | ||
@@ -21,3 +21,3 @@ export declare type _$filter<F extends Kind, X extends unknown[]> = X extends [ | ||
export declare abstract class Filter<F extends Kind<(x: never) => boolean>> extends Kind { | ||
abstract f: (x: Cast<this[Kind._], unknown[]>) => _$filter<F, typeof x>; | ||
abstract f: (x: Cast<this[Kind._], Kind.InputOf<F>[]>) => _$filter<F, typeof x>; | ||
} | ||
@@ -29,3 +29,3 @@ export declare type _$includes<F extends Kind, X extends unknown[]> = X extends [ | ||
export declare abstract class Includes<F extends Kind<(x: never) => boolean>> extends Kind { | ||
abstract f: (x: Cast<this[Kind._], unknown[]>) => _$includes<F, typeof x>; | ||
abstract f: (x: Cast<this[Kind._], Kind.InputOf<F>[]>) => _$includes<F, typeof x>; | ||
} | ||
@@ -71,2 +71,6 @@ export declare type _$push<X, T extends unknown[]> = [...T, X]; | ||
} | ||
export declare type _$isVariadic<T extends unknown[]> = number extends T["length"] ? true : false; | ||
export declare abstract class IsVariadic extends Kind { | ||
abstract f: (x: Cast<this[Kind._], unknown[]>) => _$isVariadic<typeof x>; | ||
} | ||
export * as List from "./list"; |
{ | ||
"name": "hkt-toolbelt", | ||
"version": "0.5.1", | ||
"version": "0.6.0", | ||
"description": "A collection of useful HKT utilities and building blocks", | ||
@@ -5,0 +5,0 @@ "types": "./dist/index.d.ts", |
@@ -1,2 +0,2 @@ | ||
import { Cast, Kind } from "."; | ||
import { Cast, Conditional, Kind, List } from "."; | ||
export declare type _$startsWith<Prefix extends string, S extends string> = S extends `${Prefix}${string}` ? true : false; | ||
@@ -22,2 +22,15 @@ export declare abstract class StartsWith<Prefix extends string> extends Kind { | ||
} | ||
declare type _$simpleSplit<S extends string> = string extends S ? [string] : S extends `${infer Head}${infer Tail}` ? [Head, ..._$simpleSplit<Tail>] : []; | ||
export declare type _$isTemplate<S extends string> = string extends S ? false : List._$some<Conditional.Equals<string>, _$simpleSplit<S>>; | ||
export declare abstract class IsTemplate extends Kind { | ||
abstract f: (x: Cast<this[Kind._], string>) => _$isTemplate<typeof x>; | ||
} | ||
export declare type _$join<T extends string[], D extends string = ""> = List._$isVariadic<T> extends true ? string : T extends [infer Head, ...infer Tail] ? Tail extends [] ? Head : `${Cast<Head, string>}${D}${_$join<Cast<Tail, string[]>, D>}` : string[] extends T ? string : ""; | ||
export declare abstract class Join<D extends string = ""> extends Kind { | ||
abstract f: (x: Cast<this[Kind._], string[]>) => _$join<typeof x, D>; | ||
} | ||
export declare type _$split<S extends string, Delimiter extends string = ""> = _$isTemplate<Delimiter> extends true ? string[] : string extends Delimiter ? string[] : S extends `${infer Head}${Delimiter}${infer Tail}` ? [Head, ..._$split<Tail, Delimiter>] : S extends Delimiter ? [] : [S]; | ||
export declare abstract class Split<Delimiter extends string = ""> extends Kind { | ||
abstract f: (x: Cast<this[Kind._], string>) => _$split<typeof x, Delimiter>; | ||
} | ||
export * as String from "./string"; |
13994
231