diff --git a/express/express.d.ts b/express/express.d.ts index 97b4ef2b8..b54f6e2fb 100644 --- a/express/express.d.ts +++ b/express/express.d.ts @@ -40,6 +40,7 @@ declare module "express" { delete(...handler: RequestHandler[]): IRoute; patch(...handler: RequestHandler[]): IRoute; options(...handler: RequestHandler[]): IRoute; + head(...handler: RequestHandler[]): IRoute; } interface IRouterMatcher { @@ -97,6 +98,7 @@ declare module "express" { delete: IRouterMatcher; patch: IRouterMatcher; options: IRouterMatcher; + head: IRouterMatcher; route(path: string): IRoute; diff --git a/maildev/maildev-tests.ts b/maildev/maildev-tests.ts new file mode 100644 index 000000000..62c324c5e --- /dev/null +++ b/maildev/maildev-tests.ts @@ -0,0 +1,13 @@ +/// + +import MailDev = require("maildev") + +var options: MailDevOptions = {smtp: 1025}; +var maildev = new MailDev(options); + +var errorCallback = (error: Error): void => {}; +maildev.listen(errorCallback); + +var eventName = 'new'; +var emailCallback = (email: Object): void => {}; +maildev.on(eventName, emailCallback) diff --git a/maildev/maildev.d.ts b/maildev/maildev.d.ts new file mode 100644 index 000000000..a02fdb34b --- /dev/null +++ b/maildev/maildev.d.ts @@ -0,0 +1,155 @@ +// Type definitions for maildev 0.11.0 +// Project: https://github.com/djfarrelly/maildev +// Definitions by: Cyril Schumacher +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +/** + * Interface for {@link MailDev} options. + */ +interface MailDevOptions { + /** + * SMTP host for outgoing emails + * + * @type {string} + */ + outgoingHost?: string; + + /** + * SMTP password for outgoing emails + * + * @type {string} + */ + outgoingPass?: string; + + /** + * SMTP port for outgoing emails. + * + * @type {number} + */ + outgoingPort?: number; + + /** + * SMTP user for outgoing emails + * + * @type {string} + */ + outgoingUser?: string; + + /** + * SMTP port to catch emails. + * + * @type {number} + */ + smtp?: number; +} + +/** + * Interface for mail. + */ +interface Mail { + /** + * Identifier. + */ + id?: string; + + /** + * Client. + */ + envelope?: Object; +} + +declare module "maildev" { + import fs = require("fs"); + + /** + * Interface for {@link MailDev}. + */ + class MailDev { + /** + * Constructor. + * + * @public + * @param {MailDevOptions} options The options. + */ + constructor(options: MailDevOptions); + + /** + * Deletes a given email by identifier. + * + * @public + * @param {string} id The email identifier. + * @param {Function} callback The error callback. + */ + deleteEmail(id: string, callback?: (error: Error) => void): void; + + /** + * Deletes all email and their attachments. + * + * @public + * @param {Function} callback The error callback. + */ + deleteAllEmail(callback?: (error: Error) => void): void; + + /** + * Stops the SMTP server. + * + * @public + * @param {Function} callback The error callback. + */ + end(callback?: (error: Error) => void): void; + + /** + * Accepts e-mail identifier, returns email object. + * + * @public + * @param {string} id The e-mail identifier. + * @param {Function} callback The error callback. + */ + getEmail(id: string, callback?: (error: Error) => void): void; + + /** + * Returns a readable stream of the raw e-mail. + * + * @public + * @param {string} id The e-mail identifier. + */ + getRawEmail(id: string, callback?: (error: Error, readStream: fs.ReadStream) => void): void; + + /** + * Returns array of all e-mail. + + * @public + */ + getAllEmail(done: (error: Error, emails: Array) => void): void; + + /** + * Starts the SMTP server. + * + * @public + * @param {Function} callback The error callback. + */ + listen(callback?: (error: Error) => void): void; + + /** + * Event called when a new e-mail is received. Callback receives single mail object. + * + * @public + * @param {string} eventName The event name. + * @param {Function} email The email. + */ + on(eventName: string, callback: (email: Object) => void): void; + + /** + * Relay the e-mail. + * + * @param {string} idOrMailObject The identifier or mail object. + * @param {Function} done The callback. + */ + relayMail(idOrMailObject: string, done: (error: Error) => void): void; + } + + var out: typeof MailDev; + export = out; +} diff --git a/node-schedule/node-schedule-tests.ts b/node-schedule/node-schedule-tests.ts new file mode 100644 index 000000000..bc4dbbd74 --- /dev/null +++ b/node-schedule/node-schedule-tests.ts @@ -0,0 +1,79 @@ +/// + +import nodeSchedule = require("node-schedule"); + +/** + * Test for {@link Job} class. + */ +function testJob() { + var name: string = ''; + var job: Function = null; + var callback: Function = null; + + new nodeSchedule.Job(job, callback); + new nodeSchedule.Job(name, job, callback); +} + +/** + * Test for {@link Range} class. + */ +function testRange() { + var range = new nodeSchedule.Range(0); + var twoParametersRange = new nodeSchedule.Range(0, 0); + var threeParametersRange = new nodeSchedule.Range(0, 0, 0); + + var contained: boolean = range.contains(0); +} + +/** + * Test for {@link RecurrenceRule} class. + */ +function testRecurrenceRule() { + var range = new nodeSchedule.Range(0, 0, 0); + var rule: nodeSchedule.RecurrenceRule = { + date: 0, + dayOfWeek: [0, range], + hour: 0, + minute: 0, + month: 0, + second: 0, + year: 0 + } +} + +/** + * Test for {@link Invocation} class. + */ +function testInvocation() { + var job = new nodeSchedule.Job(); + var fireDate = new Date(); + var rule: nodeSchedule.RecurrenceRule = {}; + + var invocation = new nodeSchedule.Invocation(job, fireDate, rule); + invocation.timerID = 0; +} + +/** + * Test for {@link ScheduleJob} class. + */ +function testScheduleJob() { + var callback: Function = null; + nodeSchedule.scheduleJob('', callback); + + var rule: nodeSchedule.RecurrenceRule = {}; + nodeSchedule.scheduleJob(rule, callback); + + var date: Date = new Date(); + nodeSchedule.scheduleJob(date, callback); + + var date: Date = new Date(); + nodeSchedule.scheduleJob(date, callback); +} + +/** + * Test for {@link cancelJob} function. + */ +function testCancelJob() { + var job = new nodeSchedule.Job(); + nodeSchedule.cancelJob(job); +} diff --git a/node-schedule/node-schedule.d.ts b/node-schedule/node-schedule.d.ts new file mode 100644 index 000000000..e1ff005df --- /dev/null +++ b/node-schedule/node-schedule.d.ts @@ -0,0 +1,199 @@ +// Type definitions for node-schedule +// Project: https://github.com/tejasmanohar/node-schedule/ +// Definitions by: Cyril Schumacher +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module "node-schedule" { + import nodeSchedule = require('node-schedule'); + + /** + * Recurrence rules. + */ + export interface RecurrenceRule { + /** + * Day of the month. + * + * @public + * @type {number} + */ + date?: number; + + /** + * Day of the week. + * + * @public + * @type {number|Array} + */ + dayOfWeek?: number|Array; + + /** + * Hour. + * + * @public + * @type {number} + */ + hour?: number; + + /** + * Minute. + * + * @public + * @type {number} + */ + minute?: number; + + /** + * Month. + * + * @public + * @type {number} + */ + month?: number; + + /** + * Second. + * + * @public + * @type {number} + */ + second?: number; + + /** + * Year. + * + * @public + * @type {number} + */ + year?: number; + } + + /** + * Range. + * + * @class + */ + export class Range { + /** + * Constructor. + * + * @constructor + * @param {number} start The start. + * @param {end} end The end. + * @param {step} step The step. + */ + constructor(start?: number, end?: number, step?: number); + + /** + * Return a {boolean} if the class contains the specified value. + * + * @param {number} value The value. + * @returns {boolean} {true} if the class contains the specified value, otherwise, {false}. + */ + contains(value: number): boolean; + } + + /** + * Scheduler jobs. + * + * @class + */ + export class Job { + /** + * Constructor. + * + * @constructor + * @param {RecurrenceRule} rule The rule. + * @param {callback} callback The callback. + */ + constructor(name?: string, job?: Function, callback?: Function); + + /** + * Constructor. + * + * @constructor + * @param {RecurrenceRule} rule The rule. + * @param + */ + constructor(job?: Function, callback?: Function); + + /** + * Attach an event handler function. + * + * @public + * @param {string} eventName The event name. + * @param {Function} handler The function to execute when the event is triggered. + */ + on(eventName: string, handler: Function): void; + + /** + * + * @public + */ + schedule(date: Date): void; + } + + /** + * Invocation. + * + * @class + */ + export class Invocation { + /** + * Fire date. + * + * @public + * @type {Date} + */ + public fireDate: Date; + + /** + * Job. + * + * @public + * @type {Job} + */ + public job: Job; + + /** + * Recurrence rule. + * + * @public + * @type {RecurrenceRule} + */ + public recurrenceRule: RecurrenceRule; + + /** + * Timer identifier. + * + * @public + * @type {number} + */ + public timerID: number; + + /** + * Constructor. + * + * @constructor + * @param {Job} job The job. + * @param {Date} fireDate The fire date. + * @param {RecurrenceRule} recurrenceRule The recurrence rule. + */ + constructor(job: Job, fireDate: Date, recurrenceRule: RecurrenceRule); + } + + /** + * Cancels the job. + * + * @param {Job} job The job. + * @returns {boolean} {true} if the job has been cancelled with success, otherwise, {false}. + */ + export function cancelJob(job: Job): boolean; + + /** + * Create a schedule job. + * + * @param {RecurrenceRule} rule The rule. + * @param {Function} callback The callback. + */ + export function scheduleJob(rule: RecurrenceRule|Date|string, callback: Function): void; +}