From 9ad3c8740a4fbac553e5cff20c48c81c41aa18e0 Mon Sep 17 00:00:00 2001 From: John Emau Date: Mon, 11 Nov 2013 09:37:28 -0800 Subject: [PATCH] removed IActionCall and changed query method to return an IResource array Conflicts: angularjs/angular-resource-tests.ts --- angularjs/angular-resource-tests.ts | 75 +++++++++++++++++++++++++++++ angularjs/angular-resource.d.ts | 74 ++++++++++++++++++++-------- 2 files changed, 128 insertions(+), 21 deletions(-) create mode 100644 angularjs/angular-resource-tests.ts diff --git a/angularjs/angular-resource-tests.ts b/angularjs/angular-resource-tests.ts new file mode 100644 index 0000000000..2b7c5c4386 --- /dev/null +++ b/angularjs/angular-resource-tests.ts @@ -0,0 +1,75 @@ +/// + +/////////////////////////////////////// +// IActionDescriptor +/////////////////////////////////////// +var actionDescriptor: ng.resource.IActionDescriptor; + +actionDescriptor.headers = { header: 'value' }; +actionDescriptor.isArray = true; +actionDescriptor.method = 'method action'; +actionDescriptor.params = { key: 'value' }; + + +/////////////////////////////////////// +// IResourceClass +/////////////////////////////////////// +var resourceClass: ng.resource.IResourceClass; +var resource: ng.resource.IResource; +var resourceArray: ng.resource.IResource[]; + +resource = resourceClass.delete(); +resource = resourceClass.delete({ key: 'value' }); +resource = resourceClass.delete({ key: 'value' }, function () { }); +resource = resourceClass.delete(function () { }); +resource = resourceClass.delete(function () { }, function () { }); +resource = resourceClass.delete({ key: 'value' }, { key: 'value' }); +resource = resourceClass.delete({ key: 'value' }, { key: 'value' }, function () { }); +resource = resourceClass.delete({ key: 'value' }, { key: 'value' }, function () { }, function () { }); + +resource = resourceClass.get(); +resource = resourceClass.get({ key: 'value' }); +resource = resourceClass.get({ key: 'value' }, function () { }); +resource = resourceClass.get(function () { }); +resource = resourceClass.get(function () { }, function () { }); +resource = resourceClass.get({ key: 'value' }, { key: 'value' }); +resource = resourceClass.get({ key: 'value' }, { key: 'value' }, function () { }); +resource = resourceClass.get({ key: 'value' }, { key: 'value' }, function () { }, function () { }); + +resourceArray = resourceClass.query(); +resourceArray = resourceClass.query({ key: 'value' }); +resourceArray = resourceClass.query({ key: 'value' }, function () { }); +resourceArray = resourceClass.query(function () { }); +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 () { }); + +resource = resourceClass.remove(); +resource = resourceClass.remove({ key: 'value' }); +resource = resourceClass.remove({ key: 'value' }, function () { }); +resource = resourceClass.remove(function () { }); +resource = resourceClass.remove(function () { }, function () { }); +resource = resourceClass.remove({ key: 'value' }, { key: 'value' }); +resource = resourceClass.remove({ key: 'value' }, { key: 'value' }, function () { }); +resource = resourceClass.remove({ key: 'value' }, { key: 'value' }, function () { }, function () { }); + +resource = resourceClass.save(); +resource = resourceClass.save({ key: 'value' }); +resource = resourceClass.save({ key: 'value' }, function () { }); +resource = resourceClass.save(function () { }); +resource = resourceClass.save(function () { }, function () { }); +resource = resourceClass.save({ key: 'value' }, { key: 'value' }); +resource = resourceClass.save({ key: 'value' }, { key: 'value' }, function () { }); +resource = resourceClass.save({ key: 'value' }, { key: 'value' }, function () { }, function () { }); + + +/////////////////////////////////////// +// IModule +/////////////////////////////////////// +var mod: ng.IModule; +var resourceServiceFactoryFunction: ng.resource.IResourceServiceFactoryFunction; +var resourceService: ng.resource.IResourceService; + +resourceServiceFactoryFunction = function (resourceService) { return resourceClass }; +mod = mod.factory('factory name', resourceServiceFactoryFunction); diff --git a/angularjs/angular-resource.d.ts b/angularjs/angular-resource.d.ts index c66bb341d1..4942883652 100644 --- a/angularjs/angular-resource.d.ts +++ b/angularjs/angular-resource.d.ts @@ -36,34 +36,66 @@ declare module ng.resource { // Baseclass for everyresource with default actions. // If you define your new actions for the resource, you will need // to extend this interface and typecast the ResourceClass to it. - interface IResourceClass { - get: IActionCall; - save: IActionCall; - query: IActionCall; - remove: IActionCall; - delete: IActionCall; - } - + // // In case of passing the first argument as anything but a function, // it's gonna be considered data if the action method is POST, PUT or // PATCH (in other words, methods with body). Otherwise, it's going // to be considered as parameters to the request. - interface IActionCall { - (): IResource; - (dataOrParams: any): IResource; - (dataOrParams: any, success: Function): IResource; - (success: Function, error?: Function): IResource; - (params: any, data: any, success?: Function, error?: Function): IResource; + // https://github.com/angular/angular.js/blob/v1.2.0/src/ngResource/resource.js#L461-L465 + interface IResourceClass { + get(): IResource; + get(dataOrParams: any): IResource; + get(dataOrParams: any, success: Function): IResource; + get(success: Function, error?: Function): IResource; + get(params: any, data: any, success?: Function, error?: Function): IResource; + save(): IResource; + save(dataOrParams: any): IResource; + save(dataOrParams: any, success: Function): IResource; + save(success: Function, error?: Function): IResource; + save(params: any, data: any, success?: Function, error?: Function): IResource; + query(): IResource[]; + query(dataOrParams: any): IResource[]; + query(dataOrParams: any, success: Function): IResource[]; + query(success: Function, error?: Function): IResource[]; + query(params: any, data: any, success?: Function, error?: Function): IResource[]; + remove(): IResource; + remove(dataOrParams: any): IResource; + remove(dataOrParams: any, success: Function): IResource; + remove(success: Function, error?: Function): IResource; + remove(params: any, data: any, success?: Function, error?: Function): IResource; + delete(): IResource; + delete(dataOrParams: any): IResource; + delete(dataOrParams: any, success: Function): IResource; + delete(success: Function, error?: Function): IResource; + delete(params: any, data: any, success?: Function, error?: Function): IResource; } interface IResource { - $save: IActionCall; - $remove: IActionCall; - $delete: IActionCall; - - // No documented, but they are there, just as any custom action will be - $query: IActionCall; - $get: IActionCall; + $get(): IResource; + $get(dataOrParams: any): IResource; + $get(dataOrParams: any, success: Function): IResource; + $get(success: Function, error?: Function): IResource; + $get(params: any, data: any, success?: Function, error?: Function): IResource; + $save(): IResource; + $save(dataOrParams: any): IResource; + $save(dataOrParams: any, success: Function): IResource; + $save(success: Function, error?: Function): IResource; + $save(params: any, data: any, success?: Function, error?: Function): IResource; + $query(): IResource[]; + $query(dataOrParams: any): IResource[]; + $query(dataOrParams: any, success: Function): IResource[]; + $query(success: Function, error?: Function): IResource[]; + $query(params: any, data: any, success?: Function, error?: Function): IResource[]; + $remove(): IResource; + $remove(dataOrParams: any): IResource; + $remove(dataOrParams: any, success: Function): IResource; + $remove(success: Function, error?: Function): IResource; + $remove(params: any, data: any, success?: Function, error?: Function): IResource; + $delete(): IResource; + $delete(dataOrParams: any): IResource; + $delete(dataOrParams: any, success: Function): IResource; + $delete(success: Function, error?: Function): IResource; + $delete(params: any, data: any, success?: Function, error?: Function): IResource; } /** when creating a resource factory via IModule.factory */