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 neutrino compilation middleware (e.g. @neutrinojs/react).
|
|
|
|
*/
|
2022-03-08 16:03:06 -06:00
|
|
|
'@flecks/http/server.compiler': () => {
|
2022-03-07 00:21:16 -06:00
|
|
|
return require('@neutrinojs/node');
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 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();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|