You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
948 B
39 lines
948 B
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 }
|