Adjusting type angular.resource type definitions and tests to better reflect actual interface (particularly promises)

This commit is contained in:
miffels 2014-04-08 12:05:23 +02:00
parent e8af12bfa7
commit d98910416f
2 changed files with 117 additions and 44 deletions

View File

@ -19,7 +19,9 @@ actionDescriptor.params = { key: 'value' };
///////////////////////////////////////
var resourceClass: IMyResourceClass;
var resource: IMyResource;
var resourceArray: IMyResource[];
var resourceArray: ng.resource.IResourceArray<IMyResource>;
var promise : ng.IPromise<IMyResource>;
var arrayPromise : ng.IPromise<IMyResource[]>;
resource = resourceClass.delete();
resource = resourceClass.delete({ key: 'value' });
@ -30,6 +32,15 @@ resource = resourceClass.delete({ key: 'value' }, { key: 'value' });
resource = resourceClass.delete({ key: 'value' }, { key: 'value' }, function () { });
resource = resourceClass.delete({ key: 'value' }, { key: 'value' }, function () { }, function () { });
promise = resource.$delete();
promise = resource.$delete({ key: 'value' });
promise = resource.$delete({ key: 'value' }, function () { });
promise = resource.$delete(function () { });
promise = resource.$delete(function () { }, function () { });
promise = resource.$delete({ key: 'value' }, { key: 'value' });
promise = resource.$delete({ key: 'value' }, { key: 'value' }, function () { });
promise = resource.$delete({ key: 'value' }, { key: 'value' }, function () { }, function () { });
resource = resourceClass.get();
resource = resourceClass.get({ key: 'value' });
resource = resourceClass.get({ key: 'value' }, function () { });
@ -39,6 +50,15 @@ resource = resourceClass.get({ key: 'value' }, { key: 'value' });
resource = resourceClass.get({ key: 'value' }, { key: 'value' }, function () { });
resource = resourceClass.get({ key: 'value' }, { key: 'value' }, function () { }, function () { });
promise = resource.$get();
promise = resource.$get({ key: 'value' });
promise = resource.$get({ key: 'value' }, function () { });
promise = resource.$get(function () { });
promise = resource.$get(function () { }, function () { });
promise = resource.$get({ key: 'value' }, { key: 'value' });
promise = resource.$get({ key: 'value' }, { key: 'value' }, function () { });
promise = resource.$get({ key: 'value' }, { key: 'value' }, function () { }, function () { });
resourceArray = resourceClass.query();
resourceArray = resourceClass.query({ key: 'value' });
resourceArray = resourceClass.query({ key: 'value' }, function () { });
@ -48,6 +68,15 @@ resourceArray = resourceClass.query({ key: 'value' }, { key: 'value' });
resourceArray = resourceClass.query({ key: 'value' }, { key: 'value' }, function () { });
resourceArray = resourceClass.query({ key: 'value' }, { key: 'value' }, function () { }, function () { });
arrayPromise = resourceArray[0].query();
arrayPromise = resourceArray[0].query({ key: 'value' });
arrayPromise = resourceArray[0].query({ key: 'value' }, function () { });
arrayPromise = resourceArray[0].query(function () { });
arrayPromise = resourceArray[0].query(function () { }, function () { });
arrayPromise = resourceArray[0].query({ key: 'value' }, { key: 'value' });
arrayPromise = resourceArray[0].query({ key: 'value' }, { key: 'value' }, function () { });
arrayPromise = resourceArray[0].query({ key: 'value' }, { key: 'value' }, function () { }, function () { });
resource = resourceClass.remove();
resource = resourceClass.remove({ key: 'value' });
resource = resourceClass.remove({ key: 'value' }, function () { });
@ -57,6 +86,15 @@ resource = resourceClass.remove({ key: 'value' }, { key: 'value' });
resource = resourceClass.remove({ key: 'value' }, { key: 'value' }, function () { });
resource = resourceClass.remove({ key: 'value' }, { key: 'value' }, function () { }, function () { });
promise = resource.$remove();
promise = resource.$remove({ key: 'value' });
promise = resource.$remove({ key: 'value' }, function () { });
promise = resource.$remove(function () { });
promise = resource.$remove(function () { }, function () { });
promise = resource.$remove({ key: 'value' }, { key: 'value' });
promise = resource.$remove({ key: 'value' }, { key: 'value' }, function () { });
promise = resource.$remove({ key: 'value' }, { key: 'value' }, function () { }, function () { });
resource = resourceClass.save();
resource = resourceClass.save({ key: 'value' });
resource = resourceClass.save({ key: 'value' }, function () { });
@ -66,6 +104,15 @@ resource = resourceClass.save({ key: 'value' }, { key: 'value' });
resource = resourceClass.save({ key: 'value' }, { key: 'value' }, function () { });
resource = resourceClass.save({ key: 'value' }, { key: 'value' }, function () { }, function () { });
promise = resource.$save();
promise = resource.$save({ key: 'value' });
promise = resource.$save({ key: 'value' }, function () { });
promise = resource.$save(function () { });
promise = resource.$save(function () { }, function () { });
promise = resource.$save({ key: 'value' }, { key: 'value' });
promise = resource.$save({ key: 'value' }, { key: 'value' }, function () { });
promise = resource.$save({ key: 'value' }, { key: 'value' }, function () { }, function () { });
///////////////////////////////////////
// IResourceService
///////////////////////////////////////

View File

