UNPKG

@whook/example

Version:
62 lines (45 loc) 3.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.runServer = runServer; exports.prepareServer = prepareServer; exports.prepareEnvironment = prepareEnvironment; var _knifecycle = _interopRequireWildcard(require("knifecycle")); var _whook = require("@whook/whook"); var _httpRouter = _interopRequireDefault(require("@whook/http-router")); var _swaggerUi = _interopRequireDefault(require("@whook/swagger-ui")); var _autoload = _interopRequireDefault(require("@whook/whook/dist/services/_autoload")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } // Per convention a Whook server main file must export // the following 3 functions to be composable: // The `runServer` function is intended to run the server // and may be proxied as is except in some e2e test cases async function runServer(innerPrepareEnvironment = prepareEnvironment, innerPrepareServer = prepareServer, injectedNames = []) { return (0, _whook.runServer)(innerPrepareEnvironment, innerPrepareServer, injectedNames); } // The `prepareServer` function is intended to prepare the server async function prepareServer(injectedNames = [], $ = new _knifecycle.default()) { // Add here any logic bounded to the server only // For example, here we add a Swagger UI page for // development purpose $.register((0, _swaggerUi.default)(_httpRouter.default)); return await (0, _whook.prepareServer)(injectedNames, $); } // The `prepareEnvironment` one is intended to prepare the server environment async function prepareEnvironment($ = new _knifecycle.default()) { $ = await (0, _whook.prepareEnvironment)($); // You can register any service/handler required to bootstrap // the server env here manually see Knifecycle for more infos // https://github.com/nfroidure/knifecycle // OR, like in this example, use the Whook `$autoload` service // that looks for handlers, configs and services for you in their // respective folders. Of course, you can also write your own // autoloader $.register(_autoload.default); // You have to declare the project main file directory // to allow autoloading features to work with it either // in development and production (files built in `dist/`) $.register((0, _knifecycle.constant)('PROJECT_SRC', __dirname)); // Placeholder for the diagnostic endpoint to return current // transactions $.register((0, _knifecycle.constant)('TRANSACTIONS', {})); // Setup your own whook plugins or avoid whook default by leaving it empty $.register((0, _knifecycle.constant)('WHOOK_PLUGINS', ['@whook/cli', '@whook/whook'])); return $; }