@shedevro/assert
Version:
Assertion typescript library for better, comfortable and safe coding. See readme!
80 lines (79 loc) • 4.95 kB
TypeScript
declare namespace Types {
type One = number;
type OneNullable = One | null;
type Array = One[];
type ArrayNullable = Array | null;
}
declare namespace Number {
type AssertsTemplate<R> = {
number(value: unknown, message?: string): asserts value is R;
};
type ValueIsTemplate<R> = {
number(value: unknown): value is R;
};
}
declare namespace Natural {
type AssertsTemplate<R> = {
natural(value: unknown, message?: string): asserts value is R;
};
type ValueIsTemplate<R> = {
natural(value: unknown): value is R;
};
}
declare namespace GreaterThan {
type AssertsTemplate<R> = {
greaterThan(value: unknown, limit: number, message?: string): asserts value is R;
};
type ValueIsTemplate<R> = {
greaterThan(value: unknown, limit: number): value is R;
};
}
declare namespace GreaterThanOrEqual {
type AssertsTemplate<R> = {
greaterThanOrEqual(value: unknown, limit: number, message?: string): asserts value is R;
};
type ValueIsTemplate<R> = {
greaterThanOrEqual(value: unknown, limit: number): value is R;
};
}
declare namespace LessThan {
type AssertsTemplate<R> = {
lessThan(value: unknown, limit: number, message?: string): asserts value is R;
};
type ValueIsTemplate<R> = {
lessThan(value: unknown, limit: number): value is R;
};
}
declare namespace LessThanOrEqual {
type AssertsTemplate<R> = {
lessThanOrEqual(value: unknown, limit: number, message?: string): asserts value is R;
};
type ValueIsTemplate<R> = {
lessThanOrEqual(value: unknown, limit: number): value is R;
};
}
declare namespace Range {
type AssertsTemplate<R> = {
range(value: unknown, min: number, max: number, message?: string): asserts value is R;
};
type ValueIsTemplate<R> = {
range(value: unknown, min: number, max: number): value is R;
};
}
export declare namespace NumberFunctions {
namespace Asserts {
type One = Number.AssertsTemplate<Types.One> & Natural.AssertsTemplate<Types.One> & GreaterThan.AssertsTemplate<Types.One> & GreaterThanOrEqual.AssertsTemplate<Types.One> & LessThan.AssertsTemplate<Types.One> & LessThanOrEqual.AssertsTemplate<Types.One> & Range.AssertsTemplate<Types.One>;
type OneNullable = Number.AssertsTemplate<Types.OneNullable> & Natural.AssertsTemplate<Types.OneNullable> & GreaterThan.AssertsTemplate<Types.OneNullable> & GreaterThanOrEqual.AssertsTemplate<Types.OneNullable> & LessThan.AssertsTemplate<Types.OneNullable> & LessThanOrEqual.AssertsTemplate<Types.OneNullable> & Range.AssertsTemplate<Types.OneNullable>;
type Array = Number.AssertsTemplate<Types.Array> & Natural.AssertsTemplate<Types.Array> & GreaterThan.AssertsTemplate<Types.Array> & GreaterThanOrEqual.AssertsTemplate<Types.Array> & LessThan.AssertsTemplate<Types.Array> & LessThanOrEqual.AssertsTemplate<Types.Array> & Range.AssertsTemplate<Types.Array>;
type ArrayNullable = Number.AssertsTemplate<Types.ArrayNullable> & Natural.AssertsTemplate<Types.ArrayNullable> & GreaterThan.AssertsTemplate<Types.ArrayNullable> & GreaterThanOrEqual.AssertsTemplate<Types.ArrayNullable> & LessThan.AssertsTemplate<Types.ArrayNullable> & LessThanOrEqual.AssertsTemplate<Types.ArrayNullable> & Range.AssertsTemplate<Types.ArrayNullable>;
type Not = Natural.AssertsTemplate<Types.One> & Range.AssertsTemplate<Types.One>;
}
namespace ValueIs {
type One = Number.ValueIsTemplate<Types.One> & Natural.ValueIsTemplate<Types.One> & GreaterThan.ValueIsTemplate<Types.One> & GreaterThanOrEqual.ValueIsTemplate<Types.One> & LessThan.ValueIsTemplate<Types.One> & LessThanOrEqual.ValueIsTemplate<Types.One> & Range.ValueIsTemplate<Types.One>;
type OneNullable = Number.ValueIsTemplate<Types.OneNullable> & Natural.ValueIsTemplate<Types.OneNullable> & GreaterThan.ValueIsTemplate<Types.OneNullable> & GreaterThanOrEqual.ValueIsTemplate<Types.OneNullable> & LessThan.ValueIsTemplate<Types.OneNullable> & LessThanOrEqual.ValueIsTemplate<Types.OneNullable> & Range.ValueIsTemplate<Types.OneNullable>;
type Array = Number.ValueIsTemplate<Types.Array> & Natural.ValueIsTemplate<Types.Array> & GreaterThan.ValueIsTemplate<Types.Array> & GreaterThanOrEqual.ValueIsTemplate<Types.Array> & LessThan.ValueIsTemplate<Types.Array> & LessThanOrEqual.ValueIsTemplate<Types.Array> & Range.ValueIsTemplate<Types.Array>;
type ArrayNullable = Number.ValueIsTemplate<Types.ArrayNullable> & Natural.ValueIsTemplate<Types.ArrayNullable> & GreaterThan.ValueIsTemplate<Types.ArrayNullable> & GreaterThanOrEqual.ValueIsTemplate<Types.ArrayNullable> & LessThan.ValueIsTemplate<Types.ArrayNullable> & LessThanOrEqual.ValueIsTemplate<Types.ArrayNullable> & Range.ValueIsTemplate<Types.ArrayNullable>;
type Not = Natural.ValueIsTemplate<Types.One> & Range.ValueIsTemplate<Types.One>;
}
}
export {};