kibana-123
Version:
Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic
224 lines (180 loc) • 7.09 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { var callNext = step.bind(null, 'next'); var callThrow = step.bind(null, 'throw'); function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(callNext, callThrow); } } callNext(); }); }; }
var _url = require('url');
var _fs = require('fs');
var _lodash = require('lodash');
var _bluebird = require('bluebird');
var _boom = require('boom');
var _boom2 = _interopRequireDefault(_boom);
var _path = require('path');
var _utilsFrom_root = require('../utils/from_root');
var _utilsFrom_root2 = _interopRequireDefault(_utilsFrom_root);
var _ui_exports = require('./ui_exports');
var _ui_exports2 = _interopRequireDefault(_ui_exports);
var _ui_bundle = require('./ui_bundle');
var _ui_bundle2 = _interopRequireDefault(_ui_bundle);
var _ui_bundle_collection = require('./ui_bundle_collection');
var _ui_bundle_collection2 = _interopRequireDefault(_ui_bundle_collection);
var _ui_bundler_env = require('./ui_bundler_env');
var _ui_bundler_env2 = _interopRequireDefault(_ui_bundler_env);
exports['default'] = _asyncToGenerator(function* (kbnServer, server, config) {
var getKibanaPayload = _asyncToGenerator(function* (_ref) {
var app = _ref.app;
var request = _ref.request;
var includeUserProvidedConfig = _ref.includeUserProvidedConfig;
var uiSettings = server.uiSettings();
return {
app: app,
nav: uiExports.navLinks.inOrder,
version: kbnServer.version,
buildNum: config.get('pkg.buildNum'),
buildSha: config.get('pkg.buildSha'),
basePath: config.get('server.basePath'),
serverName: config.get('server.name'),
devMode: config.get('env.dev'),
uiSettings: yield (0, _bluebird.props)({
defaults: uiSettings.getDefaults(),
user: includeUserProvidedConfig && uiSettings.getUserProvided(request)
}),
vars: yield (0, _bluebird.reduce)(uiExports.injectedVarsReplacers, _asyncToGenerator(function* (acc, replacer) {
return yield replacer(acc, request, server);
}), (0, _lodash.defaults)((yield app.getInjectedVars()) || {}, uiExports.defaultInjectedVars))
};
});
var renderApp = _asyncToGenerator(function* (_ref2) {
var app = _ref2.app;
var reply = _ref2.reply;
var _ref2$includeUserProvidedConfig = _ref2.includeUserProvidedConfig;
var includeUserProvidedConfig = _ref2$includeUserProvidedConfig === undefined ? true : _ref2$includeUserProvidedConfig;
try {
return reply.view(app.templateName, {
app: app,
kibanaPayload: yield getKibanaPayload({
app: app,
request: reply.request,
includeUserProvidedConfig: includeUserProvidedConfig
}),
bundlePath: config.get('server.basePath') + '/bundles'
});
} catch (err) {
reply(err);
}
});
var uiExports = kbnServer.uiExports = new _ui_exports2['default']({
urlBasePath: config.get('server.basePath')
});
var bundlerEnv = new _ui_bundler_env2['default'](config.get('optimize.bundleDir'));
bundlerEnv.addContext('env', config.get('env.name'));
bundlerEnv.addContext('urlBasePath', config.get('server.basePath'));
bundlerEnv.addContext('sourceMaps', config.get('optimize.sourceMaps'));
bundlerEnv.addContext('kbnVersion', config.get('pkg.version'));
bundlerEnv.addContext('buildNum', config.get('pkg.buildNum'));
uiExports.addConsumer(bundlerEnv);
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = kbnServer.plugins[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var plugin = _step.value;
uiExports.consumePlugin(plugin);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator['return']) {
_iterator['return']();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
var bundles = kbnServer.bundles = new _ui_bundle_collection2['default'](bundlerEnv, config.get('optimize.bundleFilter'));
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = uiExports.getAllApps()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var app = _step2.value;
bundles.addApp(app);
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2['return']) {
_iterator2['return']();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
var _iteratorNormalCompletion3 = true;
var _didIteratorError3 = false;
var _iteratorError3 = undefined;
try {
for (var _iterator3 = uiExports.getBundleProviders()[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
var gen = _step3.value;
// var bundle = yield gen(_ui_bundle2['default'], bundlerEnv, uiExports.getAllApps(), kbnServer.plugins);
// if (bundle) bundles.add(bundle);
}
// render all views from the ui/views directory
} catch (err) {
_didIteratorError3 = true;
_iteratorError3 = err;
} finally {
try {
if (!_iteratorNormalCompletion3 && _iterator3['return']) {
_iterator3['return']();
}
} finally {
if (_didIteratorError3) {
throw _iteratorError3;
}
}
}
server.setupViews((0, _path.resolve)(__dirname, 'views'));
server.route({
path: '/app/{id}',
method: 'GET',
handler: _asyncToGenerator(function* (req, reply) {
var id = req.params.id;
var app = uiExports.apps.byId[id];
if (!app) return reply(_boom2['default'].notFound('Unknown app ' + id));
try {
if (kbnServer.status.isGreen()) {
yield reply.renderApp(app);
} else {
yield reply.renderStatusPage();
}
} catch (err) {
reply(_boom2['default'].wrap(err));
}
})
});
server.decorate('reply', 'renderApp', function (app) {
return renderApp({
app: app,
reply: this,
includeUserProvidedConfig: true
});
});
server.decorate('reply', 'renderAppWithDefaultConfig', function (app) {
return renderApp({
app: app,
reply: this,
includeUserProvidedConfig: false
});
});
});
module.exports = exports['default'];