UNPKG

the-wireguard-effect

Version:

Cross platform wireguard api client for nodejs built on wireguard-go with effect-ts

23 lines (19 loc) 774 B
/** @internal */ export type Tail<T extends ReadonlyArray<unknown>> = T extends | [infer _First, ...infer Rest] | readonly [infer _First, ...infer Rest] ? Rest : Array<unknown>; /** @internal */ export type Split<Str extends string, Delimiter extends string> = string extends Str | "" ? Array<string> : Str extends `${infer Head}${Delimiter}${infer Rest}` ? [Head, ...Split<Rest, Delimiter>] : [Str]; /** @internal */ export const tail = <T extends ReadonlyArray<unknown>>(elements: T): Tail<T> => elements.slice(1) as Tail<T>; /** @internal */ export const splitLiteral = <Str extends string, Delimiter extends string>( str: Str, delimiter: Delimiter ): Split<Str, Delimiter> => str.split(delimiter) as Split<Str, Delimiter>;