Add more tests.

This commit is contained in:
rafaelsouzaf
2017-12-09 21:29:43 -03:00
parent 1b597e080a
commit b1ca20cc48
5 changed files with 80 additions and 5 deletions

View File

@@ -19,12 +19,14 @@ export * from './request/query';
export * from './response/continue';
export * from './response/error';
export * from './response/redirect';
export * from './response/reply';
export * from './response/response';
export * from './response/response-events';
/** ROUTE */
export * from './route/adding-routes';
export * from './route/config';
export * from './route/handler';
export * from './route/route-options-pre';
/** SERVER */
export * from './server/server-app';

View File

@@ -1,8 +1,8 @@
// https://github.com/hapijs/hapi/blob/master/API.md#-servereventevents
// https://github.com/hapijs/hapi/blob/master/API.md#-requestevents
import {
Lifecycle,
Request,
RequestExtPointFunction,
ResponseToolkit,
RouteOptions,
Server,
@@ -23,7 +23,7 @@ const serverRoute: ServerRoute = {
}
};
const onRequest: RequestExtPointFunction = function (request: Request, h: ResponseToolkit) {
const onRequest: Lifecycle.Method = function (request: Request, h: ResponseToolkit) {
/*
* Server events

View File

@@ -0,0 +1,31 @@
// https://github.com/hapijs/hapi/blob/master/API.md#-responseevents
import {Request, ResponseToolkit, Server, ServerOptions, ServerRoute, ResponseObject} from "hapi";
import * as Crypto from "crypto";
const preResponse = function (request: Request, h: ResponseToolkit) {
const response:ResponseObject = request.response;
// if (response.isBoom) {
// return null;
// }
const hash = Crypto.createHash('sha1');
response.events.on('peek', (chunk:any) => {
hash.update(chunk);
});
response.events.once('finish', () => {
console.log(hash.digest('hex'));
});
return h.continue;
};
const server = new Server({
port: 8000,
});
server.ext('onPreResponse', preResponse);
server.start();
console.log('Server started at: ' + server.info.uri);

View File

@@ -6,7 +6,7 @@ const options: ServerOptions = {
};
const serverRoutes: ServerRoute[] = [
// verbose notation
// Detailed notation
{
path: '/test1',
method: 'GET',
@@ -17,7 +17,7 @@ const serverRoutes: ServerRoute[] = [
return response;
}
},
// chained notation
// Chained notation
{
path: '/test2',
method: 'GET',

View File

@@ -0,0 +1,42 @@
// https://github.com/hapijs/hapi/blob/master/API.md#-routeoptionspre
import {Server, Request, ResponseToolkit} from "hapi";
const server = new Server({
port: 8000,
});
const pre1 = function(request: Request, h: ResponseToolkit) {
return 'Hello';
};
const pre2 = function(request: Request, h: ResponseToolkit) {
return 'World';
};
const pre3 = function(request: Request, h: ResponseToolkit) {
return request.pre.m1 + ' ' + request.pre.m2;
};
server.route({
method: 'GET',
path: '/',
config: {
pre: [
[
// m1 and m2 executed in parallel
{ method: pre1, assign: 'm1' },
{ method: pre2, assign: 'm2' }
],
{ method: pre3, assign: 'm3' },
],
handler: function (request: Request, h: ResponseToolkit) {
return request.pre.m3 + '!\n';
}
}
});
server.start();
server.events.on('start', () => {
console.log('Server started at: ' + server.info.uri);
});