import {Template} from "../Template" import {UniversalPath} from "../../util" /** * Template that generates a new application unit class in app/units. */ const unit_template: Template = { name: 'unit', fileSuffix: '.ts', description: 'Create a service unit that will start and stop with your application.', baseAppPath: ['units'], render(name: string, fullCanonicalName: string, targetFilePath: UniversalPath) { return `import {Singleton, Inject} from "@extollo/di" import {Unit, Logging} from "@extollo/lib" /** * ${name} Unit * --------------------------------------- * Put some description here. */ @Singleton() export class ${name} extends Unit { @Inject() protected readonly logging!: Logging public async up() { this.logging.info('${name} has started!') } public async down() { this.logging.info('${name} has stopped!') } } ` } } export { unit_template }