UNPKG

@shedevro/assert

Version:

Assertion typescript library for better, comfortable and safe coding. See readme!

100 lines (99 loc) 5.47 kB
declare namespace Types { type One = string; type OneNullable = One | null; type Array = One[]; type ArrayNullable = Array | null; } declare namespace String { type AssertsTemplate<R> = { string(value: unknown, message?: string): asserts value is R; }; type ValueIsTemplate<R> = { string(value: unknown): value is R; }; } declare namespace EmptyString { type AssertsTemplate<R> = { emptyString(value: unknown, message?: string): asserts value is R; }; type ValueIsTemplate<R> = { emptyString(value: unknown): value is R; }; } declare namespace Contains { type AssertsTemplate<R> = { contains(value: unknown, subString: string, message?: string): asserts value is R; }; type ValueIsTemplate<R> = { contains(value: unknown, subString: string): value is R; }; } declare namespace StartsWith { type AssertsTemplate<R> = { startsWith(value: unknown, prefix: string, message?: string): asserts value is R; }; type ValueIsTemplate<R> = { startsWith(value: unknown, prefix: string): value is R; }; } declare namespace EndsWith { type AssertsTemplate<R> = { endsWith(value: unknown, suffix: string, message?: string): asserts value is R; }; type ValueIsTemplate<R> = { endsWith(value: unknown, suffix: string): value is R; }; } declare namespace OneOf { namespace Asserts { type One = { oneOf<T extends string>(value: unknown, values: T[], message?: string): asserts value is T; }; type OneNullable = { oneOf<T extends string>(value: unknown, values: T[], message?: string): asserts value is T | null; }; type Array = { oneOf<T extends string>(value: unknown, values: T[], message?: string): asserts value is T[]; }; type ArrayNullable = { oneOf<T extends string>(value: unknown, values: T[], message?: string): asserts value is T[] | null; }; type Not = { oneOf<T extends string>(value: unknown, values: T[], message?: string): void; }; } namespace ValueIs { type One = { oneOf<T extends (string | number)>(value: unknown, values: T[]): value is T; }; type OneNullable = { oneOf<T extends (string | number)>(value: unknown, values: T[]): value is T | null; }; type Array = { oneOf<T extends (string | number)>(value: unknown, values: T[]): value is T[]; }; type ArrayNullable = { oneOf<T extends (string | number)>(value: unknown, values: T[]): value is T[] | null; }; type Not = { oneOf<T extends (string | number)>(value: unknown, values: T[]): value is boolean; }; } } export declare namespace StringFunctions { namespace Asserts { type One = String.AssertsTemplate<Types.One> & EmptyString.AssertsTemplate<Types.One> & Contains.AssertsTemplate<Types.One> & StartsWith.AssertsTemplate<Types.One> & EndsWith.AssertsTemplate<Types.One> & OneOf.Asserts.One; type OneNullable = String.AssertsTemplate<Types.OneNullable> & EmptyString.AssertsTemplate<Types.OneNullable> & Contains.AssertsTemplate<Types.OneNullable> & StartsWith.AssertsTemplate<Types.OneNullable> & EndsWith.AssertsTemplate<Types.OneNullable> & OneOf.Asserts.OneNullable; type Array = String.AssertsTemplate<Types.Array> & EmptyString.AssertsTemplate<Types.Array> & Contains.AssertsTemplate<Types.Array> & StartsWith.AssertsTemplate<Types.Array> & EndsWith.AssertsTemplate<Types.Array> & OneOf.Asserts.Array; type ArrayNullable = String.AssertsTemplate<Types.ArrayNullable> & EmptyString.AssertsTemplate<Types.ArrayNullable> & Contains.AssertsTemplate<Types.ArrayNullable> & StartsWith.AssertsTemplate<Types.ArrayNullable> & EndsWith.AssertsTemplate<Types.ArrayNullable> & OneOf.Asserts.ArrayNullable; type Not = EmptyString.AssertsTemplate<Types.One> & Contains.AssertsTemplate<Types.One> & StartsWith.AssertsTemplate<Types.One> & EndsWith.AssertsTemplate<Types.One> & OneOf.Asserts.Not; } namespace ValueIs { type One = String.ValueIsTemplate<Types.One> & EmptyString.ValueIsTemplate<Types.One> & Contains.ValueIsTemplate<Types.One> & StartsWith.ValueIsTemplate<Types.One> & EndsWith.ValueIsTemplate<Types.One> & OneOf.ValueIs.One; type OneNullable = String.ValueIsTemplate<Types.OneNullable> & EmptyString.ValueIsTemplate<Types.OneNullable> & Contains.ValueIsTemplate<Types.OneNullable> & StartsWith.ValueIsTemplate<Types.OneNullable> & EndsWith.ValueIsTemplate<Types.OneNullable> & OneOf.ValueIs.OneNullable; type Array = String.ValueIsTemplate<Types.Array> & EmptyString.ValueIsTemplate<Types.Array> & Contains.ValueIsTemplate<Types.Array> & StartsWith.ValueIsTemplate<Types.Array> & EndsWith.ValueIsTemplate<Types.Array> & OneOf.ValueIs.Array; type ArrayNullable = String.ValueIsTemplate<Types.ArrayNullable> & EmptyString.ValueIsTemplate<Types.ArrayNullable> & Contains.ValueIsTemplate<Types.ArrayNullable> & StartsWith.ValueIsTemplate<Types.ArrayNullable> & EndsWith.ValueIsTemplate<Types.ArrayNullable> & OneOf.ValueIs.ArrayNullable; type Not = EmptyString.ValueIsTemplate<Types.One> & Contains.ValueIsTemplate<Types.One> & StartsWith.ValueIsTemplate<Types.One> & EndsWith.ValueIsTemplate<Types.One> & OneOf.ValueIs.Not; } } export {};