Merge pull request #2552 from Steve-Fenton/master

Dropbox-JS Definition.
This commit is contained in:
Diullei Gomes
2014-07-23 20:37:12 -03:00
2 changed files with 155 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
/// <reference path="dropboxjs.d.ts" />
var browserClient = new Dropbox.Client({ key: "your-key-here" });
browserClient.authenticate(function (error, client) {
if (error) {
alert(error);
}
client.onError.addListener(function (error) {
if (window.console) { // Skip the "if" in node.js code.
console.error(error);
}
});
client.getAccountInfo(function (error, accountInfo) {
if (error) {
alert(error); // Something went wrong.
}
alert("Hello, " + accountInfo.name + "!");
});
client.writeFile("hello_world.txt", "Hello, world!\n", function (error, stat) {
if (error) {
alert(error); // Something went wrong.
}
alert("File saved as revision " + stat.versionTag);
});
client.readFile("hello_world.txt", function (error, data) {
if (error) {
alert(error); // Something went wrong.
}
alert(data); // data has the file's contents
});
client.readdir("/", function (error, entries) {
if (error) {
alert(error); // Something went wrong.
}
alert("Your Dropbox contains " + entries.join(", "));
});
});
var serverClient = new Dropbox.Client({
key: "your-key-here",
secret: "your-secret-here"
});
serverClient.authDriver(new Dropbox.AuthDriver.NodeServer(8191));
+101
View File
@@ -0,0 +1,101 @@
// Type definitions for dropbox-js
// Project: https://github.com/dropbox/dropbox-js
// Definitions by: Steve Fenton <https://github.com/Steve-Fenton>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module Dropbox {
export interface DropboxConfig {
key: string;
secret?: string;
}
export interface AccountInfoData {
name: string;
email: string;
countryCode: string;
uid: string;
referralUrl: string;
publicAppUrl: string;
quota: number;
usedQuota: number;
privateBytes: number;
sharedBytes: number;
}
export interface AccountInfo extends AccountInfoData {
parse(accountInfo: string): AccountInfo;
json(): AccountInfoData;
}
export interface ApiError {
INVALID_TOKEN: number;
NOT_FOUND: number;
OVER_QUOTA: number;
RATE_LIMITED: number;
NETWORK_ERROR: number;
INVALID_PARAM: number;
OAUTH_ERROR: number;
INVALID_METHOD: number;
}
export interface FileStatisticsData {
path: string;
name: string;
inAppFolder: boolean;
isFolder: boolean;
isFile: boolean;
isRemoved: boolean;
typeIcon: string;
versionTag: string;
contentHash: string;
mimeType: string;
size: number;
humanSize: string;
hasThumbnail: boolean;
modifiedAt: Date;
clientModifiedAt: Date;
}
export interface FileStatistics extends FileStatisticsData {
parse(stats: string): FileStatistics;
json(): FileStatisticsData;
}
export interface ClientOnError {
addListener(callback: (error: number) => any): void;
}
export interface Client {
new (config: DropboxConfig): Client;
authDriver(authDriver: any): Client;
authenticate(callback: (error: number, client: Client) => any): Client;
credentials(): string;
dropboxUid(): string;
isAuthenticated(): boolean;
onError: ClientOnError;
getAccountInfo(callback: (error: number, accountInfo: AccountInfo) => any): XMLHttpRequest;
getUserInfo(callback: (error: number, accountInfo: AccountInfo) => any): XMLHttpRequest;
signOut(options: {}, callback: (error: number) => any): XMLHttpRequest;
signOff(options: {}, callback: (error: number) => any): XMLHttpRequest;
writeFile(fileName: string, contents: string, options: {}, callback: (error: number, stats: FileStatistics) => any): XMLHttpRequest;
writeFile(fileName: string, contents: string, callback: (error: number, stats: FileStatistics) => any): XMLHttpRequest;
readFile(fileName: string, options: {}, callback: (error: number, contents: string, stats: FileStatistics) => any): XMLHttpRequest;
readFile(fileName: string, callback: (error: number, contents: string, stats: FileStatistics) => any): XMLHttpRequest;
stat(path: string, options: {}, callback: (error: number, stats: FileStatistics) => any): XMLHttpRequest;
stat(path: string, callback: (error: number, stats: FileStatistics) => any): XMLHttpRequest;
metadata(path: string, options: {}, callback: (error: number, stats: FileStatistics) => any): XMLHttpRequest;
metadata(path: string, callback: (error: number, stats: FileStatistics) => any): XMLHttpRequest;
readdir(path: string, options: {}, callback: (error: number, entries: any[]) => any): XMLHttpRequest;
readdir(path: string, callback: (error: number, entries: any[]) => any): XMLHttpRequest;
}
export module AuthDriver {
export interface NodeServer {
new (port: number): any;
}
export var NodeServer: NodeServer;
}
export var Client: Client;
}