typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
159 lines (138 loc) • 7.04 kB
TypeScript
/// <reference path="../../../globals.d.ts" />
/// <reference path="../events/eventtarget.d.ts" />
/// <reference path="./objectstore.d.ts" />
/// <reference path="../../../third_party/closure/goog/mochikit/async/deferred.d.ts" />
/// <reference path="./transaction.d.ts" />
/// <reference path="../events/event.d.ts" />
declare module goog.db {
class IndexedDb extends IndexedDb__Class { }
/** Fake class which should be extended to avoid inheriting static properties */
class IndexedDb__Class extends goog.events.EventTarget__Class {
/**
* Creates an IDBDatabase wrapper object. The database object has methods for
* setting the version to change the structure of the database and for creating
* transactions to get or modify the stored records. Should not be created
* directly, call {@link goog.db.openDatabase} to set up the connection.
*
* @param {!IDBDatabase} db Underlying IndexedDB database object.
* @constructor
* @extends {goog.events.EventTarget}
* @final
*/
constructor(db: IDBDatabase);
/**
* Closes the database connection. Metadata queries can still be made after this
* method is called, but otherwise this wrapper should not be used further.
*/
close(): void;
/**
* @return {boolean} Whether a connection is open and the database can be used.
*/
isOpen(): boolean;
/**
* @return {string} The name of this database.
*/
getName(): string;
/**
* @return {string} The current database version.
*/
getVersion(): string;
/**
* @return {DOMStringList} List of object stores in this database.
*/
getObjectStoreNames(): DOMStringList;
/**
* Creates an object store in this database. Can only be called inside a
* {@link goog.db.UpgradeNeededCallback} or the callback for the Deferred
* returned from #setVersion.
*
* @param {string} name Name for the new object store.
* @param {Object=} opt_params Options object. The available options are:
* keyPath, which is a string and determines what object attribute
* to use as the key when storing objects in this object store; and
* autoIncrement, which is a boolean, which defaults to false and determines
* whether the object store should automatically generate keys for stored
* objects. If keyPath is not provided and autoIncrement is false, then all
* insert operations must provide a key as a parameter.
* @return {!goog.db.ObjectStore} The newly created object store.
* @throws {goog.db.Error} If there's a problem creating the object store.
*/
createObjectStore(name: string, opt_params?: Object): goog.db.ObjectStore;
/**
* Deletes an object store. Can only be called inside a
* {@link goog.db.UpgradeNeededCallback} or the callback for the Deferred
* returned from #setVersion.
*
* @param {string} name Name of the object store to delete.
* @throws {goog.db.Error} If there's a problem deleting the object store.
*/
deleteObjectStore(name: string): void;
/**
* Updates the version of the database and returns a Deferred transaction.
* The database's structure can be changed inside this Deferred's callback, but
* nowhere else. This means adding or deleting object stores, and adding or
* deleting indexes. The version change will not succeed unless there are no
* other connections active for this database anywhere. A new database
* connection should be opened after the version change is finished to pick
* up changes.
*
* This is deprecated, and only supported on Chrome prior to version 25. New
* applications should use the version parameter to {@link goog.db.openDatabase}
* instead.
*
* @param {string} version The new version of the database.
* @return {!goog.async.Deferred} The deferred transaction for changing the
* version.
*/
setVersion(version: string): goog.async.Deferred<any>;
/**
* Creates a new transaction.
*
* @param {!Array.<string>} storeNames A list of strings that contains the
* transaction's scope, the object stores that this transaction can operate
* on.
* @param {goog.db.Transaction.TransactionMode=} opt_mode The mode of the
* transaction. If not present, the default is READ_ONLY. For VERSION_CHANGE
* transactions call {@link goog.db.IndexedDB#setVersion} instead.
* @return {!goog.db.Transaction} The wrapper for the newly created transaction.
* @throws {goog.db.Error} If there's a problem creating the transaction.
*/
createTransaction(storeNames: string[], opt_mode?: goog.db.Transaction.TransactionMode): goog.db.Transaction;
}
}
declare module goog.db.IndexedDb {
class VersionChangeEvent extends VersionChangeEvent__Class { }
/** Fake class which should be extended to avoid inheriting static properties */
class VersionChangeEvent__Class extends goog.events.Event__Class {
/**
* Event representing a (possibly attempted) change in the database structure.
*
* At time of writing, no Chrome versions support oldVersion or newVersion. See
* http://crbug.com/153122.
*
* @param {number} oldVersion The previous version of the database.
* @param {number} newVersion The version the database is being or has been
* updated to.
* @constructor
* @extends {goog.events.Event}
* @final
*/
constructor(oldVersion: number, newVersion: number);
/**
* The previous version of the database.
* @type {number}
*/
oldVersion: number;
/**
* The version the database is being or has been updated to.
* @type {number}
*/
newVersion: number;
}
/**
* Event types fired by a database.
*
* @enum {string} The event types for the web socket.
*/
enum EventType { ABORT, CLOSE, ERROR, VERSION_CHANGE }
}