mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-08-12 04:50:18 +00:00
Update Restangular definition
Add enhanced promises Add new methods up to current 1.4 Rewrite tests to make them more realistic
This commit is contained in:
Vendored
+101
-79
@@ -1,4 +1,4 @@
|
||||
// Type definitions for Restangular v1.2.2
|
||||
// Type definitions for Restangular v1.4.0
|
||||
// Project: https://github.com/mgonto/restangular
|
||||
// Definitions by: Boris Yankov <https://github.com/borisyankov/>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
@@ -6,7 +6,23 @@
|
||||
|
||||
/// <reference path="../angularjs/angular.d.ts" />
|
||||
|
||||
interface RestangularRequestConfig {
|
||||
|
||||
declare module restangular {
|
||||
|
||||
interface IPromise<T> extends ng.IPromise<T> {
|
||||
call(methodName: string, params?: any): IPromise<T>;
|
||||
get(fieldName: string): IPromise<T>;
|
||||
$object: T;
|
||||
}
|
||||
|
||||
interface ICollectionPromise<T> extends ng.IPromise<T> {
|
||||
push(object: any): ICollectionPromise<T>;
|
||||
call(methodName: string, params?: any): ICollectionPromise<T>;
|
||||
get(fieldName: string): ICollectionPromise<T>;
|
||||
$object: T[];
|
||||
}
|
||||
|
||||
interface IRequestConfig {
|
||||
params?: any;
|
||||
headers?: any;
|
||||
cache?: any;
|
||||
@@ -15,81 +31,9 @@ interface RestangularRequestConfig {
|
||||
transformRequest?: any;
|
||||
transformResponse?: any;
|
||||
timeout?: any; // number | promise
|
||||
}
|
||||
}
|
||||
|
||||
interface Restangular extends RestangularCustom {
|
||||
one(route: string, id?: number): RestangularElement;
|
||||
one(route: string, id?: string): RestangularElement;
|
||||
oneUrl(route: string, url: string): RestangularElement;
|
||||
all(route: string): RestangularCollection;
|
||||
allUrl(route: string, url: string): RestangularCollection;
|
||||
copy(fromElement: any): RestangularElement;
|
||||
withConfig(configurer: (RestangularProvider: RestangularProvider) => any): Restangular;
|
||||
restangularizeElement(parent: any, element: any, route: string, collection?: any, reqParams?: any): RestangularElement;
|
||||
restangularizeCollection(parent: any, element: any, route: string): RestangularCollection;
|
||||
stripRestangular(element: any): any;
|
||||
}
|
||||
|
||||
interface RestangularElement extends Restangular {
|
||||
get(queryParams?: any, headers?: any): ng.IPromise<any>;
|
||||
getList(subElement: any, queryParams?: any, headers?: any): ng.IPromise<any>;
|
||||
put(queryParams?: any, headers?: any): ng.IPromise<any>;
|
||||
post(subElement: any, elementToPost: any, queryParams?: any, headers?: any): ng.IPromise<any>;
|
||||
remove(queryParams?: any, headers?: any): ng.IPromise<any>;
|
||||
head(queryParams?: any, headers?: any): ng.IPromise<any>;
|
||||
trace(queryParams?: any, headers?: any): ng.IPromise<any>;
|
||||
options(queryParams?: any, headers?: any): ng.IPromise<any>;
|
||||
patch(queryParams?: any, headers?: any): ng.IPromise<any>;
|
||||
withHttpConfig(httpConfig: RestangularRequestConfig): RestangularElement;
|
||||
getRestangularUrl(): string;
|
||||
}
|
||||
|
||||
interface RestangularCollection extends Restangular {
|
||||
getList(queryParams?: any, headers?: any): ng.IPromise<any>;
|
||||
post(elementToPost: any, queryParams?: any, headers?: any): ng.IPromise<any>;
|
||||
head(queryParams?: any, headers?: any): ng.IPromise<any>;
|
||||
trace(queryParams?: any, headers?: any): ng.IPromise<any>;
|
||||
options(queryParams?: any, headers?: any): ng.IPromise<any>;
|
||||
patch(queryParams?: any, headers?: any): ng.IPromise<any>;
|
||||
putElement(idx: any, params: any, headers: any): ng.IPromise<any>;
|
||||
withHttpConfig(httpConfig: RestangularRequestConfig): RestangularCollection;
|
||||
getRestangularUrl(): string;
|
||||
}
|
||||
|
||||
interface RestangularCustom {
|
||||
customGET(path: string, params?: any, headers?: any): ng.IPromise<any>;
|
||||
customGETLIST(path: string, params?: any, headers?: any): ng.IPromise<any>;
|
||||
customDELETE(path: string, params?: any, headers?: any): ng.IPromise<any>;
|
||||
customPOST(elem?: any, path?: string, params?: any, headers?: any): ng.IPromise<any>;
|
||||
customPUT(elem?: any, path?: string, params?: any, headers?: any): ng.IPromise<any>;
|
||||
customOperation(operation: string, path: string, params?: any, headers?: any, elem?: any): ng.IPromise<any>;
|
||||
addRestangularMethod(name: string, operation: string, path?: string, params?: any, headers?: any, elem?: any): ng.IPromise<any>;
|
||||
}
|
||||
|
||||
interface RestangularProvider {
|
||||
setBaseUrl(baseUrl: string): void;
|
||||
setExtraFields(fields: string[]): void;
|
||||
setParentless(parentless: boolean, routes: string[]): void;
|
||||
setDefaultHttpFields(httpFields: any): void;
|
||||
addElementTransformer(route: string, transformer: Function): void;
|
||||
addElementTransformer(route: string, isCollection: boolean, transformer: Function): void;
|
||||
setOnElemRestangularized(callback: (elem: any, isCollection: boolean, what: string, restangular: Restangular) => any): void;
|
||||
setResponseInterceptor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: RestangularResponse, deferred: ng.IDeferred<any>) => any): void;
|
||||
setResponseExtractor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: RestangularResponse, deferred: ng.IDeferred<any>) => any): void;
|
||||
setRequestInterceptor(requestInterceptor: (element: any, operation: string, what: string, url: string) => any): void;
|
||||
setFullRequestInterceptor(fullRequestInterceptor: (element: any, operation: string, what: string, url: string, headers: any, params: any) => {element: any; headers: any; params: any}): void;
|
||||
setErrorInterceptor(errorInterceptor: (response: RestangularResponse) => any): void;
|
||||
setRestangularFields(fields: {[fieldName: string]: string}): void;
|
||||
setMethodOverriders(overriders: string[]): void;
|
||||
setDefaultRequestParams(params: any): void;
|
||||
setDefaultRequestParams(methods: any, params: any): void;
|
||||
setFullResponse(fullResponse: boolean): void;
|
||||
setDefaultHeaders(headers: any): void;
|
||||
setRequestSuffix(suffix: string): void;
|
||||
setUseCannonicalId(useCannonicalId: boolean): void;
|
||||
}
|
||||
|
||||
interface RestangularResponse {
|
||||
interface IResponse {
|
||||
status: number;
|
||||
data: any;
|
||||
config: {
|
||||
@@ -97,7 +41,85 @@ interface RestangularResponse {
|
||||
url: string;
|
||||
params: any;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
declare var Restangular: Restangular;
|
||||
declare var RestangularProvider: RestangularProvider;
|
||||
interface IProvider {
|
||||
setBaseUrl(baseUrl: string): void;
|
||||
setExtraFields(fields: string[]): void;
|
||||
setParentless(parentless: boolean, routes: string[]): void;
|
||||
setDefaultHttpFields(httpFields: any): void;
|
||||
addElementTransformer(route: string, transformer: Function): void;
|
||||
addElementTransformer(route: string, isCollection: boolean, transformer: Function): void;
|
||||
setTransformOnlyServerElements(active: boolean): void;
|
||||
setOnElemRestangularized(callback: (elem: any, isCollection: boolean, what: string, restangular: IService) => any): void;
|
||||
setResponseInterceptor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: IResponse, deferred: ng.IDeferred<any>) => any): void;
|
||||
setResponseExtractor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: IResponse, deferred: ng.IDeferred<any>) => any): void;
|
||||
addResponseInterceptor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: IResponse, deferred: ng.IDeferred<any>) => any): void;
|
||||
setRequestInterceptor(requestInterceptor: (element: any, operation: string, what: string, url: string) => any): void;
|
||||
addRequestInterceptor(requestInterceptor: (element: any, operation: string, what: string, url: string) => any): void;
|
||||
setFullRequestInterceptor(fullRequestInterceptor: (element: any, operation: string, what: string, url: string, headers: any, params: any, httpConfig: IRequestConfig) => {element: any; headers: any; params: any}): void;
|
||||
addFullRequestInterceptor(requestInterceptor: (element: any, operation: string, what: string, url: string, headers: any, params: any, httpConfig: IRequestConfig) => {headers: any; params: any; element: any; httpConfig: IRequestConfig}): void;
|
||||
setErrorInterceptor(errorInterceptor: (response: IResponse, deferred: ng.IDeferred<any>) => any): void;
|
||||
setRestangularFields(fields: {[fieldName: string]: string}): void;
|
||||
setMethodOverriders(overriders: string[]): void;
|
||||
setJsonp(jsonp: boolean): void;
|
||||
setDefaultRequestParams(params: any): void;
|
||||
setDefaultRequestParams(method: string, params: any): void;
|
||||
setDefaultRequestParams(methods: string[], params: any): void;
|
||||
setFullResponse(fullResponse: boolean): void;
|
||||
setDefaultHeaders(headers: any): void;
|
||||
setRequestSuffix(suffix: string): void;
|
||||
setUseCannonicalId(useCannonicalId: boolean): void;
|
||||
setEncodeIds(encode: boolean): void;
|
||||
}
|
||||
|
||||
interface ICustom {
|
||||
customGET(path: string, params?: any, headers?: any): IPromise<any>;
|
||||
customGETLIST(path: string, params?: any, headers?: any): ICollectionPromise<any>;
|
||||
customDELETE(path: string, params?: any, headers?: any): IPromise<any>;
|
||||
customPOST(elem?: any, path?: string, params?: any, headers?: any): IPromise<any>;
|
||||
customPUT(elem?: any, path?: string, params?: any, headers?: any): IPromise<any>;
|
||||
customOperation(operation: string, path: string, params?: any, headers?: any, elem?: any): IPromise<any>;
|
||||
addRestangularMethod(name: string, operation: string, path?: string, params?: any, headers?: any, elem?: any): IPromise<any>;
|
||||
}
|
||||
|
||||
interface IService extends ICustom {
|
||||
one(route: string, id?: number): IElement;
|
||||
one(route: string, id?: string): IElement;
|
||||
oneUrl(route: string, url: string): IElement;
|
||||
all(route: string): IElement;
|
||||
allUrl(route: string, url: string): IElement;
|
||||
copy(fromElement: any): IElement;
|
||||
withConfig(configurer: (RestangularProvider: IProvider) => any): IService;
|
||||
restangularizeElement(parent: any, element: any, route: string, collection?: any, reqParams?: any): IElement;
|
||||
restangularizeCollection(parent: any, element: any, route: string): ICollection;
|
||||
stripRestangular(element: any): any;
|
||||
}
|
||||
|
||||
interface IElement extends IService {
|
||||
get(queryParams?: any, headers?: any): IPromise<any>;
|
||||
getList(subElement?: any, queryParams?: any, headers?: any): ICollectionPromise<any>;
|
||||
put(queryParams?: any, headers?: any): IPromise<any>;
|
||||
post(subElement: any, elementToPost: any, queryParams?: any, headers?: any): IPromise<any>;
|
||||
post(elementToPost: any, queryParams?: any, headers?: any): IPromise<any>;
|
||||
remove(queryParams?: any, headers?: any): IPromise<any>;
|
||||
head(queryParams?: any, headers?: any): IPromise<any>;
|
||||
trace(queryParams?: any, headers?: any): IPromise<any>;
|
||||
options(queryParams?: any, headers?: any): IPromise<any>;
|
||||
patch(queryParams?: any, headers?: any): IPromise<any>;
|
||||
withHttpConfig(httpConfig: IRequestConfig): IElement;
|
||||
getRestangularUrl(): string;
|
||||
}
|
||||
|
||||
interface ICollection extends IService {
|
||||
getList(queryParams?: any, headers?: any): ICollectionPromise<any>;
|
||||
post(elementToPost: any, queryParams?: any, headers?: any): IPromise<any>;
|
||||
head(queryParams?: any, headers?: any): IPromise<any>;
|
||||
trace(queryParams?: any, headers?: any): IPromise<any>;
|
||||
options(queryParams?: any, headers?: any): IPromise<any>;
|
||||
patch(queryParams?: any, headers?: any): IPromise<any>;
|
||||
putElement(idx: any, params: any, headers: any): IPromise<any>;
|
||||
withHttpConfig(httpConfig: IRequestConfig): ICollection;
|
||||
getRestangularUrl(): string;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user