hkt-toolbelt
Advanced tools
Comparing version 0.6.1 to 0.7.0
{ | ||
"name": "hkt-toolbelt", | ||
"version": "0.6.1", | ||
"version": "0.7.0", | ||
"description": "A collection of useful HKT utilities and building blocks", | ||
@@ -5,0 +5,0 @@ "types": "./dist/index.d.ts", |
@@ -22,3 +22,3 @@ import { Cast, Conditional, Kind, List } from "."; | ||
} | ||
declare type _$simpleSplit<S extends string> = string extends S ? [string] : S extends `${infer Head}${infer Tail}` ? [Head, ..._$simpleSplit<Tail>] : []; | ||
declare type _$simpleSplit<S extends string, O extends string[] = []> = string extends S ? [string] : S extends `${infer Head}${infer Tail}` ? _$simpleSplit<Tail, [...O, Head]> : O; | ||
export declare type _$isTemplate<S extends string> = string extends S ? false : List._$some<Conditional.Equals<string>, _$simpleSplit<S>>; | ||
@@ -36,2 +36,10 @@ export declare abstract class IsTemplate extends Kind { | ||
} | ||
export declare type _$first<S extends string> = S extends `${infer Head}${string}` ? Head : string extends S ? S : ""; | ||
export declare abstract class First extends Kind { | ||
abstract f: (x: Cast<this[Kind._], string>) => _$first<typeof x>; | ||
} | ||
export declare type _$last<S extends string> = S extends `${string}${infer Tail}` ? Tail extends "" ? S : _$last<Tail> : string extends S ? S : ""; | ||
export declare abstract class Last extends Kind { | ||
abstract f: (x: Cast<this[Kind._], string>) => _$last<typeof x>; | ||
} | ||
export * as String from "./string"; |
15100
239