| 1 |
import type Masked from './base'; |
| 2 |
import { type MaskedOptions } from './base'; |
| 3 |
import type MaskedRegExp from './regexp'; |
| 4 |
import type MaskedPattern from './pattern'; |
| 5 |
import type MaskedFunction from './function'; |
| 6 |
import type MaskedDate from './date'; |
| 7 |
import type MaskedNumber from './number'; |
| 8 |
import type MaskedDynamic from './dynamic'; |
| 9 |
import type MaskedRange from './range'; |
| 10 |
import type MaskedEnum from './enum'; |
| 11 |
import { type MaskedEnumOptions } from './enum'; |
| 12 |
import { type MaskedRangeOptions } from './range'; |
| 13 |
import { type MaskedDynamicOptions } from './dynamic'; |
| 14 |
import { type MaskedPatternOptions } from './pattern'; |
| 15 |
import { type MaskedNumberOptions } from './number'; |
| 16 |
import { type MaskedRegExpOptions } from './regexp'; |
| 17 |
import { type MaskedFunctionOptions } from './function'; |
| 18 |
import { type MaskedDateOptions } from './date'; |
| 19 |
type MaskedDateFactoryOptions = Omit<MaskedDateOptions, 'mask'> & { |
| 20 |
mask: DateConstructor; |
| 21 |
}; |
| 22 |
export type FactoryStaticOpts = MaskedDateFactoryOptions | MaskedNumberOptions | MaskedPatternOptions | MaskedDynamicOptions | MaskedRegExpOptions | MaskedFunctionOptions; |
| 23 |
export type AllFactoryStaticOpts = MaskedDateFactoryOptions & MaskedNumberOptions & MaskedPatternOptions & MaskedDynamicOptions & MaskedRegExpOptions & MaskedFunctionOptions & MaskedEnumOptions & MaskedRangeOptions; |
| 24 |
export type FactoryStaticReturnMasked<Opts extends FactoryStaticOpts> = Opts extends MaskedDateFactoryOptions ? MaskedDate : Opts extends MaskedNumberOptions ? MaskedNumber : Opts extends MaskedPatternOptions ? MaskedPattern : Opts extends MaskedDynamicOptions ? MaskedDynamic : Opts extends MaskedRegExpOptions ? MaskedRegExp : Opts extends MaskedFunctionOptions ? MaskedFunction : never; |
| 25 |
export type FactoryStaticMaskReturnMasked<Mask extends FactoryStaticOpts['mask']> = Mask extends MaskedDateFactoryOptions['mask'] ? MaskedDate : Mask extends MaskedNumberOptions['mask'] ? MaskedNumber : Mask extends MaskedPatternOptions['mask'] ? MaskedPattern : Mask extends MaskedDynamicOptions['mask'] ? MaskedDynamic : Mask extends MaskedRegExpOptions['mask'] ? MaskedRegExp : Mask extends MaskedFunctionOptions['mask'] ? MaskedFunction : never; |
| 26 |
export type FactoryInstanceOpts = { |
| 27 |
mask: MaskedDate; |
| 28 |
} & Omit<MaskedDateFactoryOptions, 'mask'> | { |
| 29 |
mask: MaskedNumber; |
| 30 |
} & Omit<MaskedNumberOptions, 'mask'> | { |
| 31 |
mask: MaskedEnum; |
| 32 |
} & Omit<MaskedEnumOptions, 'mask'> | { |
| 33 |
mask: MaskedRange; |
| 34 |
} & Omit<MaskedRangeOptions, 'mask'> | { |
| 35 |
mask: MaskedRegExp; |
| 36 |
} & Omit<MaskedRegExpOptions, 'mask'> | { |
| 37 |
mask: MaskedFunction; |
| 38 |
} & Omit<MaskedFunctionOptions, 'mask'> | { |
| 39 |
mask: MaskedPattern; |
| 40 |
} & Omit<MaskedPatternOptions, 'mask'> | { |
| 41 |
mask: MaskedDynamic; |
| 42 |
} & Omit<MaskedDynamicOptions, 'mask'> | { |
| 43 |
mask: Masked; |
| 44 |
} & Omit<MaskedOptions, 'mask'>; |
| 45 |
export type FactoryInstanceReturnMasked<Opts extends FactoryInstanceOpts> = Opts extends { |
| 46 |
mask: infer M; |
| 47 |
} ? M : never; |
| 48 |
export type FactoryConstructorOpts = { |
| 49 |
mask: typeof MaskedDate; |
| 50 |
} & Omit<MaskedDateFactoryOptions, 'mask'> | { |
| 51 |
mask: typeof MaskedNumber; |
| 52 |
} & Omit<MaskedNumberOptions, 'mask'> | { |
| 53 |
mask: typeof MaskedEnum; |
| 54 |
} & Omit<MaskedEnumOptions, 'mask'> | { |
| 55 |
mask: typeof MaskedRange; |
| 56 |
} & Omit<MaskedRangeOptions, 'mask'> | { |
| 57 |
mask: typeof MaskedRegExp; |
| 58 |
} & Omit<MaskedRegExpOptions, 'mask'> | { |
| 59 |
mask: typeof MaskedFunction; |
| 60 |
} & Omit<MaskedFunctionOptions, 'mask'> | { |
| 61 |
mask: typeof MaskedPattern; |
| 62 |
} & Omit<MaskedPatternOptions, 'mask'> | { |
| 63 |
mask: typeof MaskedDynamic; |
| 64 |
} & Omit<MaskedDynamicOptions, 'mask'> | { |
| 65 |
mask: typeof Masked; |
| 66 |
} & Omit<MaskedOptions, 'mask'>; |
| 67 |
export type FactoryConstructorReturnMasked<Opts extends FactoryConstructorOpts> = Opts extends { |
| 68 |
mask: typeof MaskedDate; |
| 69 |
} ? MaskedDate : Opts extends { |
| 70 |
mask: typeof MaskedNumber; |
| 71 |
} ? MaskedNumber : Opts extends { |
| 72 |
mask: typeof MaskedEnum; |
| 73 |
} ? MaskedEnum : Opts extends { |
| 74 |
mask: typeof MaskedRange; |
| 75 |
} ? MaskedRange : Opts extends { |
| 76 |
mask: typeof MaskedRegExp; |
| 77 |
} ? MaskedRegExp : Opts extends { |
| 78 |
mask: typeof MaskedFunction; |
| 79 |
} ? MaskedFunction : Opts extends { |
| 80 |
mask: typeof MaskedPattern; |
| 81 |
} ? MaskedPattern : Opts extends { |
| 82 |
mask: typeof MaskedDynamic; |
| 83 |
} ? MaskedDynamic : Masked; |
| 84 |
export type FactoryOpts = FactoryConstructorOpts | FactoryInstanceOpts | FactoryStaticOpts; |
| 85 |
export type FactoryArg = Masked | FactoryOpts | FactoryStaticOpts['mask']; |
| 86 |
export type ExtendFactoryArgOptions<Opts extends { |
| 87 |
[key: string]: any; |
| 88 |
}> = Masked | FactoryOpts & Opts | FactoryStaticOpts['mask']; |
| 89 |
export type UpdateStaticOpts<Opts extends FactoryStaticOpts> = Opts extends MaskedEnumOptions ? MaskedEnumOptions : Opts extends MaskedRangeOptions ? MaskedRangeOptions : Opts extends MaskedDynamicOptions ? MaskedDynamicOptions : Opts extends MaskedPatternOptions ? MaskedPatternOptions : Opts extends MaskedDateOptions ? MaskedDateOptions : Opts extends MaskedNumberOptions ? MaskedNumberOptions : Opts extends MaskedRegExpOptions ? MaskedRegExpOptions : Opts extends MaskedFunctionOptions ? MaskedFunctionOptions : never; |
| 90 |
type AnyOpts = Record<string, any>; |
| 91 |
export type UpdateInstanceOpts<M extends Masked> = M extends MaskedRegExp ? MaskedRegExpOptions : M extends MaskedFunction ? MaskedFunctionOptions : M extends MaskedDate ? MaskedDateOptions : M extends MaskedNumber ? MaskedNumberOptions : M extends MaskedDynamic ? MaskedDynamicOptions : M extends MaskedRange ? MaskedRangeOptions : M extends MaskedEnum ? MaskedEnumOptions : M extends MaskedPattern ? MaskedPatternOptions : AnyOpts; |
| 92 |
export type UpdateConstructorOpts<M extends FactoryConstructorOpts> = M extends { |
| 93 |
mask: typeof MaskedDate; |
| 94 |
} ? MaskedDateOptions : M extends { |
| 95 |
mask: typeof MaskedNumber; |
| 96 |
} ? MaskedNumberOptions : M extends { |
| 97 |
mask: typeof MaskedEnum; |
| 98 |
} ? MaskedEnumOptions : M extends { |
| 99 |
mask: typeof MaskedRange; |
| 100 |
} ? MaskedRangeOptions : M extends { |
| 101 |
mask: typeof MaskedRegExp; |
| 102 |
} ? MaskedRegExpOptions : M extends { |
| 103 |
mask: typeof MaskedFunction; |
| 104 |
} ? MaskedFunctionOptions : M extends { |
| 105 |
mask: typeof MaskedPattern; |
| 106 |
} ? MaskedPatternOptions : M extends { |
| 107 |
mask: typeof MaskedDynamic; |
| 108 |
} ? MaskedDynamicOptions : AnyOpts; |
| 109 |
export type UpdateStaticMaskOpts<M extends FactoryStaticOpts['mask']> = M extends MaskedDateFactoryOptions['mask'] ? MaskedDateOptions : M extends MaskedNumberOptions['mask'] ? MaskedNumberOptions : M extends MaskedPatternOptions['mask'] ? MaskedPatternOptions : M extends MaskedDynamicOptions['mask'] ? MaskedDynamicOptions : M extends MaskedRegExpOptions['mask'] ? MaskedRegExpOptions : M extends MaskedFunctionOptions['mask'] ? MaskedFunctionOptions : never; |
| 110 |
export type UpdateOpts<Opts extends FactoryArg> = Partial<Opts extends Masked ? UpdateInstanceOpts<Opts> : Opts extends FactoryStaticOpts['mask'] ? UpdateStaticMaskOpts<Opts> : Opts extends FactoryStaticOpts ? UpdateStaticOpts<Opts> : Opts extends FactoryInstanceOpts ? UpdateInstanceOpts<Opts['mask']> : Opts extends FactoryConstructorOpts ? UpdateConstructorOpts<Opts> : AnyOpts>; |
| 111 |
export type FactoryReturnMasked<Opts extends FactoryArg> = Opts extends Masked ? Opts : Opts extends FactoryStaticOpts['mask'] ? FactoryStaticMaskReturnMasked<Opts> : Opts extends FactoryConstructorOpts ? FactoryConstructorReturnMasked<Opts> : Opts extends FactoryInstanceOpts ? FactoryInstanceReturnMasked<Opts> : Opts extends FactoryStaticOpts ? FactoryStaticReturnMasked<Opts> : never; |
| 112 |
/** Get Masked class by mask type */ |
| 113 |
export declare function maskedClass(mask: Masked | FactoryOpts['mask']): any; |
| 114 |
type MaskedClassOf<M extends Masked> = M extends MaskedDate ? typeof MaskedDate : M extends MaskedNumber ? typeof MaskedNumber : M extends MaskedEnum ? typeof MaskedEnum : M extends MaskedRange ? typeof MaskedRange : M extends MaskedRegExp ? typeof MaskedRegExp : M extends MaskedFunction ? typeof MaskedFunction : M extends MaskedPattern ? typeof MaskedPattern : M extends MaskedDynamic ? typeof MaskedDynamic : any; |
| 115 |
type NormalizedMaskedOpts<Opts extends Masked> = Omit<Opts, 'mask'> & { |
| 116 |
_mask: Opts; |
| 117 |
mask: MaskedClassOf<Opts>; |
| 118 |
}; |
| 119 |
type NormalizedInstanceOpts<Opts extends FactoryInstanceOpts> = Omit<Opts['mask'], `_${string}` | 'mask'> & NormalizedMaskedOpts<Opts['mask']>; |
| 120 |
export type NormalizedOpts<Opts extends FactoryArg> = Opts extends FactoryStaticOpts['mask'] ? { |
| 121 |
mask: Opts; |
| 122 |
} : Opts extends Masked ? NormalizedMaskedOpts<Opts> : Opts extends FactoryInstanceOpts ? NormalizedInstanceOpts<Opts> : Opts extends FactoryStaticOpts | FactoryConstructorOpts ? Opts : { |
| 123 |
mask: Opts; |
| 124 |
}; |
| 125 |
export declare function normalizeOpts<Opts extends FactoryArg>(opts: Opts): NormalizedOpts<Opts>; |
| 126 |
/** Creates new {@link Masked} depending on mask type */ |
| 127 |
export default function createMask<Opts extends FactoryArg>(opts: Opts): FactoryReturnMasked<Opts>; |
| 128 |
export {}; |
| 129 |
//# sourceMappingURL=factory.d.ts.map |