typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
87 lines (68 loc) • 3.51 kB
TypeScript
// Type definitions for simple-cw-node
// Project: https://github.com/astronaughts/simple-cw-node
// Definitions by: vvakame <https://github.com/vvakame>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../superagent/superagent.d.ts" />
declare module "simple-cw-node" {
import superagent = require("superagent");
// TODO 1. update superagent with generics
// TODO 2. create underscore.deffered .d.ts file
// TODO 3. refactor & improve specialized parameter methods
// Merged declaration, ChatWork is both a callable function and a namespace
function ChatWork():ChatWork.ChatWork;
module ChatWork {
interface ChatWorkInitOptions {
token:string;
}
interface ChatWork {
apiVersion:string;
sdkVersion:string;
token:string;
Deferred: any; // _.Deferred
when: any; // _.when
init(options:ChatWorkInitOptions):void;
// http://developer.chatwork.com/ja/endpoint_me.html
get(api:"me", callback:(err:Error, res:superagent.Response)=>void):void;
// http://developer.chatwork.com/ja/endpoint_my.html
get(api:"my/status", callback:(err:Error, res:superagent.Response)=>void):void;
get(api:"my/tasks", callback:(err:Error, res:superagent.Response)=>void):void;
// http://developer.chatwork.com/ja/endpoint_contacts.html
get(api:"contacts", callback:(err:Error, res:superagent.Response)=>void):void;
// http://developer.chatwork.com/ja/endpoint_rooms.html
get(api:"rooms", callback:(err:Error, res:superagent.Response)=>void):void;
post(api:"rooms", args:any, callback:(err:Error, res:superagent.Response)=>void):void;
// can't create specialized parameter
// specialized parameter required compile-time constant string literal
// GET /rooms/{room_id}
// PUT /rooms/{room_id}
// DELETE /rooms/{room_id}
// GET /rooms/{room_id}/members
// PUT /rooms/{room_id}/members
// GET /rooms/{room_id}/messages <- not implemented yet
// POST /rooms/{room_id}/messages
// GET /rooms/{room_id}/messages/{message_id}
// GET /rooms/{room_id}/tasks
// POST /rooms/{room_id}/tasks
// GET /rooms/{room_id}/tasks/{task_id}
// GET /rooms/{room_id}/files
// GET /rooms/{room_id}/files/{file_id}
// General functions
api(method:string, api:string):any; // return same type as _.Deferred()
api(method:string, api:string, callback:(err:Error, res:superagent.Response)=>void):void;
api(method:string, api:string, args:any, callback:(err:Error, res:superagent.Response)=>void):void;
get(api:string):any; // return same type as _.Deferred()
get(api:string, callback:(err:Error, res:superagent.Response)=>void):void;
get(api:string, args:any, callback:(err:Error, res:superagent.Response)=>void):void;
post(api:string):any; // return same type as _.Deferred()
post(api:string, callback:(err:Error, res:superagent.Response)=>void):void;
post(api:string, args:any, callback:(err:Error, res:superagent.Response)=>void):void;
put(api:string):any; // return same type as _.Deferred()
put(api:string, callback:(err:Error, res:superagent.Response)=>void):void;
put(api:string, args:any, callback:(err:Error, res:superagent.Response)=>void):void;
del(api:string):any; // return same type as _.Deferred()
del(api:string, callback:(err:Error, res:superagent.Response)=>void):void;
del(api:string, args:any, callback:(err:Error, res:superagent.Response)=>void):void;
}
}
export = ChatWork;
}