
/* <%- lintDisable %> no-console */
// Start the server. (Can be re-generated.)
<%- insertFragment('preface') %>
<%- tplImports('logger', './logger') %>
<%- tplImports('app', './app') %>
<%# -%>
<%# --- if-1 starts below. -%>
<% if (specs.app.seedData) { -%>
<%- tplImports('seedData', './seed-data') %>
<% } -%>
<%# --- if-1 ends above. -%>
<%- insertFragment('imports') %>
<%- insertFragment('init') %>

const port = app.get('port')<%- sc %>
const server = app.listen(port)<%- sc %>
<%- insertFragment('init2') %>

process.on('unhandledRejection', (reason, p) => {
  <%- insertFragment('unhandled_rejection_log', [
    `  logger.error(\'Unhandled Rejection at: Promise \', p, reason)${sc}`,
  ]) %>
  <%- insertFragment('unhandled_rejection') %>
})<%- sc %>

server.on('listening', async () => {
  <%- insertFragment('listening_log', [
    `  logger.info(\'Feathers application started on http://%s:%d\', app.get(\'host\'), port)${sc}`,
  ]) %>
<%# --- if-2 starts below. -%>
<% if (Object.keys(specs.services || []).map(n => specs.services[n]).find(s => s.adapter === 'mongodb')) { -%>
  await app.get('mongoClient')<%- sc %>
<% } -%>
<% if (Object.keys(specs.services || []).map(n => specs.services[n]).find(s => s.adapter === 'sequelize')) { -%>
  await app.get('sequelizeClient')<%- sc %>
<% } -%>
<%# --- if-2 ends above. -%>
  <%- insertFragment('listening') %>
<%# -%>
<%# --- if-3 starts below. -%>
<% if (specs.app.seedData) { -%>
  await seedData(app)<%- sc %>
<% } -%>
<%# --- if-3 ends above. -%>
  <%- insertFragment('listening1') %>
})<%- sc %>

<%- insertFragment('funcs') %>
<%- insertFragment('end') %>
