breeze-client
Version:
Breeze data management for JavaScript clients
61 lines (60 loc) • 1.95 kB
TypeScript
import { BreezeEnum } from './enum';
/** @hidden @internal */
export interface IParamContext {
typeName?: string;
type?: Function;
prevContext?: IParamContext;
msg?: string | ((context: IParamContext, v: any) => string);
mustNotBeEmpty?: boolean;
enumType?: BreezeEnum;
propertyName?: string;
allowNull?: boolean;
fn?(context: IParamContext, v: any): boolean;
}
/** @hidden @internal */
export interface IConfigParam {
config: any;
params: Param[];
whereParam: (propName: string) => Param;
}
/** @hidden @internal */
export declare class Param {
v: any;
name: string;
defaultValue: any;
parent: IConfigParam;
/** @hidden @internal */
_context: IParamContext;
/** @hidden @internal */
_contexts: IParamContext[];
constructor(v: any, name: string);
isObject(): Param;
isBoolean(): Param;
isString(): Param;
isNumber(): Param;
isFunction(): Param;
isNonEmptyString(): Param;
isTypeOf(typeName: string): Param;
isInstanceOf(type: Function, typeName?: string): Param;
hasProperty(propertyName: string): Param;
isEnumOf(enumType: any): Param;
isRequired(allowNull?: boolean): Param;
isOptional(): Param;
isNonEmptyArray(): Param;
isArray(mustNotBeEmpty?: boolean): Param;
or(): this;
check(defaultValue?: any): any;
/** @hidden @internal */
_addContext(context: IParamContext): Param;
getMessage(): string;
withDefault(defaultValue: any): this;
whereParam(propName: string): Param;
applyAll(instance: any, checkOnly?: boolean): void;
/** @hidden @internal */
_applyOne: (this: Param, instance: any) => void;
MESSAGE_PREFIX: string;
}
/** @hidden @internal */
export declare let assertParam: (v: any, name: string) => Param;
/** @hidden @internal */
export declare let assertConfig: (config: Object) => IConfigParam;