mirror of
https://github.com/pockethost/pockethost.git
synced 2025-07-02 02:42:30 +00:00
feat: backend service template
This commit is contained in:
parent
fb264d2557
commit
3a3aa77110
33
_templates/service/new/service.ejs.t
Normal file
33
_templates/service/new/service.ejs.t
Normal 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 () => {},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
@ -20,6 +20,7 @@ import { logger as loggerService } from '@pockethost/common'
|
|||||||
import { exec } from 'child_process'
|
import { exec } from 'child_process'
|
||||||
import { centralDbService } from './services/CentralDbService'
|
import { centralDbService } from './services/CentralDbService'
|
||||||
import { instanceLoggerService } from './services/InstanceLoggerService'
|
import { instanceLoggerService } from './services/InstanceLoggerService'
|
||||||
|
// gen:import
|
||||||
|
|
||||||
loggerService({ debug: DEBUG, trace: TRACE, errorTrace: !DEBUG })
|
loggerService({ debug: DEBUG, trace: TRACE, errorTrace: !DEBUG })
|
||||||
|
|
||||||
@ -92,6 +93,7 @@ global.EventSource = require('eventsource')
|
|||||||
instanceApiTimeoutMs: 1000,
|
instanceApiTimeoutMs: 1000,
|
||||||
})
|
})
|
||||||
await centralDbService({ logger })
|
await centralDbService({ logger })
|
||||||
|
// gen:service
|
||||||
|
|
||||||
info(`Hooking into process exit event`)
|
info(`Hooking into process exit event`)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user