@whook/example
Version:
A basic Whook server
62 lines (45 loc) • 3.13 kB
JavaScript
;
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 $;
}