import {AppClass} from "../lifecycle/AppClass" import {Config} from "../service/Config" import {Container} from "@extollo/di" import {UniversalPath} from "@extollo/util" export abstract class ViewEngine extends AppClass { protected readonly config: Config protected readonly debug: boolean constructor() { super() this.config = Container.getContainer().make(Config) this.debug = (this.config.get('server.mode', 'production') === 'development' || this.config.get('server.debug', false)) } public get path(): UniversalPath { return this.app().appPath(...['resources', 'views']) // FIXME allow configuring } public abstract renderString(templateString: string, locals: {[key: string]: any}): string | Promise public abstract renderByName(templateName: string, locals: {[key: string]: any}): string | Promise }