ts-odatajs
Version:
The Olingo OData Client for JavaScript (and TypeScript) is a new cross-browser library that enables data-centric web applications by leveraging modern protocols such as JSON and OData and HTML5-enabled browser features. It's designed to be small, fast and
485 lines (401 loc) • 14.5 kB
TypeScript
export namespace HttpOData {
export interface BaseResponse {
[x: string]: any;
statusCode: string;
statusText: string;
headers?: { [name: string]: string; };
body?: string;
}
export interface Context {
metadata: Edmx.Edmx;
recognizeDates: boolean;
callbackParameterName: string;
formatQueryString: string;
enableJsonpCallback: boolean;
}
export interface HttpClient {
formatQueryString?: string;
enableJsonPCallback?: boolean;
callbackParameterName?: string;
/** Performs a network request.
* @param {Object} request - Request description
* @param {Function} success - Success callback with the response object.
* @param {Function} error - Error callback with an error object.
* @returns {Object} Object with an 'abort' method for the operation.
*/
request(request: Request, success: (response: Response) => void, error: (error: Error) => void): RequestWithAbort;
}
export interface Error {
[x: string]: any;
message: string;
request?: Request;
response?: Response;
}
export interface Request {
headers?: { [name: string]: string; };
requestUri: string;
method?: string; //"GET" | "POST" | "PUT" | "PATCH" | "DELETE";
withCredentials?: boolean;
timeoutMS?: number;
body?: any;
data?: any;
}
export interface Response extends BaseResponse {
requestUri: any; //Url;
data?: any;
}
// ClientRequest
export interface RequestWithAbort {
abort(): void;
}
}
export namespace Batch {
export interface BatchRequest {
__batchRequests: ChangeRequestSet[];
}
export interface ChangeRequestSet {
__changeRequests: ChangeRequest[];
}
export interface ChangeRequest {
headers: { [name: string]: string; };
requestUri: string;
method: string;
data?: any;
}
export interface BatchResponse {
__batchResponses: ChangeResponseSet[];
}
export interface ChangeResponseSet {
__changeResponses: (ChangeResponse | FailedResponse)[];
}
export interface ChangeResponse extends HttpOData.BaseResponse {
data?: any;
}
export interface FailedResponse {
message: string;
response: ChangeResponse;
}
}
export namespace Edm {
export interface Action extends Base.NamedExpression, Base.Annotatable {
isBound?: string; /*boolean;*/
entitySetPath?: string;
returnType?: ReturnType;
parameter?: Parameter[];
}
export interface ActionImport extends Base.NamedExpression, Base.Annotatable {
action: string;
entitySet?: string;
}
export interface And extends Base.ASingleExpression, Base.Annotatable { }
export interface Annotation extends Base.ASingleExpression, Base.Annotatable {
term: string;
qualifier?: string;
}
export interface Annotations extends Base.Annotatable {
target: string;
qualifier?: string;
}
export interface Apply extends Base.AMultiExpression, Base.Annotatable {
function: string;
}
export interface Cast extends Base.ASingleExpression, Base.Annotatable {
type: string;
}
export interface Collection extends Base.AMultiExpression { }
export interface ComplexType extends Base.NamedExpression, Base.Annotatable {
baseType?: string;
abstract?: string; /*boolean;*/
openType?: string; /*boolean;*/
property?: Property[];
navigationProperty?: NavigationProperty[];
}
export interface EntityContainer extends Base.NamedExpression, Base.Annotatable {
extends?: string;
entitySet: EntitySet[];
singleton?: Singleton[];
actionImport?: ActionImport[];
functionImport?: FunctionImport[];
associationSet?: EdmExtra.Association[];
}
export interface EntitySet extends Base.NamedExpression, Base.Annotatable {
entityType: string;
includeInServiceDocument?: string; /*boolean;*/
navigationPropertyBinding?: NavigationPropertyBinding[];
}
export interface EntityType extends Base.NamedExpression, Base.Annotatable {
baseType?: string;
abstract?: string; /*boolean;*/
openType?: string; /*boolean;*/
hasStream?: string; /*boolean;*/
key?: Key;
property?: Property[];
navigationProperty?: NavigationProperty[];
}
export interface EnumType extends Base.NamedExpression, Base.Annotatable {
underlyingType?: "Edm.Byte" | "Edm.SByte" | "Edm.Int16" | "Edm.Int32" | "Edm.Int64";
isFlags?: string; /*boolean;*/
member: Member[];
}
export interface Eq extends Base.ASingleExpression, Base.Annotatable { }
export interface Function extends Base.NamedExpression, Base.Annotatable {
isBound?: string; /*boolean;*/
isComposable?: string; /*boolean;*/
entitySetPath?: string;
returnType?: ReturnType;
parameter?: Parameter[];
}
export interface FunctionImport extends Base.NamedExpression, Base.Annotatable {
function: string;
entitySet?: string;
includeInServiceDocument?: string; /*boolean;*/
}
export interface Ge extends Base.ASingleExpression, Base.Annotatable { }
export interface Gt extends Base.ASingleExpression, Base.Annotatable { }
export interface If extends Base.AMultiExpression, Base.Annotatable { }
export interface IsOf extends Base.ASingleExpression, Base.Annotatable {
type: string;
maxLength?: string; /*number;*/
precision?: string; /*number;*/
scale?: string; /*number | "variable";*/
SRID?: string; /*number | "variable";*/
}
export interface Key {
propertyRef: PropertyRef[];
}
export interface LabeledElement extends Base.ASingleExpression, Base.NamedExpression, Base.Annotatable { }
export interface Le extends Base.ASingleExpression, Base.Annotatable { }
export interface Lt extends Base.ASingleExpression, Base.Annotatable { }
export interface Member extends Base.NamedExpression, Base.Annotatable {
value?: string; /*number;*/
}
export interface NavigationProperty extends Base.NamedExpression, Base.Annotatable {
type: string;
partner?: string;
containsTarget?: string; /*boolean;*/
referentialConstraint?: ReferentialConstraint[];
onDelete?: OnDelete;
relationship?: string;
fromRole?: string;
toRole?: string;
}
export interface NavigationPropertyBinding {
path: string;
target: string;
}
export interface Ne extends Base.ASingleExpression, Base.Annotatable { }
export interface Not extends Base.ASingleExpression, Base.Annotatable { }
export interface Null extends Base.Annotatable { }
export interface OnDelete extends Base.Annotatable {
action: "Cascade" | "None" | "SetNull" | "SetDefault";
}
export interface Or extends Base.ASingleExpression, Base.Annotatable { }
export interface Parameter extends Base.NamedExpression, Base.Annotatable {
type: string;
nullable?: string; /*boolean;*/
maxLength?: string; /*number;*/
precision?: string; /*number;*/
scale?: string; /*number | "variable";*/
SRID?: string; /*number | "variable";*/
}
export interface Property extends Base.NamedExpression, Base.Annotatable {
type: string;
nullable?: string; /*boolean;*/
maxLength?: string; /*number;*/
precision?: string; /*number;*/
scale?: string; /*number | "variable";*/
unicode?: string; /*boolean;*/
SRID?: string; /*number | "variable";*/
defaultValue?: any;
}
export interface PropertyRef extends Base.NamedExpression {
alias?: string;
}
export interface PropertyValue extends Base.ASingleExpression, Base.Annotatable {
property: string;
}
export interface Record extends Base.Annotatable {
propertyValue?: PropertyValue[];
}
export interface ReferentialConstraint extends Base.Annotatable {
property: string;
referencedProperty: string;
}
export interface ReturnType extends Base.Annotatable {
type: string;
nullable?: string; /*boolean;*/
maxLength?: string; /*number;*/
precision?: string; /*number;*/
scale?: string; /*number | "variable";*/
SRID?: string; /*number | "variable";*/
}
export interface Schema extends Base.Annotatable {
namespace: string;
alias?: string;
action?: Action[];
annotations?: Annotations[];
complexType?: ComplexType[];
entityContainer: EntityContainer;
entityType?: EntityType[];
enumType?: EnumType[];
function?: Function[];
term?: Term[];
typeDefinition?: TypeDefinition[];
association?: EdmExtra.Association[];
}
export interface Singleton extends Base.NamedExpression, Base.Annotatable {
type: string;
navigationPropertyBinding?: NavigationPropertyBinding[];
}
export interface Term extends Base.NamedExpression, Base.Annotatable {
type: string;
baseTerm?: string;
appliesTo?: string;
nullable?: string; /*boolean;*/
maxLength?: string; /*number;*/
precision?: string; /*number;*/
scale?: string; /*number | "variable";*/
SRID?: string; /*number | "variable";*/
defaultValue?: any;
}
export interface TypeDefinition extends Base.NamedExpression, Base.Annotatable {
underlyingType: string;
maxLength?: string; /*number;*/
precision?: string; /*number;*/
scale?: string; /*number | "variable";*/
unicode?: string; /*boolean;*/
SRID?: string; /*number | "variable";*/
}
export interface UrlRef extends Base.ASingleExpression, Base.Annotatable { }
export namespace Base {
export interface AMultiExpression {
binary?: Text[];
bool?: Text[];
date?: Text[];
dateTimeOffset?: Text[];
decimal?: Text[];
duration?: Text[];
enumMember?: Text[];
float?: Text[];
guid?: Text[];
int?: Text[];
string?: Text[];
timeOfDay?: Text[];
annotationPath?: Text[];
navigationPropertyPath?: Text[];
path?: Text[];
propertyPath?: Text[];
urlRef?: UrlRef[];
and?: And[];
or?: Or[];
not?: Not[];
eq?: Eq[];
ne?: Ne[];
gt?: Gt[];
ge?: Ge[];
lt?: Lt[];
le?: Le[];
apply?: Apply[];
cast?: Cast[];
collection?: Collection[];
if?: If[];
isOf?: IsOf[];
labeledElement?: LabeledElement[];
labeledElementReference?: Text[];
null?: Null[];
record?: Record[];
}
export interface Annotatable {
annotation?: Annotation[];
}
export interface ASingleExpression {
binary?: string | Text;
bool?: string | Text; /*boolean;*/
date?: string | Text;
dateTimeOffset?: string | Text; /*Date;*/
decimal?: string | Text; /*number;*/
duration?: string | Text;
enumMember?: string | Text;
float?: string | Text; /*number;*/
guid?: string | Text;
int?: string | Text; /*number;*/
string?: string | Text;
timeOfDay?: string | Text;
annotationPath?: string | Text;
navigationPropertyPath?: string | Text;
path?: string | Text;
propertyPath?: string | Text;
urlRef?: string | UrlRef;
and?: And;
or?: Or;
not?: Not;
eq?: Eq;
ne?: Ne;
gt?: Gt;
ge?: Ge;
lt?: Lt;
le?: Le;
apply?: Apply;
cast?: Cast;
collection?: Collection;
if?: If;
isOf?: IsOf;
labeledElement?: LabeledElement;
labeledElementReference?: Text;
null?: Null;
record?: Record;
}
export interface NamedExpression {
name: string;
}
export interface Text {
text: string;
}
}
}
export namespace Edmx {
export interface DataServices {
schema: Edm.Schema[];
}
export interface Edmx {
version: string;
reference?: Reference;
dataServices: DataServices;
}
export interface Reference extends Edm.Base.Annotatable {
uri: string;
include?: Include[];
includeAnnotations?: IncludeAnnotations[];
}
export interface Include {
namespace: string;
alias?: string;
}
export interface IncludeAnnotations {
termNamespace: string;
qualifier?: string;
targetNamespace?: string;
}
}
export namespace EdmExtra {
export interface Association {
association: string;
end: AssociationEndpoint[];
name: string;
referentialConstraint: AssociationConstraint;
}
export interface AssociationConstraint {
dependent: ConstraintMember;
principal: ConstraintMember;
}
export interface AssociationEndpoint {
entitySet: string;
multiplicity: string;
role: string;
type: string;
}
export interface ConstraintMember {
propertyRef: Edm.PropertyRef[];
role: string;
}
}