@ -53,64 +53,90 @@ declare module ng.resource {
interface IResourceClass<T> {
new(dataOrParams? : any) : T;
get(): T;
get(dataOrParams: any): T;
get(dataOrParams: any, success: Function): T;
get(params: Object): T;
get(success: Function, error?: Function): T;
get(params: any, data: any, success?: Function, error?: Function): T;
get(params: Object, success: Function, error?: Function): T;
get(params: Object, data: Object, success?: Function): T;
get(params: Object, data: Object, success: Function, error?: Function): T;
query(): IResourceArray<T>;
query(params: Object): IResourceArray<T>;
query(success: Function, error?: Function): IResourceArray<T>;
query(params: Object, success: Function, error?: Function): IResourceArray<T>;
query(params: Object, data: Object, success?: Function): IResourceArray<T>;
query(params: Object, data: Object, success: Function, error?: Function): IResourceArray<T>;
save(): T;
save(dataOrParams: any): T;
save(dataOrParams: any, success: Function): T;
save(data: Object): T;
save(success: Function, error?: Function): T;
save(params: any, data: any, success?: Function, error?: Function): T;
query(): T[];
query(dataOrParams: any): T[];
query(dataOrParams: any, success: Function): T[];
query(success: Function, error?: Function): T[];
query(params: any, data: any, success?: Function, error?: Function): T[];
save(data: Object, success: Function, error?: Function): T;
save(params: Object, data: Object, success?: Function): T;
save(params: Object, data: Object, success: Function, error?: Function): T;
remove(): T;
remove(dataOrParams: any): T;
remove(dataOrParams: any, success: Function): T;
remove(params: Object): T;
remove(success: Function, error?: Function): T;
remove(params: any, data: any, success?: Function, error?: Function): T;
remove(params: Object, success: Function, error?: Function): T;
remove(params: Object, data: Object, success?: Function): T;
remove(params: Object, data: Object, success: Function, error?: Function): T;
delete(): T;
delete(dataOrParams: any): T;
delete(dataOrParams: any, success: Function): T;
delete(params: Object): T;
delete(success: Function, error?: Function): T;
delete(params: any, data: any, success?: Function, error?: Function): T;
delete(params: Object, success: Function, error?: Function): T;
delete(params: Object, data: Object, success?: Function): T;
delete(params: Object, data: Object, success: Function, error?: Function): T;
}
interface IResource<T> {
$get(): T;
$get(dataOrParams: any): T;
$get(dataOrParams: any, success: Function): T;
$get(success: Function, error?: Function): T;
$get(params: any, data: any, success?: Function, error?: Function): T;
$save(): T;
$save(dataOrParams: any): T;
$save(dataOrParams: any, success: Function): T;
$save(success: Function, error?: Function): T;
$save(params: any, data: any, success?: Function, error?: Function): T;
$query(): T[];
$query(dataOrParams: any): T[];
$query(dataOrParams: any, success: Function): T[];
$query(success: Function, error?: Function): T[];
$query(params: any, data: any, success?: Function, error?: Function): T[];
$remove(): T;
$remove(dataOrParams: any): T;
$remove(dataOrParams: any, success: Function): T;
$remove(success: Function, error?: Function): T;
$remove(params: any, data: any, success?: Function, error?: Function): T;
$delete(): T;
$delete(dataOrParams: any): T;
$delete(dataOrParams: any, success: Function): T;
$delete(success: Function, error?: Function): T;
$delete(params: any, data: any, success?: Function, error?: Function): T;
$get(): ng.IPromise<T>;
$get(params: Object): ng.IPromise<T>;
$get(success: Function, error?: Function): ng.IPromise<T>;
$get(params: Object, success: Function, error?: Function): ng.IPromise<T>;
$get(params: Object, data: Object, success?: Function): ng.IPromise<T>;
$get(params: Object, data: Object, success: Function, error?: Function): ng.IPromise<T>;
$query(): ng.IPromise<T[]>;
$query(params: Object): ng.IPromise<T[]>;
$query(success: Function, error?: Function): ng.IPromise<T[]>;
$query(params: Object, success: Function, error?: Function): ng.IPromise<T[]>;
$query(params: Object, data: Object, success?: Function): ng.IPromise<T[]>;
$query(params: Object, data: Object, success: Function, error?: Function): ng.IPromise<T[]>;
$save(): ng.IPromise<T>;
$save(data: Object): ng.IPromise<T>;
$save(success: Function, error?: Function): ng.IPromise<T>;
$save(data: Object, success: Function, error?: Function): ng.IPromise<T>;
$save(params: Object, data: Object, success?: Function): ng.IPromise<T>;
$save(params: Object, data: Object, success: Function, error?: Function): ng.IPromise<T>;
$remove(): ng.IPromise<T>;
$remove(params: Object): ng.IPromise<T>;
$remove(success: Function, error?: Function): ng.IPromise<T>;
$remove(params: Object, success: Function, error?: Function): ng.IPromise<T>;
$remove(params: Object, data: Object, success?: Function): ng.IPromise<T>;
$remove(params: Object, data: Object, success: Function, error?: Function): ng.IPromise<T>;
$delete(): ng.IPromise<T>;
$delete(params: Object): ng.IPromise<T>;
$delete(success: Function, error?: Function): ng.IPromise<T>;
$delete(params: Object, success: Function, error?: Function): ng.IPromise<T>;
$delete(params: Object, data: Object, success?: Function): ng.IPromise<T>;
$delete(params: Object, data: Object, success: Function, error?: Function): ng.IPromise<T>;
/** the promise of the original server interaction that created this instance. **/
$promise : ng.IPromise<T>;
$resolved : boolean;
}
interface Array {}
interface IResourceArray<T> extends Array {
/** the promise of the original server interaction that created this collection. **/
$promise : ng.IPromise<T>;
$resolved : boolean;
}
/** when creating a resource factory via IModule.factory */
interface IResourceServiceFactoryFunction<T> {
($resource: ng.resource.IResourceService): IResourceClass<T>;