73 lines
1.4 KiB
JavaScript
73 lines
1.4 KiB
JavaScript
require('../.env.js');
|
|
|
|
const Main = require('apr-main');
|
|
const Nav = require('hapi-webconsole-nav');
|
|
const Graphi = require('graphi');
|
|
const Url = require('url');
|
|
|
|
const Server = require('./server');
|
|
const Ui = require('my-joy-navigation');
|
|
|
|
const Regions = require('../data/regions');
|
|
const Categories = require('../data/categories');
|
|
const Account = require('../data/account');
|
|
|
|
const {
|
|
PORT = 4001,
|
|
BASE_URL = `http://0.0.0.0:${PORT}`,
|
|
PREFIX = 'navigation',
|
|
DC_NAME,
|
|
SDC_URL,
|
|
SDC_KEY_PATH,
|
|
SDC_ACCOUNT,
|
|
SDC_KEY_ID
|
|
} = process.env;
|
|
|
|
const dcName = DC_NAME || Url.parse(SDC_URL).host.split('.')[0];
|
|
const keyPath = SDC_KEY_PATH;
|
|
const keyId = `/${SDC_ACCOUNT}/keys/${SDC_KEY_ID}`;
|
|
const apiBaseUrl = SDC_URL;
|
|
const baseUrl = BASE_URL;
|
|
|
|
Main(async () => {
|
|
const server = await Server({
|
|
PORT,
|
|
BASE_URL
|
|
});
|
|
|
|
await server.register([
|
|
{
|
|
plugin: Graphi,
|
|
options: {
|
|
graphqlPath: '/graphql',
|
|
graphiqlPath: '/graphiql',
|
|
authStrategy: 'sso'
|
|
},
|
|
routes: {
|
|
prefix: `/${PREFIX}`
|
|
}
|
|
},
|
|
{
|
|
plugin: Nav,
|
|
options: {
|
|
keyPath,
|
|
keyId,
|
|
apiBaseUrl,
|
|
dcName,
|
|
baseUrl,
|
|
regions: Regions,
|
|
accountServices: Account,
|
|
categories: Categories
|
|
},
|
|
routes: {
|
|
prefix: `/${PREFIX}`
|
|
}
|
|
},
|
|
{
|
|
plugin: Ui
|
|
}
|
|
]);
|
|
|
|
await server.start();
|
|
});
|