feat: backend service template

This commit is contained in:
Ben Allfree 2023-06-19 09:25:37 -07:00
parent fb264d2557
commit 3a3aa77110
2 changed files with 35 additions and 0 deletions

View File

@ -0,0 +1,33 @@
---
to: packages/daemon/src/services/<%= name %>.ts
---
<%
const { changeCase, inflection } = h
const { dasherize } = inflection
const { upper, camel, pascal, snake, lower } = changeCase
const nameName = camel(name)
const NameName = pascal(name)
const NAME_NAME = upper(snake(NameName))
const name_name = lower(NAME_NAME)
const dashName = dasherize(name_name)
h.replace('./packages/daemon/src/server.ts', /\/\/ gen:import/, `import { ${nameName}Service } from './services/${NameName}'\n // gen:import`);
h.replace('./packages/daemon/src/server.ts', /\/\/ gen:service/, `await ${nameName}Service({ logger })\n // gen:service`);
%>
import { mkSingleton, SingletonBaseConfig } from '@pockethost/common'
export type <%=NameName%>ServiceConfig = SingletonBaseConfig & {}
export const <%=nameName%>Service = mkSingleton(
async (config: <%=NameName%>ServiceConfig) => {
const { logger } = config
const _serviceLogger = logger.create('<%=NameName%>Service')
const { dbg, error, warn, abort } = _serviceLogger
dbg(`Initializing <%=NameName%>Service`)
return {
shutdown: async () => {},
}
}
)

View File

@ -20,6 +20,7 @@ import { logger as loggerService } from '@pockethost/common'
import { exec } from 'child_process'
import { centralDbService } from './services/CentralDbService'
import { instanceLoggerService } from './services/InstanceLoggerService'
// gen:import
loggerService({ debug: DEBUG, trace: TRACE, errorTrace: !DEBUG })
@ -92,6 +93,7 @@ global.EventSource = require('eventsource')
instanceApiTimeoutMs: 1000,
})
await centralDbService({ logger })
// gen:service
info(`Hooking into process exit event`)