typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
279 lines (241 loc) • 11 kB
TypeScript
/// <reference path="../../../globals.d.ts" />
/// <reference path="../events/eventtarget.d.ts" />
/// <reference path="../uri/uri.d.ts" />
/// <reference path="../structs/map.d.ts" />
/// <reference path="./errorcode.d.ts" />
/// <reference path="../events/event.d.ts" />
declare module goog.net {
class IframeIo extends IframeIo__Class { }
/** Fake class which should be extended to avoid inheriting static properties */
class IframeIo__Class extends goog.events.EventTarget__Class {
/**
* Class for managing requests via iFrames.
* @constructor
* @extends {goog.events.EventTarget}
*/
constructor();
/**
* Sends a request via an iframe.
*
* A HTML form is used and submitted to the iframe, this simplifies the
* difference between GET and POST requests. The iframe needs to be created and
* destroyed for each request otherwise the request will contribute to the
* history stack.
*
* sendFromForm does some clever trickery (thanks jlim) in non-IE browsers to
* stop a history entry being added for POST requests.
*
* @param {goog.Uri|string} uri Uri of the request.
* @param {string=} opt_method Default is GET, POST uses a form to submit the
* request.
* @param {boolean=} opt_noCache Append a timestamp to the request to avoid
* caching.
* @param {Object|goog.structs.Map=} opt_data Map of key-value pairs.
*/
send(uri: goog.Uri|string, opt_method?: string, opt_noCache?: boolean, opt_data?: Object|goog.structs.Map<any, any>): void;
/**
* Sends the data stored in an existing form to the server. The HTTP method
* should be specified on the form, the action can also be specified but can
* be overridden by the optional URI param.
*
* This can be used in conjunction will a file-upload input to upload a file in
* the background without affecting history.
*
* Example form:
* <pre>
* <form action="/server/" enctype="multipart/form-data" method="POST">
* <input name="userfile" type="file">
* </form>
* </pre>
*
* @param {HTMLFormElement} form Form element used to send the request to the
* server.
* @param {string=} opt_uri Uri to set for the destination of the request, by
* default the uri will come from the form.
* @param {boolean=} opt_noCache Append a timestamp to the request to avoid
* caching.
*/
sendFromForm(form: HTMLFormElement, opt_uri?: string, opt_noCache?: boolean): void;
/**
* Abort the current Iframe request
* @param {goog.net.ErrorCode=} opt_failureCode Optional error code to use -
* defaults to ABORT.
*/
abort(opt_failureCode?: goog.net.ErrorCode): void;
/**
* @return {boolean} True if transfer is complete.
*/
isComplete(): boolean;
/**
* @return {boolean} True if transfer was successful.
*/
isSuccess(): boolean;
/**
* @return {boolean} True if a transfer is in progress.
*/
isActive(): boolean;
/**
* Returns the last response text (i.e. the text content of the iframe).
* Assumes plain text!
* @return {?string} Result from the server.
*/
getResponseText(): string;
/**
* Returns the last response html (i.e. the innerHtml of the iframe).
* @return {?string} Result from the server.
*/
getResponseHtml(): string;
/**
* Parses the content as JSON. This is a safe parse and may throw an error
* if the response is malformed.
* Use goog.json.unsafeparse(this.getResponseText()) if you are sure of the
* state of the returned content.
* @return {Object} The parsed content.
*/
getResponseJson(): Object;
/**
* Returns the document object from the last request. Not truely XML, but
* used to mirror the XhrIo interface.
* @return {HTMLDocument} The document object from the last request.
*/
getResponseXml(): HTMLDocument;
/**
* Get the uri of the last request.
* @return {goog.Uri} Uri of last request.
*/
getLastUri(): goog.Uri;
/**
* Gets the last error code.
* @return {goog.net.ErrorCode} Last error code.
*/
getLastErrorCode(): goog.net.ErrorCode;
/**
* Gets the last error message.
* @return {string} Last error message.
*/
getLastError(): string;
/**
* Gets the last custom error.
* @return {Object} Last custom error.
*/
getLastCustomError(): Object;
/**
* Sets the callback function used to check if a loaded IFrame is in an error
* state.
* @param {Function} fn Callback that expects a document object as it's single
* argument.
*/
setErrorChecker(fn: Function): void;
/**
* Gets the callback function used to check if a loaded IFrame is in an error
* state.
* @return {Function} A callback that expects a document object as it's single
* argument.
*/
getErrorChecker(): Function;
/**
* Returns the number of milliseconds after which an incomplete request will be
* aborted, or 0 if no timeout is set.
* @return {number} Timeout interval in milliseconds.
*/
getTimeoutInterval(): number;
/**
* Sets the number of milliseconds after which an incomplete request will be
* aborted and a {@link goog.net.EventType.TIMEOUT} event raised; 0 means no
* timeout is set.
* @param {number} ms Timeout interval in milliseconds; 0 means none.
*/
setTimeoutInterval(ms: number): void;
/**
* @return {boolean} Whether the server response is being ignored.
*/
isIgnoringResponse(): boolean;
/**
* Sets whether to ignore the response from the server by not adding any event
* handlers to fire when the iframe loads. This is necessary when using IframeIo
* to submit to a server on another domain, to avoid same-origin violations when
* trying to access the response. If this is set to true, the IframeIo instance
* will be a single-use instance that is only usable for one request. It will
* only clean up its resources (iframes and forms) when it is disposed.
* @param {boolean} ignore Whether to ignore the server response.
*/
setIgnoreResponse(ignore: boolean): void;
/**
* @return {HTMLIFrameElement} The appropriate iframe to use for requests
* (created in sendForm_).
*/
getRequestIframe(): HTMLIFrameElement;
}
}
declare module goog.net.IframeIo {
class IncrementalDataEvent extends IncrementalDataEvent__Class { }
/** Fake class which should be extended to avoid inheriting static properties */
class IncrementalDataEvent__Class extends goog.events.Event__Class {
/**
* Class for representing incremental data events.
* @param {Object} data The data associated with the event.
* @extends {goog.events.Event}
* @constructor
* @final
*/
constructor(data: Object);
/**
* The data associated with the event.
* @type {Object}
*/
data: Object;
}
/**
* Prefix for frame names
* @type {string}
*/
var FRAME_NAME_PREFIX: string;
/**
* Suffix that is added to inner frames used for sending requests in non-IE
* browsers
* @type {string}
*/
var INNER_FRAME_SUFFIX: string;
/**
* The number of milliseconds after a request is completed to dispose the
* iframes. This can be done lazily so we wait long enough for any processing
* that occurred as a result of the response to finish.
* @type {number}
*/
var IFRAME_DISPOSE_DELAY_MS: number;
/**
* Static send that creates a short lived instance of IframeIo to send the
* request.
* @param {goog.Uri|string} uri Uri of the request, it is up the caller to
* manage query string params.
* @param {Function=} opt_callback Event handler for when request is completed.
* @param {string=} opt_method Default is GET, POST uses a form to submit the
* request.
* @param {boolean=} opt_noCache Append a timestamp to the request to avoid
* caching.
* @param {Object|goog.structs.Map=} opt_data Map of key-value pairs that
* will be posted to the server via the iframe's form.
*/
function send(uri: goog.Uri|string, opt_callback?: Function, opt_method?: string, opt_noCache?: boolean, opt_data?: Object|goog.structs.Map<any, any>): void;
/**
* Find an iframe by name (assumes the context is goog.global since that is
* where IframeIo's iframes are kept).
* @param {string} fname The name to find.
* @return {HTMLIFrameElement} The iframe element with that name.
*/
function getIframeByName(fname: string): HTMLIFrameElement;
/**
* Find an instance of the IframeIo object by name.
* @param {string} fname The name to find.
* @return {goog.net.IframeIo} The instance of IframeIo.
*/
function getInstanceByName(fname: string): goog.net.IframeIo;
/**
* Handles incremental data and routes it to the correct iframeIo instance.
* The HTML page requested by the IframeIo instance should contain script blocks
* that call an externed reference to this method.
* @param {Window} win The window object.
* @param {Object} data The data object.
*/
function handleIncrementalData(win: Window, data: Object): void;
}