From f037b846658263f8eb8d7a01de7d072b5c7289e2 Mon Sep 17 00:00:00 2001 From: miffels Date: Tue, 8 Apr 2014 13:46:34 +0200 Subject: [PATCH] Fixing array interface and tests and adding humble co-author note --- angularjs/angular-resource-tests.ts | 86 ++++++++++++++++------------- angularjs/angular-resource.d.ts | 11 ++-- 2 files changed, 54 insertions(+), 43 deletions(-) diff --git a/angularjs/angular-resource-tests.ts b/angularjs/angular-resource-tests.ts index 5a276e949..327fcaba6 100644 --- a/angularjs/angular-resource-tests.ts +++ b/angularjs/angular-resource-tests.ts @@ -20,8 +20,6 @@ actionDescriptor.params = { key: 'value' }; var resourceClass: IMyResourceClass; var resource: IMyResource; var resourceArray: ng.resource.IResourceArray; -var promise : ng.IPromise; -var arrayPromise : ng.IPromise; resource = resourceClass.delete(); resource = resourceClass.delete({ key: 'value' }); @@ -32,15 +30,6 @@ 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 () { }); @@ -50,15 +39,6 @@ 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 () { }); @@ -67,15 +47,7 @@ resourceArray = resourceClass.query(function () { }, function () { }); 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 () { }); +resourceArray.push(resource); resource = resourceClass.remove(); resource = resourceClass.remove({ key: 'value' }); @@ -86,15 +58,6 @@ 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 () { }); @@ -104,6 +67,49 @@ resource = resourceClass.save({ key: 'value' }, { key: 'value' }); resource = resourceClass.save({ key: 'value' }, { key: 'value' }, function () { }); resource = resourceClass.save({ key: 'value' }, { key: 'value' }, function () { }, function () { }); +/////////////////////////////////////// +// IResource +/////////////////////////////////////// + +var promise : ng.IPromise; +var arrayPromise : ng.IPromise; + +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 () { }); + +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 () { }); + +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 () { }); + +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 () { }); + promise = resource.$save(); promise = resource.$save({ key: 'value' }); promise = resource.$save({ key: 'value' }, function () { }); @@ -132,3 +138,7 @@ resourceClass = resourceServiceFactoryFunction(resourceService resourceServiceFactoryFunction = function (resourceService: ng.resource.IResourceService) { return resourceClass; }; mod = mod.factory('factory name', resourceServiceFactoryFunction); + +/////////////////////////////////////// +// IResource +/////////////////////////////////////// \ No newline at end of file diff --git a/angularjs/angular-resource.d.ts b/angularjs/angular-resource.d.ts index 942e5e120..52706d68d 100644 --- a/angularjs/angular-resource.d.ts +++ b/angularjs/angular-resource.d.ts @@ -1,6 +1,6 @@ // Type definitions for Angular JS 1.2 (ngResource module) // Project: http://angularjs.org -// Definitions by: Diego Vilar +// Definitions by: Diego Vilar , Michael Jess (minor enhancements) // Definitions: https://github.com/daptiv/DefinitelyTyped /// @@ -129,11 +129,12 @@ declare module ng.resource { $resolved : boolean; } - interface Array {} - - interface IResourceArray extends Array { + /** + * Really just a regular Array object with $promise and $resolve attached to it + */ + interface IResourceArray extends Array { /** the promise of the original server interaction that created this collection. **/ - $promise : ng.IPromise; + $promise : ng.IPromise; $resolved : boolean; }