diff --git a/ts-types/array-length/ensure.d.ts b/ts-types/array-length/ensure.d.ts index 7c15760..a60a0f5 100644 --- a/ts-types/array-length/ensure.d.ts +++ b/ts-types/array-length/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureArrayLength(value: any, options?: EnsureBaseOptions & EnsureIsOptional): number | null; +declare function ensureArrayLength(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): number; -declare function ensureArrayLength(value: any, options?: EnsureOptions): number; export default ensureArrayLength; diff --git a/ts-types/array-like/ensure.d.ts b/ts-types/array-like/ensure.d.ts index df60e90..299caaa 100644 --- a/ts-types/array-like/ensure.d.ts +++ b/ts-types/array-like/ensure.d.ts @@ -1,7 +1,10 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; type LengthwiseObject = { length: number } & object; -type ArrayLikeEnsureOptions = { allowString?: boolean } | EnsureOptions; +type ArrayLikeEnsureOptions = { allowString?: boolean }; + + +declare function ensureArrayLike(value: any, options?: ArrayLikeEnsureOptions & EnsureBaseOptions & EnsureIsOptional): T[] | string | LengthwiseObject | null; +declare function ensureArrayLike(value: any, options?: ArrayLikeEnsureOptions & EnsureBaseOptions & EnsureIsOptional & EnsureDefault): T[] | string | LengthwiseObject; -declare function ensureArrayLike(value: any, options?: ArrayLikeEnsureOptions): T[] | string | LengthwiseObject; export default ensureArrayLike; diff --git a/ts-types/array/ensure.d.ts b/ts-types/array/ensure.d.ts index a6b162d..cf8f31a 100644 --- a/ts-types/array/ensure.d.ts +++ b/ts-types/array/ensure.d.ts @@ -1,6 +1,9 @@ -import { EnsureFunction, EnsureOptions } from '../ensure'; +import { EnsureFunction, EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; -type EnsureArrayOptions = { ensureItem?: EnsureFunction } | EnsureOptions; +type EnsureArrayOptions = { ensureItem?: EnsureFunction }; + + +declare function ensureArray(value: any, options?: EnsureArrayOptions & EnsureBaseOptions & EnsureIsOptional): T[] | null; +declare function ensureArray(value: any, options?: EnsureArrayOptions & EnsureBaseOptions & EnsureIsOptional & EnsureDefault): T[]; -declare function ensureArray(value: any, options?: EnsureArrayOptions): T[]; export default ensureArray; diff --git a/ts-types/big-int/ensure.d.ts b/ts-types/big-int/ensure.d.ts index de960b0..9c6b4a8 100644 --- a/ts-types/big-int/ensure.d.ts +++ b/ts-types/big-int/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureOptions } from "../ensure"; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureBigInt(value: any, options?: EnsureBaseOptions & EnsureIsOptional): bigint | null; +declare function ensureBigInt(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): bigint; -declare function ensureBigInt(value: any, options?: EnsureOptions): bigint; export default ensureBigInt; diff --git a/ts-types/constructor/ensure.d.ts b/ts-types/constructor/ensure.d.ts index ff215a8..cecc8e8 100644 --- a/ts-types/constructor/ensure.d.ts +++ b/ts-types/constructor/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureFunction, EnsureOptions } from '../ensure'; +import { EnsureFunction, EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureConstructor(value: any, options?: EnsureBaseOptions & EnsureIsOptional): EnsureFunction | object | null; +declare function ensureConstructor(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): EnsureFunction | object; -declare function ensureConstructor(value: any, options?: EnsureOptions): EnsureFunction | object; export default ensureConstructor; diff --git a/ts-types/date/ensure.d.ts b/ts-types/date/ensure.d.ts index 333ceb9..3768b81 100644 --- a/ts-types/date/ensure.d.ts +++ b/ts-types/date/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureDate(value: any, options?: EnsureBaseOptions & EnsureIsOptional): Date | null; +declare function ensureDate(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): Date; -declare function ensureDate(value: any, options?: EnsureOptions): Date; export default ensureDate; diff --git a/ts-types/ensure.d.ts b/ts-types/ensure.d.ts index bc649dd..fb08efd 100644 --- a/ts-types/ensure.d.ts +++ b/ts-types/ensure.d.ts @@ -1,13 +1,21 @@ export type EnsureFunction = (...args: any[]) => any; -export interface EnsureOptions { +export interface EnsureBaseOptions { name?: string; - isOptional?: boolean; - default?: any; errorMessage?: string; errorCode?: number; Error?: ErrorConstructor; } +export interface EnsureIsOptional { + isOptional?: boolean; +} + +export interface EnsureDefault { + default?: T; +} + +type EnsureOptions = EnsureBaseOptions & EnsureIsOptional & EnsureDefault; + type ValidationDatum = [argumentName: string, inputValue: any, ensureFunction: EnsureFunction, options?: object]; type ValidationDatumList = ValidationDatum[]; diff --git a/ts-types/error/ensure.d.ts b/ts-types/error/ensure.d.ts index 61f2d70..4b3ba77 100644 --- a/ts-types/error/ensure.d.ts +++ b/ts-types/error/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureError(value: any, options?: EnsureBaseOptions & EnsureIsOptional): Error | null; +declare function ensureError(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): Error; -declare function ensureError(value: any, options?: EnsureOptions): Error; export default ensureError; diff --git a/ts-types/finite/ensure.d.ts b/ts-types/finite/ensure.d.ts index df37439..3df187b 100644 --- a/ts-types/finite/ensure.d.ts +++ b/ts-types/finite/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureFinite(value: any, options?: EnsureBaseOptions & EnsureIsOptional): number | null; +declare function ensureFinite(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): number; -declare function ensureFinite(value: any, options?: EnsureOptions): number; export default ensureFinite; diff --git a/ts-types/function/ensure.d.ts b/ts-types/function/ensure.d.ts index 758d3ea..20bb430 100644 --- a/ts-types/function/ensure.d.ts +++ b/ts-types/function/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureFunction, EnsureOptions } from '../ensure'; +import { EnsureFunction, EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureFunction(value: any, options?: EnsureBaseOptions & EnsureIsOptional): EnsureFunction | null; +declare function ensureFunction(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): EnsureFunction; -declare function ensureFunction(value: any, options?: EnsureOptions): EnsureFunction; export default ensureFunction; diff --git a/ts-types/integer/ensure.d.ts b/ts-types/integer/ensure.d.ts index d02c939..2bf4548 100644 --- a/ts-types/integer/ensure.d.ts +++ b/ts-types/integer/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureInteger(value: any, options?: EnsureBaseOptions & EnsureIsOptional): number | null; +declare function ensureInteger(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): number; -declare function ensureInteger(value: any, options?: EnsureOptions): number; export default ensureInteger; diff --git a/ts-types/iterable/ensure.d.ts b/ts-types/iterable/ensure.d.ts index d122487..fd3bce6 100644 --- a/ts-types/iterable/ensure.d.ts +++ b/ts-types/iterable/ensure.d.ts @@ -1,6 +1,9 @@ -import { EnsureFunction, EnsureOptions } from '../ensure'; +import { EnsureFunction, EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; -type IterableEnsureOptions = { ensureItem?: EnsureFunction, allowString?: boolean, denyEmpty?: boolean} | EnsureOptions; +type IterableEnsureOptions = { ensureItem?: EnsureFunction, allowString?: boolean, denyEmpty?: boolean}; + + +declare function ensureIterable(value: any, options?: IterableEnsureOptions & EnsureBaseOptions & EnsureIsOptional): T[] | null; +declare function ensureIterable(value: any, options?: IterableEnsureOptions & EnsureBaseOptions & EnsureIsOptional & EnsureDefault): T[]; -declare function ensureIterable(value: any, options?: IterableEnsureOptions): T[]; export default ensureIterable; diff --git a/ts-types/map/ensure.d.ts b/ts-types/map/ensure.d.ts index 3bb171d..a03a7e8 100644 --- a/ts-types/map/ensure.d.ts +++ b/ts-types/map/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureMap(value: any, options?: EnsureBaseOptions & EnsureIsOptional): Map | null; +declare function ensureMap(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault>): Map; -declare function ensureMap(value: any, options?: EnsureOptions): Map; export default ensureMap; diff --git a/ts-types/natural-number/ensure.d.ts b/ts-types/natural-number/ensure.d.ts index 4f9676e..18b1547 100644 --- a/ts-types/natural-number/ensure.d.ts +++ b/ts-types/natural-number/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureNaturalNumber(value: any, options?: EnsureBaseOptions & EnsureIsOptional): number | null; +declare function ensureNaturalNumber(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): number; -declare function ensureNaturalNumber(value: any, options?: EnsureOptions): number; export default ensureNaturalNumber; diff --git a/ts-types/number/ensure.d.ts b/ts-types/number/ensure.d.ts index b25d505..88ed75f 100644 --- a/ts-types/number/ensure.d.ts +++ b/ts-types/number/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureNumber(value: any, options?: EnsureBaseOptions & EnsureIsOptional): number | null; +declare function ensureNumber(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): number; -declare function ensureNumber(value: any, options?: EnsureOptions): number; export default ensureNumber; diff --git a/ts-types/object/ensure.d.ts b/ts-types/object/ensure.d.ts index 8ad8b91..d15cc80 100644 --- a/ts-types/object/ensure.d.ts +++ b/ts-types/object/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureObject(value: any, options?: EnsureBaseOptions & EnsureIsOptional): object | null; +declare function ensureObject(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): object; -declare function ensureObject(value: any, options?: EnsureOptions): object; export default ensureObject; diff --git a/ts-types/plain-function/ensure.d.ts b/ts-types/plain-function/ensure.d.ts index 8f7d878..0017d65 100644 --- a/ts-types/plain-function/ensure.d.ts +++ b/ts-types/plain-function/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureFunction, EnsureOptions } from '../ensure'; +import { EnsureFunction, EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensurePlainFunction(value: any, options?: EnsureBaseOptions & EnsureIsOptional): EnsureFunction | null; +declare function ensurePlainFunction(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): EnsureFunction; -declare function ensurePlainFunction(value: any, options?: EnsureOptions): EnsureFunction; export default ensurePlainFunction; diff --git a/ts-types/plain-object/ensure.d.ts b/ts-types/plain-object/ensure.d.ts index 6b7e646..a9e7bcc 100644 --- a/ts-types/plain-object/ensure.d.ts +++ b/ts-types/plain-object/ensure.d.ts @@ -1,6 +1,9 @@ -import { EnsureFunction, EnsureOptions } from '../ensure'; +import { EnsureFunction, EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; -type PlainObjectEnsureOptions = {allowedKeys?: string[], ensurePropertyValue?: EnsureFunction} | EnsureOptions; +type PlainObjectEnsureOptions = {allowedKeys?: string[], ensurePropertyValue?: EnsureFunction}; + + +declare function ensurePlainObject(value: any, options?: PlainObjectEnsureOptions & EnsureBaseOptions & EnsureIsOptional): object | null; +declare function ensurePlainObject(value: any, options?: PlainObjectEnsureOptions & EnsureBaseOptions & EnsureIsOptional & EnsureDefault): object; -declare function ensurePlainObject(value: any, options?: PlainObjectEnsureOptions): object; export default ensurePlainObject; diff --git a/ts-types/promise/ensure.d.ts b/ts-types/promise/ensure.d.ts index 4e4f1a9..6097c9c 100644 --- a/ts-types/promise/ensure.d.ts +++ b/ts-types/promise/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensurePromise(value: any, options?: EnsureBaseOptions & EnsureIsOptional): Promise | null; +declare function ensurePromise(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault>): Promise; -declare function ensurePromise(value: any, options?: EnsureOptions): Promise; export default ensurePromise; diff --git a/ts-types/reg-exp/ensure.d.ts b/ts-types/reg-exp/ensure.d.ts index e9dbcdb..85a4192 100644 --- a/ts-types/reg-exp/ensure.d.ts +++ b/ts-types/reg-exp/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureRegExp(value: any, options?: EnsureBaseOptions & EnsureIsOptional): RegExp | null; +declare function ensureRegExp(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): RegExp; -declare function ensureRegExp(value: any, options?: EnsureOptions): RegExp; export default ensureRegExp; diff --git a/ts-types/safe-integer/ensure.d.ts b/ts-types/safe-integer/ensure.d.ts index 646d13e..5b1fdd6 100644 --- a/ts-types/safe-integer/ensure.d.ts +++ b/ts-types/safe-integer/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureSafeInteger(value: any, options?: EnsureBaseOptions & EnsureIsOptional): number | null; +declare function ensureSafeInteger(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): number; -declare function ensureSafeInteger(value: any, options?: EnsureOptions): number; export default ensureSafeInteger; diff --git a/ts-types/set/ensure.d.ts b/ts-types/set/ensure.d.ts index 57c152e..d6a2311 100644 --- a/ts-types/set/ensure.d.ts +++ b/ts-types/set/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureSet(value: any, options?: EnsureBaseOptions & EnsureIsOptional): Set | null; +declare function ensureSet(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault>): Set; -declare function ensureSet(value: any, options?: EnsureOptions): Set; export default ensureSet; diff --git a/ts-types/string/ensure.d.ts b/ts-types/string/ensure.d.ts index b50013d..06288ef 100644 --- a/ts-types/string/ensure.d.ts +++ b/ts-types/string/ensure.d.ts @@ -1,4 +1,6 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + +declare function ensureString(value: any, options?: EnsureBaseOptions & EnsureIsOptional): string | null; +declare function ensureString(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): string; -declare function ensureString(value: any, options?: EnsureOptions): string; export default ensureString; diff --git a/ts-types/thenable/ensure.d.ts b/ts-types/thenable/ensure.d.ts index c1604db..3a96577 100644 --- a/ts-types/thenable/ensure.d.ts +++ b/ts-types/thenable/ensure.d.ts @@ -1,5 +1,9 @@ -import { EnsureFunction, EnsureOptions } from '../ensure'; +import { EnsureFunction, EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; + type ThenableObject = { then: EnsureFunction } & object; -declare function ensureThenable(value: any, options?: EnsureOptions): Promise | ThenableObject; + +declare function ensureThenable(value: any, options?: EnsureBaseOptions & EnsureIsOptional): Promise | ThenableObject | null; +declare function ensureThenable(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault | ThenableObject>): Promise | ThenableObject; + export default ensureThenable; diff --git a/ts-types/time-value/ensure.d.ts b/ts-types/time-value/ensure.d.ts index 2beb9b3..f8084b8 100644 --- a/ts-types/time-value/ensure.d.ts +++ b/ts-types/time-value/ensure.d.ts @@ -1,4 +1,5 @@ -import { EnsureOptions } from '../ensure'; +import { EnsureBaseOptions, EnsureIsOptional, EnsureDefault } from '../ensure'; -declare function ensureTimeValue(value: any, options?: EnsureOptions): number; +declare function ensureTimeValue(value: any, options?: EnsureBaseOptions & EnsureIsOptional): number | null; +declare function ensureTimeValue(value: any, options?: EnsureBaseOptions & EnsureIsOptional & EnsureDefault): number; export default ensureTimeValue;