Fixing array interface and tests and adding humble co-author note

This commit is contained in:
miffels
2014-04-08 13:46:34 +02:00
parent d98910416f
commit f037b84665
2 changed files with 54 additions and 43 deletions
+48 -38
View File
@@ -20,8 +20,6 @@ actionDescriptor.params = { key: 'value' };
var resourceClass: IMyResourceClass;
var resource: 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' });
@@ -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<IMyResource>;
var arrayPromise : ng.IPromise<IMyResource[]>;
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<IMyResourceClass>(resourceService
resourceServiceFactoryFunction = function (resourceService: ng.resource.IResourceService) { return <any>resourceClass; };
mod = mod.factory('factory name', resourceServiceFactoryFunction);
///////////////////////////////////////
// IResource
///////////////////////////////////////
+6 -5
View File
@@ -1,6 +1,6 @@
// Type definitions for Angular JS 1.2 (ngResource module)
// Project: http://angularjs.org
// Definitions by: Diego Vilar <http://github.com/diegovilar>
// Definitions by: Diego Vilar <http://github.com/diegovilar>, Michael Jess <http://github.com/miffels> (minor enhancements)
// Definitions: https://github.com/daptiv/DefinitelyTyped
/// <reference path="angular.d.ts" />
@@ -129,11 +129,12 @@ declare module ng.resource {
$resolved : boolean;
}
interface Array {}
interface IResourceArray<T> extends Array {
/**
* Really just a regular Array object with $promise and $resolve attached to it
*/
interface IResourceArray<T> extends Array<T> {
/** the promise of the original server interaction that created this collection. **/
$promise : ng.IPromise<T>;
$promise : ng.IPromise<T[]>;
$resolved : boolean;
}