
// Initializes the `<%= serviceName %>` service on path `/<%= path %>`
<%- tplTsOnly([`import { App } from '../../${subFolderReverse}app.interface'${sc}`, '', '']) -%>
<%- tplImports('createService', 'feathers-rethinkdb', 'req') %>
<%- tplImports('hooks', `./${kebabName}.hooks`) %>
<%- insertFragment('imports') %>
<%- insertFragment('init') %>

<%- tplModuleExports(null, 'function (app) {', 'function (app: App) {') %>
  let Model = app.get('rethinkdbClient')<%- sc %>
  let paginate = app.get('paginate')<%- sc %>
  <%- insertFragment('func_init') %>

  const options = {
    name: '<%= snakeName %>',
    Model,
    paginate
  }<%- sc %>

  // Initialize our service with any options it requires
  <%- insertFragment('extend', `  app.use('/${path}', createService(options))${sc}`) %>

  // Get our initialized service so that we can register hooks
  const service = app.service('<%= path %>')<%- sc %>

  service.hooks(hooks)<%- sc %>
  <%- insertFragment('func_return') %>
}<%- sc %>
<%- insertFragment('more') %>

<%- insertFragment('exports') %>
<%- `${tplExport('moduleExports')}${sc}` %>

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