google-closure-compiler
Version:
Check, compile, optimize and compress Javascript with Closure-Compiler
353 lines (279 loc) • 10.1 kB
JavaScript
/*
* Copyright 2012 The Closure Compiler Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @fileoverview Externs for Angular 1 ngResource.
*
* @see http://angularjs.org/
* @externs
*/
/**
* @typedef {{
* stripTrailingSlashes: (boolean|undefined),
* cancellable: (boolean|undefined),
* }}
*/
angular.$ResourceOptions;
/**
* The $resource service is a factory for creating a resource class.
*
* @typedef {function(
* string,
* !Object=,
* !Object.<string, angular.ResourceAction>=,
* !angular.$ResourceOptions=)
* :angular.Resource}
*/
angular.$resource;
/**
* A hash declaring a custom action that can extend the default set of resource
* actions. Defined as an interface so Closure doesn't rename the properties.
* @interface
*/
angular.ResourceAction = function() {};
/**
* HTTP request method. Valid methods are: GET, POST, PUT, DELETE, and JSONP
* @type {string}
*/
angular.ResourceAction.prototype.method;
/**
* Optional set of pre-bound parameters for this action. If any of the
* parameter value is a function, it will be executed every time when a param
* value needs to be obtained for a request (unless the param was overridden).
* @type {Object|undefined}
*/
angular.ResourceAction.prototype.params;
/**
* action specific url override. The url templating is supported just like for
* the resource-level urls.
* @type {string|undefined}
*/
angular.ResourceAction.prototype.url;
/**
* If true then the returned object for this action is an array, see returns
* section.
* @type {boolean|undefined}
*/
angular.ResourceAction.prototype.isArray;
/**
* transform function or an array of such functions. The transform function
* takes the http request body and headers and returns its transformed
* (typically serialized) version.
* @type {function(Object, Object)|Array.<function(Object, Object)>|undefined}
*/
angular.ResourceAction.prototype.transformRequest;
/**
* transform function or an array of such functions. The transform function
* takes the http response body and headers and returns its transformed
* (typically deserialized) version.
* @type {function(Object, Object)|Array.<function(Object, Object)>|undefined}
*/
angular.ResourceAction.prototype.transformResponse;
/**
* If true, a default $http cache will be used to cache the GET request,
* otherwise if a cache instance built with $cacheFactory, this cache will be
* used for caching.
* @type {boolean|!angular.cacheFactory.Cache|undefined}
*/
angular.ResourceAction.prototype.cache;
/**
* timeout in milliseconds, or promise that should abort the request when
* resolved.
* @type {number|!angular.$q.Promise|undefined}
*/
angular.ResourceAction.prototype.timeout;
/**
* whether to set the withCredentials flag on the XHR object. See requests with
* credentials for more information.
* @type {boolean|undefined}
*/
angular.ResourceAction.prototype.withCredentials;
/**
* see requestType.
* @type {string|undefined}
*/
angular.ResourceAction.prototype.responseType;
/**
* The interceptor object has two optional methods - response and
* responseError. Both response and responseError interceptors get called
* with http response object. See $http interceptors.
* @type {Object|undefined}
*/
angular.ResourceAction.prototype.interceptor;
/** @const */
angular.resource = {};
/**
* Data you want to send along with a POST xhr.
* @typedef {Object|Array|angular.ResourceInstance}
*/
angular.resource.PostData;
/**
* Callback when the resource is fetched. The first argument is the resource
* instance or an array of resource instances.
*
* TODO(bourey): This can be cleaned up. The second argument is the header
* getter function, which should really be defined in AngularJS externs.js.
*
* @typedef {function(!angular.ResourceInstanceOrCollection,
* function(string=): (string|Object|null))}
*/
angular.resource.Callback;
/**
* Errback when fetching resource failed. It is given the entire http response
* object to play with.
*
* @typedef {function(!angular.$http.Response)}
*/
angular.resource.Errback;
/** @typedef {Object|angular.resource.Callback} */
angular.resource.ParamsOrCallback;
/** @typedef {angular.resource.ParamsOrCallback|angular.resource.PostData} */
angular.resource.ParamsDataOrCallback;
/** @typedef {
* function(
* (!angular.ResourceInstanceOrCollection|!angular.$http.Response),
* function(string=): (string|!Object|null))
* }
*/
angular.resource.CallbackOrErrback;
/** @typedef {angular.resource.PostData|angular.resource.CallbackOrErrback} */
angular.resource.DataCallbackOrErrback;
/** @typedef {!angular.ResourceInstance|!Array.<!angular.ResourceInstance>} */
angular.ResourceInstanceOrCollection;
/**
* A Resource can be used as a constructor to create a ResourceInstance. It also
* has other functions for getting or querying for instances. Example usage:
*
* var Pony = $resource('/ponies');
* var pony = new Pony({name: 'Duke'});
*
* @typedef {typeof angular.ResourceInstance}
*/
angular.Resource;
/**
* Usage: resourceClass.get([parameters], [success], [error])
*
* @param {angular.resource.ParamsOrCallback=} opt_paramsOrCallback
* @param {angular.resource.CallbackOrErrback=} opt_callbackOrErrback
* @param {angular.resource.Errback=} opt_errback
* @return {!angular.ResourceInstance} Empty resource instance.
*/
angular.ResourceInstance.get = function(
opt_paramsOrCallback, opt_callbackOrErrback, opt_errback) {};
/**
* @extends {Array<!angular.ResourceInstance>}
*/
class QueryResultArray {}
/**
* @type {!angular.$q.Promise}
*/
QueryResultArray.prototype.$promise;
/**
* @type {boolean}
*/
QueryResultArray.prototype.$resolved;
/**
* Usage: resourceClass.query([parameters], [success], [error])
*
* @param {angular.resource.ParamsOrCallback=} opt_paramsOrCallback
* @param {angular.resource.CallbackOrErrback=} opt_callbackOrErrback
* @param {angular.resource.Errback=} opt_errback
* @return {!QueryResultArray} Empty array of instances.
*/
angular.ResourceInstance.query = function(
opt_paramsOrCallback, opt_callbackOrErrback, opt_errback) {};
/**
* Usage: resourceClass.save([parameters], postData, [success], [error])
*
* @param {!angular.resource.ParamsDataOrCallback} paramsOrCallbackOrData
* @param {angular.resource.DataCallbackOrErrback=} opt_dataOrCallbackOrErrback
* @param {angular.resource.CallbackOrErrback=} opt_callbackOrErrback
* @param {angular.resource.Errback=} opt_errback
* @return {!angular.ResourceInstance}
*/
angular.ResourceInstance.save = function(
paramsOrCallbackOrData, opt_dataOrCallbackOrErrback, opt_callbackOrErrback,
opt_errback) {};
/**
* Usage: resourceClass.remove([parameters], postData, [success], [error])
*
* @param {!angular.resource.ParamsDataOrCallback} paramsOrCallbackOrData
* @param {angular.resource.DataCallbackOrErrback=} opt_dataOrCallbackOrErrback
* @param {angular.resource.CallbackOrErrback=} opt_callbackOrErrback
* @param {angular.resource.Errback=} opt_errback
*/
angular.ResourceInstance.remove = function(
paramsOrCallbackOrData, opt_dataOrCallbackOrErrback, opt_callbackOrErrback,
opt_errback) {};
/**
* Usage: resourceClass.delete([parameters], postData, [success], [error])
*
* @param {!angular.resource.ParamsDataOrCallback} paramsOrCallbackOrData
* @param {angular.resource.DataCallbackOrErrback=} opt_dataOrCallbackOrErrback
* @param {angular.resource.CallbackOrErrback=} opt_callbackOrErrback
* @param {angular.resource.Errback=} opt_errback
*/
angular.ResourceInstance.delete = function(
paramsOrCallbackOrData, opt_dataOrCallbackOrErrback, opt_callbackOrErrback,
opt_errback) {};
/**
* @constructor
* @param {Object=} obj
*/
angular.ResourceInstance = function(obj) {};
/**
* @type {!angular.$q.Promise}
*/
angular.ResourceInstance.prototype.$promise;
/**
* @type {boolean}
*/
angular.ResourceInstance.prototype.$resolved;
/**
* Usage: resource.$get([parameters], [success], [error])
*
* @param {angular.resource.ParamsOrCallback=} opt_paramsOrCallback
* @param {angular.resource.CallbackOrErrback=} opt_callbackOrErrback
* @param {angular.resource.Errback=} opt_errback
*/
angular.ResourceInstance.prototype.$get = function(
opt_paramsOrCallback, opt_callbackOrErrback, opt_errback) {};
/**
* Usage: resource.$save([parameters], [success], [error])
*
* @param {angular.resource.ParamsOrCallback=} opt_paramsOrCallback
* @param {angular.resource.CallbackOrErrback=} opt_callbackOrErrback
* @param {angular.resource.Errback=} opt_errback
*/
angular.ResourceInstance.prototype.$save = function(
opt_paramsOrCallback, opt_callbackOrErrback, opt_errback) {};
/**
* Usage: resource.$remove([parameters], [success], [error])
*
* @param {angular.resource.ParamsOrCallback=} opt_paramsOrCallback
* @param {angular.resource.CallbackOrErrback=} opt_callbackOrErrback
* @param {angular.resource.Errback=} opt_errback
*/
angular.ResourceInstance.prototype.$remove = function(
opt_paramsOrCallback, opt_callbackOrErrback, opt_errback) {};
/**
* Usage: resource.$delete([parameters], [success], [error])
*
* @param {angular.resource.ParamsOrCallback=} opt_paramsOrCallback
* @param {angular.resource.CallbackOrErrback=} opt_callbackOrErrback
* @param {angular.resource.Errback=} opt_errback
*/
angular.ResourceInstance.prototype.$delete = function(
opt_paramsOrCallback, opt_callbackOrErrback, opt_errback) {};