mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-07-05 17:50:03 +00:00
Merge pull request #502 from vbortone/feature/firebase
Initial commit of Firebase API type definitions
This commit is contained in:
@@ -54,6 +54,7 @@ List of Definitions
|
||||
* [File API: Directories and System](http://www.w3.org/TR/file-system-api/) (by [Kon](http://phyzkit.net/))
|
||||
* [File API: Writer](http://www.w3.org/TR/file-writer-api/) (by [Kon](http://phyzkit.net/))
|
||||
* [Finite State Machine](https://github.com/jakesgordon/javascript-state-machine) (by [Boris Yankov](https://github.com/borisyankov))
|
||||
* [Firebase](https://www.firebase.com/docs/javascript/firebase) (by [Vincent Bortone](https://github.com/vbortone))
|
||||
* [FlexSlider](http://www.woothemes.com/flexslider/) (by [Diullei Gomes](https://github.com/Diullei))
|
||||
* [Foundation](http://foundation.zurb.com/) (by [Boris Yankov](https://github.com/borisyankov))
|
||||
* [Gamepad](http://www.w3.org/TR/gamepad/) (by [Kon](http://phyzkit.net/))
|
||||
|
||||
74
firebase/firebase-tests.ts
Normal file
74
firebase/firebase-tests.ts
Normal file
@@ -0,0 +1,74 @@
|
||||
/// <reference path="firebase.d.ts" />
|
||||
var AUTH_TOKEN: string = "12345";
|
||||
var dataRef:Firebase = new Firebase("https://SampleChat.firebaseio-demo.com/");
|
||||
//Log me in
|
||||
dataRef.auth(AUTH_TOKEN, function(error, result) {
|
||||
if(error) {
|
||||
console.log("Login Failed!", error);
|
||||
} else {
|
||||
console.log('Authenticated successfully with payload:', result.auth);
|
||||
console.log('Auth expires at:', new Date(result.expires * 1000));
|
||||
}
|
||||
});
|
||||
|
||||
//Time to log out!
|
||||
dataRef.unauth();
|
||||
|
||||
var usersRef:Firebase = new Firebase('https://SampleChat.firebaseIO-demo.com/users/');
|
||||
var fredRef:Firebase = usersRef.child('fred');
|
||||
var fredFirstNameRef:Firebase = fredRef.child('name/first');
|
||||
var x:string = fredFirstNameRef.toString();
|
||||
// x is now 'https://SampleChat.firebaseIO-demo.com/users/fred/name/first'.
|
||||
|
||||
var usersRef2:Firebase = new Firebase('https://SampleChat.firebaseIO-demo.com/users/');
|
||||
var sampleChatRef:Firebase = usersRef2.parent();
|
||||
var x2:string = sampleChatRef.toString();
|
||||
// x is now 'https://SampleChat.firebaseIO-demo.com'.
|
||||
var y:Firebase = sampleChatRef.parent();
|
||||
// y is now null, since sampleChatRef refers to the root of the Firebase.
|
||||
|
||||
var fredRef2:Firebase = new Firebase('https://SampleChat.firebaseIO-demo.com/users/fred');
|
||||
var sampleChatRef2 :Firebase= fredRef2.root();
|
||||
var x3:string = sampleChatRef2.toString();
|
||||
// x is now 'https://SampleChat.firebaseIO-demo.com'.
|
||||
|
||||
var fredRef3:Firebase = new Firebase('https://SampleChat.firebaseIO-demo.com/users/fred');
|
||||
var x4:string = fredRef3.name();
|
||||
// x is now 'fred'.
|
||||
|
||||
// Increment Fred's rank by 1.
|
||||
var fredRankRef:Firebase = new Firebase('https://SampleChat.firebaseIO-demo.com/users/fred/rank');
|
||||
fredRankRef.transaction(function(currentRank: number) {
|
||||
return currentRank+1;
|
||||
});
|
||||
|
||||
// Try to create a user for wilma, but only if the user id 'wilma' isn't already taken.
|
||||
var wilmaRef: Firebase = new Firebase('https://SampleChat.firebaseIO-demo.com/users/wilma');
|
||||
wilmaRef.transaction(function(currentData) {
|
||||
if (currentData === null) {
|
||||
return {name: {first: 'Wilma', last: 'Flintstone'} };
|
||||
} else {
|
||||
console.log('User wilma already exists.');
|
||||
return; // Abort the transaction.
|
||||
}
|
||||
}, function(error: any, committed: bool, snapshot: IFirebaseDataSnapshot) {
|
||||
if (error)
|
||||
console.log('Transaction failed abnormally!', error);
|
||||
else if (!committed)
|
||||
console.log('We aborted the transaction (because wilma already exists).');
|
||||
else
|
||||
console.log('User wilma added!');
|
||||
console.log('Wilma\'s data: ', snapshot.val());
|
||||
});
|
||||
|
||||
var messageListRef: Firebase = new Firebase('https://SampleChat.firebaseIO-demo.com/message_list');
|
||||
var lastMessagesQuery:IFirebaseQuery = messageListRef.endAt().limit(500);
|
||||
lastMessagesQuery.on('child_added', function(childSnapshot: IFirebaseDataSnapshot) { /* handle child add */ });
|
||||
|
||||
var messageListRef2:Firebase = new Firebase('https://SampleChat.firebaseIO-demo.com/message_list');
|
||||
var firstMessagesQuery:IFirebaseQuery = messageListRef2.startAt().limit(500);
|
||||
firstMessagesQuery.on('child_added', function(childSnapshot: IFirebaseDataSnapshot) { /* handle child add */ });
|
||||
|
||||
var usersRef3: Firebase = new Firebase('https://SampleChat.firebaseIO-demo.com/users');
|
||||
var usersQuery: IFirebaseQuery = usersRef3.startAt(1000).limit(50);
|
||||
usersQuery.on('child_added', function(userSnapshot: IFirebaseDataSnapshot) { /* handle user */ });
|
||||
74
firebase/firebase.d.ts
vendored
Normal file
74
firebase/firebase.d.ts
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
// Type definitions for Firebase API
|
||||
// Project: https://www.firebase.com/docs/javascript/firebase/index.html
|
||||
// Definitions by: Vincent Botone <https://github.com/vbortone/>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
interface IFirebaseAuthResult {
|
||||
auth: any;
|
||||
expires: number;
|
||||
}
|
||||
|
||||
interface IFirebaseDataSnapshot {
|
||||
val(): any;
|
||||
child(): IFirebaseDataSnapshot;
|
||||
forEach(childAction: (childSnapshot: IFirebaseDataSnapshot) => bool): bool;
|
||||
hasChild(childPath: string): bool;
|
||||
hasChildren(): bool;
|
||||
name(): string;
|
||||
numChildren(): number;
|
||||
ref(): Firebase;
|
||||
getPriority(): string;
|
||||
getPriority(): number;
|
||||
exportVal(): Object;
|
||||
}
|
||||
|
||||
interface IFirebaseOnDisconnect {
|
||||
set(value: any, onComplete?: (error: any) => void): void;
|
||||
setWithPriority(value: any, priority: string, onComplete?: (error: any) => void): void;
|
||||
setWithPriority(value: any, priority: number, onComplete?: (error: any) => void): void;
|
||||
update(value: any, onComplete?: (error: any) => void): void;
|
||||
remove(onComplete?: (error: any) => void): void;
|
||||
cancel(onComplete?: (error: any) => void): void;
|
||||
}
|
||||
|
||||
interface IFirebaseQuery {
|
||||
on(eventType: string, callback: (dataSnapshot: IFirebaseDataSnapshot, prevChildName?: string) => void, cancelCallback?: ()=> void, context?: Object): (dataSnapshot: IFirebaseDataSnapshot, prevChildName?: string) => void;
|
||||
off(eventType?: string, callback?: (dataSnapshot: IFirebaseDataSnapshot, prevChildName?: string) => void, context?: Object): void;
|
||||
once(eventType: string, successCallback: (dataSnapshot: IFirebaseDataSnapshot) => void, failureCallback?: () => void, context?: Object): void;
|
||||
limit(limit: number): IFirebaseQuery;
|
||||
startAt(priority?: string, name?: string): IFirebaseQuery;
|
||||
startAt(priority?: number, name?: string): IFirebaseQuery;
|
||||
endAt(priority?: string, name?: string): IFirebaseQuery;
|
||||
endAt(priority?: number, name?: string): IFirebaseQuery;
|
||||
ref(): Firebase;
|
||||
}
|
||||
|
||||
class Firebase implements IFirebaseQuery {
|
||||
constructor(firebaseURL: string);
|
||||
auth(authToken: string, onComplete?: (error: string, result: IFirebaseAuthResult) => void, onCancel?:(error: string) => void): void;
|
||||
unauth(): void;
|
||||
child(childPath: string): Firebase;
|
||||
parent(): Firebase;
|
||||
root(): Firebase;
|
||||
name(): string;
|
||||
toString(): string;
|
||||
set(value: any, onComplete?: (error: any) => void): void;
|
||||
update(value: any, onComplete?: (error: any) => void): void;
|
||||
remove(onComplete?: (error: any) => void);
|
||||
push(value: any, onComplete?: (error: any) => void): Firebase;
|
||||
setWithPriority(value: any, priority: string, onComplete?: (error: any) => void): void;
|
||||
setWithPriority(value: any, priority: number, onComplete?: (error: any) => void): void;
|
||||
setPriority(priority: string, onComplete?: (error: any) => void): void;
|
||||
setPriority(priority: number, onComplete?: (error: any) => void): void;
|
||||
transaction(updateFunction: (currentData: any)=> any, onComplete?: (error: any, committed: bool, snapshot: IFirebaseDataSnapshot) => void, applyLocally?: bool): void;
|
||||
onDisconnect(): IFirebaseOnDisconnect;
|
||||
on(eventType: string, callback: (dataSnapshot: IFirebaseDataSnapshot, prevChildName?: string) => void, cancelCallback?: ()=> void, context?: Object): (dataSnapshot: IFirebaseDataSnapshot, prevChildName?: string) => void;
|
||||
off(eventType?: string, callback?: (dataSnapshot: IFirebaseDataSnapshot, prevChildName?: string) => void, context?: Object): void;
|
||||
once(eventType: string, successCallback: (dataSnapshot: IFirebaseDataSnapshot) => void, failureCallback?: () => void, context?: Object): void;
|
||||
limit(limit: number): IFirebaseQuery;
|
||||
startAt(priority?: string, name?: string): IFirebaseQuery;
|
||||
startAt(priority?: number, name?: string): IFirebaseQuery;
|
||||
endAt(priority?: string, name?: string): IFirebaseQuery;
|
||||
endAt(priority?: number, name?: string): IFirebaseQuery;
|
||||
ref(): Firebase;
|
||||
}
|
||||
Reference in New Issue
Block a user