DefinitelyTyped/hapi/hapi-tests-8.2.0.ts
Ben Herila 7bf9ee34c6 Fixed IReply definition (#8960)
* Fixed IReply definition

* Fix a lot of inconsistent whitespace which caused merge issues

* [Hapi] Add support for IReply::state and IReply::unstate

* Add support for IReply::header(name, value, options)

* Reply functions should be returning Response objects

* Specify IHeaderOptions

* [Hapi] Got tests passing locally, also made the other hapi files consistent with the v8.2.0 ts
Sorry about any attribution clobbering but there wasn't much in the git blame view anyways.
2016-04-17 23:48:56 +09:00

109 lines
2.1 KiB
TypeScript

/// <reference path="hapi.d.ts" />
import Hapi = require("hapi");
// Create a server with a host and port
var server = new Hapi.Server();
server.connection({
host: "localhost",
port: 8000,
});
// Add plugins
var plugin: any = {
register: function (plugin: Object, options: Object, next: Function) {
next();
}
};
plugin.register.attributes = {
name: "test",
version: "1.0.0"
};
// optional options parameter
server.register({}, function (err) {
});
// optional options.routes.vhost parameter
server.register({}, {select: 'api', routes: {prefix: '/prefix'}}, function (err) {
});
//server.pack.register(plugin, (err: Object) => {
// if (err) { throw err; }
//});
//server.pack.register([plugin], (err: Object) => {
// if (err) { throw err; }
//});
// Add server method
var add = function (a: number, b: number, next: (err: any, result?: any, ttl?: number) => void) {
next(null, a + b);
};
server.method("sum", add);//, { cache: { expiresIn: 2000 } });
server.methods["sum"](4, 5, (err: any, result: any) => {
console.log(result);
});
var addArray = function (array: Array<number>, next: (err: any, result?: any, ttl?: number) => void) {
var sum: number = 0;
array.forEach((item: number) => {
sum += item;
});
next(null, sum);
};
server.method("sumObj", addArray, {
//cache: { expiresIn: 2000 },
generateKey: (array: Array<number>) => {
return array.join(',');
}
});
server.methods["sumObj"]([5, 6], (err: any, result: any) => {
console.log(result);
});
// Add the route
server.route({
method: 'GET',
path: '/hello',
handler: function (request: Hapi.Request, reply: Function) {
reply('hello world');
}
});
server.route([{
method: 'GET',
path: '/hello2',
handler: function (request: Hapi.Request, reply: Function) {
reply('hello world2');
}
}]);
// config.validate parameters should be optional
server.route([{
method: 'GET',
path: '/hello2',
handler: function (request: Hapi.Request, reply: Function) {
reply('hello world2');
},
config: {
validate: {}
}
}]);
server.route([{
method: 'GET',
path: '/hello3',
handler: function (request: Hapi.Request, reply: Function) {
reply().code(201);
}
}]);
// Start the server
server.start();