typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
894 lines (757 loc) • 33 kB
TypeScript
// Type definitions for Breeze 1.4
// Project: http://www.breezejs.com/
// Definitions by: Boris Yankov <https://github.com/borisyankov/>, IdeaBlade <https://github.com/IdeaBlade/Breeze/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
// Updated Jan 14 2011 - Jay Traband ( www.ideablade.com).
// Updated March 27 2013 - John Lantz (www.ideablade.com).
// Updated Aug 13 2013 - Steve Schmitt ( www.ideablade.com).
/// <reference path="../q/Q.d.ts" />
declare module breeze.core {
interface ErrorCallback {
(error: Error): void;
}
interface IEnum {
contains(object: any): boolean;
fromName(name: string): EnumSymbol;
getNames(): string[];
getSymbols(): EnumSymbol[];
}
class Enum implements IEnum {
constructor (name: string, methodObj?: any);
addSymbol(propertiesObj?: any): EnumSymbol;
contains(object: any): boolean;
fromName(name: string): EnumSymbol;
getNames(): string[];
getSymbols(): EnumSymbol[];
static isSymbol(object: any): boolean;
seal(): void;
}
class EnumSymbol {
parentEnum: IEnum;
getName(): string;
toString(): string;
}
class Event {
constructor (name: string, publisher: any, defaultErrorCallback?: ErrorCallback);
static enable(eventName: string, target: any): void;
static enable(eventName: string, target: any, isEnabled: boolean): void;
static enable(eventName: string, target: any, isEnabled: Function): void;
static isEnabled(eventName: string, target: any): boolean;
publish(data: any, publishAsync?: boolean, errorCallback?: ErrorCallback): void;
publishAsync(data: any, errorCallback?: ErrorCallback): void;
subscribe(callback?: (data: any) => void ): number;
unsubscribe(unsubKey: number): boolean;
}
export function objectForEach(obj: Object, kvfn: (key:string, value:any) => void): void;
export function extend(target: Object, source: Object): Object;
export function propEq(propertyName: string, value: any): (obj: Object) => boolean;
export function pluck(propertyName: string): (obj: Object) => any;
export function arrayEquals(a1: any[], a2: any[], equalsFn: (e1:any, e2:any) => boolean): boolean;
export function arrayFirst(a1: any[], predicate: (e:any) => boolean): any;
export function arrayIndexOf(a1: any[], predicate: (e: any) => boolean): number;
export function arrayRemoveItem(array: any[], item: any, shouldRemoveMultiple: boolean): any;
export function arrayRemoveItem(array: any[], predicate: (e: any) => boolean, shouldRemoveMultiple: boolean): any;
export function arrayZip(a1: any[], a2: any[], callback: (e1:any, e2:any) => any): any[];
export function requireLib(libnames: string, errMessage: string): Object;
export function using(obj: Object, property: string, tempValue: any, fn: () => any): any;
export function memoize(fn:Function): any;
export function getUuid(): string;
export function durationToSeconds(duration: string): number;
export function isDate(o: any): boolean;
export function isGuid(o: any): boolean;
export function isDuration(o: any): boolean;
export function isFunction(o: any): boolean;
export function isEmpty(o: any): boolean;
export function isNumeric(o: any): boolean;
export function stringStartsWith(str: string, prefix: string): boolean;
export function stringEndsWith(str: string, suffix: string): boolean;
export function formatString(format: string, ...args: any[]): string;
}
declare module breeze {
interface Entity {
entityAspect: EntityAspect;
entityType: EntityType;
}
interface ComplexObject {
complexAspect: ComplexAspect;
complexType: ComplexType;
}
interface IProperty {
name: string;
parentType: IStructuralType;
validators: Validator[];
isDataProperty: boolean;
isNavigationProperty: boolean;
}
interface IStructuralType {
complexProperties: DataProperty[];
dataProperties: DataProperty[];
name: string;
namespace: string;
shortName: string;
unmappedProperties: DataProperty[];
validators: Validator[];
}
class AutoGeneratedKeyType {
static Identity: AutoGeneratedKeyType;
static KeyGenerator: AutoGeneratedKeyType;
static None: AutoGeneratedKeyType;
}
class ComplexAspect {
complexObject: ComplexObject;
getEntityAspect(): EntityAspect;
parent: Object;
parentProperty: DataProperty;
getPropertyPath(propName: string): string;
originalValues: Object;
}
class ComplexType implements IStructuralType {
complexProperties: DataProperty[];
dataProperties: DataProperty[];
name: string;
namespace: string;
shortName: string;
unmappedProperties: DataProperty[];
validators: Validator[];
addProperty(dataProperty: DataProperty): ComplexType;
getProperties(): DataProperty[];
}
class DataProperty implements IProperty {
complexTypeName: string;
concurrencyMode: string;
dataType: DataTypeSymbol;
defaultValue: any;
fixedLength: boolean;
isComplexProperty: boolean;
isDataProperty: boolean;
isInherited: boolean;
isNavigationProperty: boolean;
isNullable: boolean;
isPartOfKey: boolean;
isUnmapped: boolean;
maxLength: number;
name: string;
nameOnServer: string;
parentType: IStructuralType;
relatedNavigationProperty: NavigationProperty;
validators: Validator[];
constructor (config: DataPropertyOptions);
}
interface DataPropertyOptions {
complexTypeName?: string;
concurrencyMode?: string;
dataType?: DataTypeSymbol;
defaultValue?: any;
fixedLength?: boolean;
isNullable?: boolean;
isPartOfKey?: boolean;
isUnmapped?: boolean;
maxLength?: number;
name?: string;
nameOnServer?: string;
validators?: Validator[];
}
class DataService {
adapterInstance: DataServiceAdapter;
adapterName: string;
hasServerMetadata: boolean;
serviceName: string;
jsonResultsAdapter: JsonResultsAdapter;
useJsonp: boolean;
constructor(config: DataServiceOptions);
using(config: DataServiceOptions): DataService;
}
interface DataServiceOptions {
serviceName?: string;
adapterName?: string;
hasServerMetadata?: boolean;
jsonResultsAdapter?: JsonResultsAdapter;
useJsonp?: boolean;
}
class DataServiceAdapter {
checkForRecomposition(interfaceInitializedArgs: { interfaceName: string; isDefault: boolean}): void;
initialize(): void;
fetchMetadata(metadataStore: MetadataStore, dataService: DataService): Q.Promise<any>;
executeQuery(mappingContext: Object): Q.Promise<any>;
saveChanges(saveContext: { resourceName: string }, saveBundle: Object): Q.Promise<SaveResult>;
JsonResultsAdapter: JsonResultsAdapter;
}
class JsonResultsAdapter {
name: string;
extractResults: (data: {}) => {};
visitNode: (node: {}, queryContext: QueryContext, nodeContext: NodeContext) => { entityType?: EntityType; nodeId?: any; nodeRefId?: any; ignore?: boolean; };
constructor(config: {
name: string;
extractResults?: (data: {}) => {};
visitNode: (node: {}, queryContext: QueryContext, nodeContext: NodeContext) => { entityType?: EntityType; nodeId?: any; nodeRefId?: any; ignore?: boolean; };
});
}
interface QueryContext {
url: string;
query: any; // how to also say it could be an EntityQuery or a string
entityManager: EntityManager;
dataService: DataService;
queryOptions: QueryOptions;
}
interface NodeContext {
nodeType: string;
}
class DataTypeSymbol extends breeze.core.EnumSymbol {
defaultValue: any;
isNumeric: boolean;
isDate: boolean;
}
interface DataType extends breeze.core.IEnum {
Binary: DataTypeSymbol;
Boolean: DataTypeSymbol;
Byte: DataTypeSymbol;
DateTime: DataTypeSymbol;
DateTimeOffset: DataTypeSymbol;
Decimal: DataTypeSymbol;
Double: DataTypeSymbol;
Guid: DataTypeSymbol;
Int16: DataTypeSymbol;
Int32: DataTypeSymbol;
Int64: DataTypeSymbol;
Single: DataTypeSymbol;
String: DataTypeSymbol;
Time: DataTypeSymbol;
Undefined: DataTypeSymbol;
toDataType(typeName: string): DataTypeSymbol;
parseDateFromServer(date: any): Date;
defaultValue: any;
isNumeric: boolean;
}
var DataType: DataType;
class EntityActionSymbol extends breeze.core.EnumSymbol {
}
interface EntityAction extends breeze.core.IEnum {
AcceptChanges: EntityActionSymbol;
Attach: EntityActionSymbol;
AttachOnImport: EntityActionSymbol;
AttachOnQuery: EntityActionSymbol;
Clear: EntityActionSymbol;
Detach: EntityActionSymbol;
EntityStateChange: EntityActionSymbol;
MergeOnImport: EntityActionSymbol;
MergeOnSave: EntityActionSymbol;
MergeOnQuery: EntityActionSymbol;
PropertyChange: EntityActionSymbol;
RejectChanges: EntityActionSymbol;
}
var EntityAction: EntityAction;
class EntityAspect {
entity: Entity;
entityManager: EntityManager;
entityState: EntityStateSymbol;
isBeingSaved: boolean;
originalValues: Object;
propertyChanged: PropertyChangedEvent;
validationErrorsChanged: ValidationErrorsChangedEvent;
acceptChanges(): void;
addValidationError(validationError: ValidationError): void;
clearValidationErrors(): void;
getKey(forceRefresh?: boolean): EntityKey;
getValidationErrors(): ValidationError[];
getValidationErrors(property: string): ValidationError[];
getValidationErrors(property: IProperty): ValidationError[];
hasValidationErrors: boolean;
loadNavigationProperty(navigationProperty: string, callback?: Function, errorCallback?: Function): Q.Promise<QueryResult>;
loadNavigationProperty(navigationProperty: NavigationProperty, callback?: Function, errorCallback?: Function): Q.Promise<QueryResult>;
rejectChanges(): void;
removeValidationError(validator: Validator): void;
removeValidationError(validator: Validator, property: DataProperty): void;
removeValidationError(validator: Validator, property: NavigationProperty): void;
removeValidationError(validationError: ValidationError): void;
setDeleted(): void;
setDetached(): void;
setModified(): void;
setUnchanged(): void;
validateEntity(): boolean;
validateProperty(property: string, context?: any): boolean;
validateProperty(property: DataProperty, context?: any): boolean;
validateProperty(property: NavigationProperty, context?: any): boolean;
}
class PropertyChangedEventArgs {
entity: Entity;
propertyName: string;
oldValue: any;
newValue: any;
}
class PropertyChangedEvent extends breeze.core.Event {
subscribe(callback?: (data: PropertyChangedEventArgs) => void ): number;
}
class ValidationErrorsChangedEventArgs {
entity: Entity;
added: ValidationError[];
removed: ValidationError[];
}
class ValidationErrorsChangedEvent extends breeze.core.Event {
subscribe(callback?: (data: ValidationErrorsChangedEventArgs) => void ): number;
}
class EntityKey {
constructor (entityType: EntityType, keyValue: any);
constructor (entityType: EntityType, keyValues: any[]);
equals(entityKey: EntityKey): boolean;
static equals(k1: EntityKey, k2: EntityKey): boolean;
entityType: EntityType;
values: any[];
}
interface EntityByKeyResult {
entity: Entity;
entityKey: EntityKey;
fromCache: boolean;
}
class EntityManager {
dataService: DataService;
keyGeneratorCtor: Function;
metadataStore: MetadataStore;
queryOptions: QueryOptions;
saveOptions: SaveOptions;
serviceName: string;
validationOptions: ValidationOptions;
entityChanged: EntityChangedEvent;
hasChangesChanged: HasChangesChangedEvent;
validationErrorsChanged: ValidationErrorsChangedEvent;
constructor (config?: EntityManagerOptions);
constructor (config?: string);
addEntity(entity: Entity): Entity;
attachEntity(entity: Entity, entityState?: EntityStateSymbol): Entity;
clear(): void;
createEmptyCopy(): EntityManager;
createEntity(typeName: string, config?: {}, entityState?: EntityStateSymbol) : Entity;
createEntity(entityType: EntityType, config?: {}, entityState?: EntityStateSymbol): Entity;
detachEntity(entity: Entity): boolean;
executeQuery(query: string, callback?: ExecuteQuerySuccessCallback, errorCallback?: ExecuteQueryErrorCallback): Q.Promise<QueryResult>;
executeQuery(query: EntityQuery, callback?: ExecuteQuerySuccessCallback, errorCallback?: ExecuteQueryErrorCallback): Q.Promise<QueryResult>;
executeQueryLocally(query: EntityQuery): Entity[];
exportEntities(entities?: Entity[], includeMetadata?: boolean): string;
fetchEntityByKey(typeName: string, keyValue: any, checkLocalCacheFirst?: boolean): Q.Promise<EntityByKeyResult>;
fetchEntityByKey(typeName: string, keyValues: any[], checkLocalCacheFirst?: boolean): Q.Promise<EntityByKeyResult>;
fetchEntityByKey(entityKey: EntityKey, checkLocalCacheFirst?: boolean): Q.Promise<EntityByKeyResult>;
fetchMetadata(callback?: (schema: any) => void , errorCallback?: breeze.core.ErrorCallback): Q.Promise<any>;
generateTempKeyValue(entity: Entity): any;
getChanges(): Entity[];
getChanges(entityTypeName: string): Entity[];
getChanges(entityTypeNames: string[]): Entity[];
getChanges(entityType: EntityType): Entity[];
getChanges(entityTypes: EntityType[]): Entity[];
getEntities(entityTypeName: string, entityState?: EntityStateSymbol): Entity[];
getEntities(entityTypeNames?: string[], entityState?: EntityStateSymbol): Entity[];
getEntities(entityTypeName?: string, entityStates?: EntityStateSymbol[]): Entity[];
getEntities(entityTypeNames?: string[], entityStates?: EntityStateSymbol[]): Entity[];
getEntities(entityType: EntityType, entityState?: EntityStateSymbol): Entity[];
getEntities(entityTypes?: EntityType[], entityState?: EntityStateSymbol): Entity[];
getEntities(entityType?: EntityType, entityStates?: EntityStateSymbol[]): Entity[];
getEntities(entityTypes?: EntityType[], entityStates?: EntityStateSymbol[]): Entity[];
getEntityByKey(typeName: string, keyValue: any): Entity;
getEntityByKey(typeName: string, keyValues: any[]): Entity;
getEntityByKey(entityKey: EntityKey): Entity;
hasChanges(): boolean;
hasChanges(entityTypeName: string): boolean;
hasChanges(entityTypeNames: string[]): boolean;
hasChanges(entityType: EntityType): boolean;
hasChanges(entityTypes: EntityType[]): boolean;
static importEntities(exportedString: string, config?: { mergeStrategy?: StrategySymbol; }): EntityManager;
static importEntities(exportedData: Object, config?: { mergeStrategy?: StrategySymbol; }): EntityManager;
importEntities(exportedString: string, config?: { mergeStrategy?: StrategySymbol; }): EntityManager;
importEntities(exportedData: Object, config?: { mergeStrategy?: StrategySymbol; }): EntityManager;
rejectChanges(): Entity[];
saveChanges(entities?: Entity[], saveOptions?: SaveOptions, callback?: SaveChangesSuccessCallback, errorCallback?: SaveChangesErrorCallback): Q.Promise<SaveResult>;
setProperties(config: EntityManagerProperties): void;
}
interface EntityManagerOptions {
serviceName?: string;
dataService?: DataService;
metadataStore?: MetadataStore;
queryOptions?: QueryOptions;
saveOptions?: SaveOptions;
validationOptions?: ValidationOptions;
keyGeneratorCtor?: Function;
}
interface EntityManagerProperties {
serviceName?: string;
dataService?: DataService;
queryOptions?: QueryOptions;
saveOptions?: SaveOptions;
validationOptions?: ValidationOptions;
keyGeneratorCtor?: Function;
}
interface ExecuteQuerySuccessCallback {
(data: QueryResult): void;
}
interface ExecuteQueryErrorCallback {
(error: { query: EntityQuery; XHR: XMLHttpRequest; entityManager: EntityManager}): void;
}
interface SaveChangesSuccessCallback {
(saveResult: SaveResult): void;
}
interface SaveChangesErrorCallback {
(error: { XHR: XMLHttpRequest; }): void;
}
class EntityChangedEventArgs {
entity: Entity;
entityAction: EntityActionSymbol;
args: Object;
}
class EntityChangedEvent extends breeze.core.Event {
subscribe(callback?: (data: EntityChangedEventArgs) => void ): number;
}
class HasChangesChangedEventArgs {
entityManager: EntityManager;
hasChanges: boolean;
}
class HasChangesChangedEvent extends breeze.core.Event {
subscribe(callback?: (data: HasChangesChangedEventArgs) => void ): number;
}
class EntityQuery {
entityManager: EntityManager;
orderByClause: OrderByClause;
parameters: Object;
queryOptions: QueryOptions;
resourceName: string;
resultEntityType: EntityType;
skipCount: number;
takeCount: number;
wherePredicate: Predicate;
constructor (resourceName?: string);
execute(callback?: ExecuteQuerySuccessCallback, errorCallback?: ExecuteQueryErrorCallback): Q.Promise<QueryResult>;
executeLocally(): Entity[];
expand(propertyPaths: string[]): EntityQuery;
expand(propertyPaths: string): EntityQuery;
static from(resourceName: string): EntityQuery;
from(resourceName: string): EntityQuery;
static fromEntities(entity: Entity): EntityQuery;
static fromEntities(entities: Entity[]): EntityQuery;
static fromEntityKey(entityKey: EntityKey): EntityQuery;
static fromEntityNavigation(entity: Entity, navigationProperty: NavigationProperty): EntityQuery;
inlineCount(enabled?: boolean): EntityQuery;
noTracking(enabled: boolean): EntityQuery;
orderBy(propertyPaths: string): EntityQuery;
orderBy(propertyPaths: string[]): EntityQuery;
orderByDesc(propertyPaths: string): EntityQuery;
orderByDesc(propertyPaths: string[]): EntityQuery;
select(propertyPaths: string): EntityQuery;
select(propertyPaths: string[]): EntityQuery;
skip(count: number): EntityQuery;
take(count: number): EntityQuery;
top(count: number): EntityQuery;
toType(typeName: string): EntityQuery;
toType(type: EntityType): EntityQuery;
using(obj: EntityManager): EntityQuery;
using(obj: DataService): EntityQuery;
using(obj: JsonResultsAdapter): EntityQuery;
using(obj: QueryOptions): EntityQuery;
using(obj: StrategySymbol): EntityQuery;
where(predicate: Predicate): EntityQuery;
where(property: string, operator: string, value: any): EntityQuery;
where(property: string, operator: FilterQueryOpSymbol, value: any): EntityQuery;
where(predicate: FilterQueryOpSymbol): EntityQuery;
withParameters(params: Object): EntityQuery;
}
interface OrderByClause {
}
class EntityStateSymbol extends breeze.core.EnumSymbol {
isAdded(): boolean;
isAddedModifiedOrDeleted(): boolean;
isDeleted(): boolean;
isDetached(): boolean;
isModified(): boolean;
isUnchanged(): boolean;
isUnchangedOrModified(): boolean;
}
interface EntityState extends breeze.core.IEnum {
Added: EntityStateSymbol;
Deleted: EntityStateSymbol;
Detached: EntityStateSymbol;
Modified: EntityStateSymbol;
Unchanged: EntityStateSymbol;
}
var EntityState: EntityState;
class EntityType implements IStructuralType {
autoGeneratedKeyType: AutoGeneratedKeyType;
baseEntityType: EntityType;
complexProperties: DataProperty[];
concurrencyProperties: DataProperty[];
dataProperties: DataProperty[];
defaultResourceName: string;
foreignKeyProperties: DataProperty[];
isAbstract: boolean;
keyProperties: DataProperty[];
metadataStore: MetadataStore;
name: string;
namespace: string;
navigationProperties: NavigationProperty[];
shortName: string;
unmappedProperties: DataProperty[];
validators: Validator[];
constructor (config: MetadataStore);
constructor (config: EntityTypeOptions);
addProperty(property: IProperty): void;
addValidator(validator: Validator, property?: IProperty): void;
createEntity(initialValues?: Object): Entity;
getCtor(): Function;
getDataProperty(propertyName: string): DataProperty;
getNavigationProperty(propertyName: string): NavigationProperty;
getProperties(): IProperty[];
getProperty(propertyPath: string, throwIfNotFound?: boolean): IProperty;
getPropertyNames(): string[];
getSelfAndSubtypes(): EntityType[];
isSubtypeOf(entityType: EntityType): boolean;
setProperties(config: EntityTypeProperties): void;
toString(): string;
}
interface EntityTypeOptions {
shortName?: string;
namespace?: string;
autoGeneratedKeyType?: AutoGeneratedKeyType;
defaultResourceName?: string;
dataProperties?: DataProperty[];
navigationProperties?: NavigationProperty[];
}
interface EntityTypeProperties {
autoGeneratedKeyType?: AutoGeneratedKeyType;
defaultResourceName?: string;
}
interface FetchStrategy extends breeze.core.IEnum {
FromLocalCache: StrategySymbol;
FromServer: StrategySymbol;
}
var FetchStrategy: FetchStrategy;
class FilterQueryOpSymbol extends breeze.core.EnumSymbol {
}
interface FilterQueryOp extends breeze.core.IEnum {
Contains: FilterQueryOpSymbol;
EndsWith: FilterQueryOpSymbol;
Equals: FilterQueryOpSymbol;
GreaterThan: FilterQueryOpSymbol;
GreaterThanOrEqual: FilterQueryOpSymbol;
IsTypeOf: FilterQueryOpSymbol;
LessThan: FilterQueryOpSymbol;
LessThanOrEqual: FilterQueryOpSymbol;
NotEquals: FilterQueryOpSymbol;
StartsWith: FilterQueryOpSymbol;
}
var FilterQueryOp: FilterQueryOp;
class LocalQueryComparisonOptions {
static caseInsensitiveSQL: LocalQueryComparisonOptions;
static defaultInstance: LocalQueryComparisonOptions;
constructor (config: { name?: string; isCaseSensitive?: boolean; usesSql92CompliantStringComparison?: boolean; });
setAsDefault(): void;
}
class StrategySymbol extends breeze.core.EnumSymbol {
}
interface MergeStrategy extends breeze.core.IEnum {
OverwriteChanges: StrategySymbol;
PreserveChanges: StrategySymbol;
}
var MergeStrategy: MergeStrategy;
class MetadataStore {
constructor();
constructor(config?: MetadataStoreOptions);
namingConvention: NamingConvention;
addDataService(dataService: DataService): void;
addEntityType(structuralType: IStructuralType): void;
exportMetadata(): string;
fetchMetadata(dataService: string, callback?: (data: any) => void , errorCallback?: breeze.core.ErrorCallback): Q.Promise<any>;
fetchMetadata(dataService: DataService, callback?: (data: any) => void , errorCallback?: breeze.core.ErrorCallback): Q.Promise<any>;
getDataService(serviceName: string): DataService;
getEntityType(entityTypeName: string, okIfNotFound?: boolean): IStructuralType;
getEntityTypes(): IStructuralType[];
hasMetadataFor(serviceName: string): boolean;
static importMetadata(exportedString: string): MetadataStore;
importMetadata(exportedString: string): MetadataStore;
isEmpty(): boolean;
registerEntityTypeCtor(entityTypeName: string, entityCtor: Function, initializationFn?: (entity: Entity) =>void ): void;
trackUnmappedType(entityCtor: Function, interceptor?: Function): void;
setEntityTypeForResourceName(resourceName: string, entityType: EntityType): void;
setEntityTypeForResourceName(resourceName: string, entityTypeName: string): void;
getEntityTypeNameForResourceName(resourceName: string): string;
}
interface MetadataStoreOptions {
namingConvention?: NamingConvention;
localQueryComparisonOptions?: LocalQueryComparisonOptions;
}
class NamingConvention {
static camelCase: NamingConvention;
static defaultInstance: NamingConvention;
static none: NamingConvention;
constructor (config: NamingConventionOptions);
clientPropertyNameToServer(clientPropertyName: string): string;
clientPropertyNameToServer(clientPropertyName: string, property: IProperty): string;
serverPropertyNameToClient(serverPropertyName: string): string;
serverPropertyNameToClient(serverPropertyName: string, property: IProperty): string;
setAsDefault(): NamingConvention;
}
interface NamingConventionOptions {
serverPropertyNameToClient?: (name: string) => string;
clientPropertyNameToServer?: (name: string) => string;
}
class NavigationProperty implements IProperty {
associationName: string;
entityType: EntityType;
foreignKeyNames: string[];
inverse: NavigationProperty;
isDataProperty: boolean;
isNavigationProperty: boolean;
isScalar: boolean;
name: string;
parentType: IStructuralType;
relatedDataProperties: DataProperty[];
validators: Validator[];
constructor (config: NavigationPropertyOptions);
}
interface NavigationPropertyOptions {
name?: string;
nameOnServer?: string;
entityTypeName: string;
isScalar?: boolean;
associationName?: string;
foreignKeyNames?: string[];
foreignKeyNamesOnServer?: string[];
validators?: Validator[];
}
class Predicate {
constructor (property: string, operator: string, value: any, valueIsLiteral?: boolean);
constructor (property: string, operator: FilterQueryOpSymbol, value: any, valueIsLiteral?: boolean);
and: PredicateMethod;
static and: PredicateMethod;
static create: PredicateMethod;
static isPredicate(o: any): boolean;
static not(predicate: Predicate): Predicate;
not(): Predicate;
static or: PredicateMethod;
or: PredicateMethod;
toFunction(): Function;
toString(): string;
validate(entityType: EntityType): void;
}
interface PredicateMethod {
(predicates: Predicate[]): Predicate;
(...predicates: Predicate[]): Predicate;
(property: string, operator: string, value: any, valueIsLiteral?: boolean): Predicate;
(property: string, operator: FilterQueryOpSymbol, value: any, valueIsLiteral?: boolean): Predicate;
}
class QueryOptions {
static defaultInstance: QueryOptions;
fetchStrategy: StrategySymbol;
mergeStrategy: StrategySymbol;
constructor (config?: QueryOptionsConfiguration);
setAsDefault(): void;
using(config: QueryOptionsConfiguration): QueryOptions;
using(config: StrategySymbol): QueryOptions;
}
interface QueryOptionsConfiguration {
fetchStrategy?: StrategySymbol;
mergeStrategy?: StrategySymbol;
}
interface QueryResult {
results: Entity[];
query: EntityQuery;
XHR: XMLHttpRequest;
entityManager?: EntityManager;
inlineCount?: number
}
class SaveOptions {
allowConcurrentSaves: boolean;
resourceName: string;
dataService: DataService;
tag: string;
static defaultInstance: SaveOptions;
constructor (config?: { allowConcurrentSaves?: boolean; });
setAsDefault(): SaveOptions;
using(config: SaveOptionsConfiguration): SaveOptions;
}
interface SaveOptionsConfiguration {
allowConcurrentSaves?: boolean;
resourceName?: string;
dataService?: DataService;
tag?: string;
}
interface SaveResult {
entities: Entity[];
keyMappings: any;
XHR: XMLHttpRequest;
}
class ValidationError {
key: string;
context: any;
errorMessage: string;
property: IProperty;
propertyName: string;
validator: Validator;
getKey: (validator: Validator, property: string) => string;
constructor (validator: Validator, context: any, errorMessage: string, key: string);
}
class ValidationOptions {
static defaultInstance: ValidationOptions;
validateOnAttach: boolean;
validateOnPropertyChange: boolean;
validateOnQuery: boolean;
validateOnSave: boolean;
constructor (config?: ValidationOptionsConfiguration);
setAsDefault(): ValidationOptions;
using(config: ValidationOptionsConfiguration): ValidationOptions;
}
interface ValidationOptionsConfiguration {
validateOnAttach?: boolean;
validateOnSave?: boolean;
validateOnQuery?: boolean;
validateOnPropertyChange?: boolean;
}
class Validator {
static messageTemplates: any;
context: any;
name: string;
constructor (name: string, validatorFn: ValidatorFunction, context?: any);
static bool(): Validator;
static byte(): Validator;
static date(): Validator;
static duration(): Validator;
static guid(): Validator;
static int16(): Validator;
static int32(): Validator;
static int64(): Validator;
static maxLength(context: { maxLength: number; }): Validator;
static number(): Validator;
static required(): Validator;
static string(): Validator;
static stringLength(context: { maxLength: number; minLength: number; }): Validator;
static register(validator: Validator): void;
static registerFactory(fn: () => Validator, name: string): void;
validate(value: any, context?: any): ValidationError;
getMessage(): string;
}
interface ValidatorFunction {
(value: any, context: ValidatorFunctionContext): void;
}
interface ValidatorFunctionContext {
value: any;
validatorName: string;
displayName: string;
messageTemplate: string;
message?: string;
}
var metadataVersion: string;
var remoteAccess_odata: string;
var remoteAccess_webApi: string;
var version: string;
}
declare module breeze.config {
var ajax: string;
var dataService: string;
var functionRegistry: Object;
export function getAdapter(interfaceName: string, adapterName: string): Object;
export function getAdapterInstance(interfaceName: string, adapterName?: string): Object;
export function initializeAdapterInstance(interfaceName: string, adapterName: string, isDefault: boolean): void;
export function initializeAdapterInstances(config: Object): void;
var interfaceInitialized: Event;
var interfaceRegistry: Object;
var objectRegistry: Object;
export function registerAdapter(interfaceName: string, adapterCtor: Function): void;
export function registerFunction(fn: Function, fnName: string): void;
export function registerType(ctor: Function, typeName: string): void;
//static setProperties(config: Object): void; //deprecated
var stringifyPad: string;
var typeRegistry: Object;
}