container.ts
Version:
Modular application framework
206 lines (205 loc) • 8.47 kB
TypeScript
/// <reference types="validator" />
import * as moment from "moment-timezone";
import { ErrorChain } from "../error";
/** Validate error codes. */
export declare enum EValidateError {
InvalidBoolean = 0,
InvalidInteger = 1,
InvalidFloat = 2,
InvalidHexadecimal = 3,
InvalidString = 4,
InvalidAscii = 5,
InvalidBase64 = 6,
InvalidAlpha = 7,
InvalidAlphanumeric = 8,
InvalidCreditCard = 9,
InvalidEmail = 10,
InvalidDomain = 11,
InvalidHexColour = 12,
InvalidIp = 13,
InvalidJson = 14,
InvalidMacAddress = 15,
InvalidMd5 = 16,
InvalidMobilePhone = 17,
InvalidMongoId = 18,
InvalidPostalCode = 19,
InvalidUrl = 20,
InvalidUuid = 21,
InvalidPort = 22,
InvalidLanguage = 23,
InvalidCountry = 24,
InvalidLocale = 25,
InvalidTimeZone = 26,
InvalidDate = 27,
InvalidDuration = 28,
}
/** Validate error chain class. */
export declare class ValidateError extends ErrorChain {
constructor(code: EValidateError, value?: any, cause?: Error);
}
/** Validate.isBoolean options. */
export interface IValidateBoolean {
/** If true, strict validation is used. */
strict?: boolean;
}
/** Wrapper for validator.toBoolean. */
export declare function isBoolean(value?: string, options?: IValidateBoolean): boolean;
/** Validate.isInteger options. */
export interface IValidateInteger extends ValidatorJS.IsIntOptions {
}
/** Wrapper for validator.isInt. */
export declare function isInteger(value?: string, options?: IValidateInteger): number;
/** Validate.isFloat options. */
export interface IValidateFloat extends ValidatorJS.IsFloatOptions {
}
/** Wrapper for validator.isFloat. */
export declare function isFloat(value?: string, options?: IValidateFloat): number;
/** Wrapper for validator.isHexadecimal. */
export declare function isHexadecimal(value?: string): number;
/** Validate.isString options. */
export interface IValidateString extends ValidatorJS.IsLengthOptions {
/** Require lower case characters. */
lowercase?: boolean;
/** Require upper case characters. */
uppercase?: boolean;
/** Optional array of allowed values. */
values?: string[];
}
/** Wrapper for validator methods isLength, isUppercase, isLowercase and isIn. */
export declare function isString(value?: string, options?: IValidateString): string;
/** Wrapper for validator.isAscii. */
export declare function isAscii(value?: string, options?: IValidateString): string;
/** Wrapper for validator.isBase64. */
export declare function isBase64(value?: string, options?: IValidateString): string;
/** Validate.isAlpha options. */
export interface IValidateAlpha extends IValidateString {
/** Locale used by validator, defaults to en-GB. */
locale?: ValidatorJS.AlphaLocale;
}
/** Wrapper for validator.isAlpha. */
export declare function isAlpha(value?: string, options?: IValidateAlpha): string;
/** Validate.isAlphanumeric options. */
export interface IValidateAlphanumeric extends IValidateString {
/** Locale used by validator, defaults to en-GB. */
locale?: ValidatorJS.AlphanumericLocale;
}
/** Wrapper for validator.isAlphanumeric. */
export declare function isAlphanumeric(value?: string, options?: IValidateAlphanumeric): string;
/** Wrapper for validator.isCreditCard. */
export declare function isCreditCard(value?: string): string;
/** Validate.isEmail options. */
export interface IValidateEmail extends ValidatorJS.IsEmailOptions {
}
/** Wrapper for validator.isEmail. */
export declare function isEmail(value?: string, options?: IValidateEmail): string;
/** Validate.isDomain options. */
export interface IValidateDomain extends ValidatorJS.IsFQDNOptions {
}
/** Wrapper for validator.isFQDN. */
export declare function isDomain(value?: string, options?: IValidateDomain): string;
/** Wrapper for validator.isHexColor. */
export declare function isHexColour(value?: string): string;
/** Validate.isIp options. */
export interface IValidateIp {
/** IP version number, defaults to 4. */
version?: 4 | 6;
}
/** Wrapper for validator.isIP. */
export declare function isIp(value?: string, options?: IValidateIp): string;
/** Wrapper for validator.isJSON. */
export declare function isJson<T>(value?: string): T;
/** Wrapper for validator.isMACAddress. */
export declare function isMacAddress(value?: string): string;
/** Wrapper for validator.isMD5. */
export declare function isMd5(value?: string): string;
/** Validate.isMobilePhone options. */
export interface IValidateMobilePhone {
/** Locale used by validator, defaults to en-GB. */
locale?: ValidatorJS.MobilePhoneLocale;
}
/** Wrapper for validator.isMobilePhone. */
export declare function isMobilePhone(value?: string, options?: IValidateMobilePhone): string;
/** Wrapper for validator.isMongoId. */
export declare function isMongoId(value?: string): string;
/** Validate.isPostalCode options. */
export interface IValidatePostalCode {
/** Locale used by validator, defaults to GB. */
locale?: ValidatorJS.PostalCodeLocale;
}
/** Wrapper for validator.isPostalCode. */
export declare function isPostalCode(value?: string, options?: IValidatePostalCode): string;
/** Validate.isUrl options. */
export interface IValidateUrl extends ValidatorJS.IsURLOptions {
}
/** Wrapper for validator.isURL. */
export declare function isUrl(value?: string, options?: IValidateUrl): string;
/** Validate.isUuid options. */
export interface IValidateUuid {
/** UUID version number, defaults to all. */
version?: 3 | 4 | 5;
}
/** Wrapper for validator.isUUID. */
export declare function isUuid(value?: string, options?: IValidateUuid): string;
/** Validate that value is a valid port number (1 - 65535). */
export declare function isPort(value?: string): number;
/** Validate that value is a valid ISO639 language code. */
export declare function isLanguage(value?: string): string;
/** Validate that value is a valid ISO3166 country code. */
export declare function isCountry(value?: string): string;
/** Validate.isLocale options. */
export interface IValidateLocale {
/** Language/country code separator, defaults to '_'. */
separator?: string;
}
/** Validate that value is a valid locale (language_COUNTRY). */
export declare function isLocale(value?: string, options?: IValidateLocale): string;
/** Validate that value is a valid time zone defined in 'moment-timezone' library. */
export declare function isTimeZone(value?: string): string;
/** Validate.isDate options. */
export interface IValidateDate {
/** Formatting hints passed to 'moment-timezone', defaults to ISO8601. */
format?: string | string[];
/** Timezone used for parsing, defaults to 'Etc/UTC'. */
timezone?: string;
}
/** Validate that value is a valid date parsed by 'moment-timezone' library. */
export declare function isDate(value?: string, options?: IValidateDate): moment.Moment;
/** Validate.isDuration options. */
export interface IValidateDuration {
/** Optional unit of time passed to 'moment-timezone'. */
unit?: moment.unitOfTime.DurationConstructor;
}
/** Validate that value is a valid duration parsed by 'moment-timezone' library. */
export declare function isDuration(value?: string, options?: IValidateDuration): moment.Duration;
/** Static validate methods container. */
export declare class Validate {
static isBoolean: typeof isBoolean;
static isInteger: typeof isInteger;
static isFloat: typeof isFloat;
static isHexadecimal: typeof isHexadecimal;
static isString: typeof isString;
static isAscii: typeof isAscii;
static isBase64: typeof isBase64;
static isAlpha: typeof isAlpha;
static isAlphanumeric: typeof isAlphanumeric;
static isCreditCard: typeof isCreditCard;
static isEmail: typeof isEmail;
static isDomain: typeof isDomain;
static isHexColour: typeof isHexColour;
static isIp: typeof isIp;
static isJson: typeof isJson;
static isMacAddress: typeof isMacAddress;
static isMd5: typeof isMd5;
static isMobilePhone: typeof isMobilePhone;
static isMongoId: typeof isMongoId;
static isPostalCode: typeof isPostalCode;
static isUrl: typeof isUrl;
static isUuid: typeof isUuid;
static isPort: typeof isPort;
static isLanguage: typeof isLanguage;
static isCountry: typeof isCountry;
static isLocale: typeof isLocale;
static isTimeZone: typeof isTimeZone;
static isDate: typeof isDate;
static isDuration: typeof isDuration;
}