Add support for view engines, PNPM

This commit is contained in:
2021-03-08 18:07:55 -06:00
parent 4ecada6be8
commit b820b35b70
12 changed files with 814 additions and 3 deletions

23
src/views/ViewEngine.ts Normal file
View File

@@ -0,0 +1,23 @@
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<string>
public abstract renderByName(templateName: string, locals: {[key: string]: any}): string | Promise<string>
}