flecks/packages/http/build/dox/hooks.js

63 lines
1.7 KiB
JavaScript
Raw Normal View History

2022-03-07 00:21:16 -06:00
import {Hooks} from '@flecks/core';
export default {
[Hooks]: {
/**
* Define sequential actions to run when the client comes up.
*/
2022-03-08 16:03:06 -06:00
'@flecks/http/client.up': async () => {
2022-03-07 00:21:16 -06:00
await youCanDoAsyncThingsHere();
},
/**
* Override flecks configuration sent to client flecks.
* @param {http.ClientRequest} req The HTTP request object.
*/
2022-03-08 16:03:06 -06:00
'@flecks/http.config': (req) => ({
2022-03-07 00:21:16 -06:00
someClientFleck: {
someConfig: req.someConfig,
},
}),
/**
* Define HTTP routes.
*/
2022-03-08 16:03:06 -06:00
'@flecks/http.routes': () => [
2022-03-07 00:21:16 -06:00
{
method: 'get',
path: '/some-path',
middleware: (req, res, next) => {
// Express-style route middleware...
next();
},
},
],
/**
* Define middleware to run when a route is matched.
*/
2022-03-08 16:03:06 -06:00
'@flecks/http/server.request.route': () => (req, res, next) => {
2022-03-07 00:21:16 -06:00
// Express-style route middleware...
next();
},
/**
* Define middleware to run when an HTTP socket connection is established.
*/
2022-03-08 16:03:06 -06:00
'@flecks/http/server.request.socket': () => (req, res, next) => {
2022-03-07 00:21:16 -06:00
// Express-style route middleware...
next();
},
/**
* Define composition functions to run over the HTML stream prepared for the client.
* @param {stream.Readable} stream The HTML stream.
* @param {http.ClientRequest} req The HTTP request object.
*/
2022-03-08 16:03:06 -06:00
'@flecks/http/server.stream.html': (stream, req) => {
2022-03-07 00:21:16 -06:00
return stream.pipe(myTransformStream);
},
/**
* Define sequential actions to run when the HTTP server comes up.
*/
2022-03-08 16:03:06 -06:00
'@flecks/http/server.up': async () => {
2022-03-07 00:21:16 -06:00
await youCanDoAsyncThingsHere();
},
},
};