UNPKG

md-toy-blog

Version:

Very simple Markdown blog: serves your md as html without fancy databases. You will only spend time writing the actual data.

33 lines (27 loc) 1.16 kB
import RoutePathValidator from "./RoutePathValidator"; export default class PageRoute extends RoutePathValidator { private pageFilePaths: string[]; controller: RouteControllerCtorConfig<PageControllerActionParams>; constructor(public config: PageRouteCtorConfigProps) { super(config); this.controller = config.controller; this.pageFilePaths = config.pageFilePathsGetter(); } getControllerActionParams({ request }: { request: HttpRequest }) { return { filepath: this.getHtmlFileRelativePathWithoutDot(request) }; } protected isValid(request: HttpRequest) { return this.pageFilePaths.indexOf(this.getHtmlFileRelativePathWithoutDot(request)) >= 0; } protected getHtmlFileRelativePathWithoutDot(request: HttpRequest): string { const requestedFilepath = this.getRequestedFilepath(request); console.log('requestedFilePath: ', requestedFilepath); return `${(requestedFilepath === '/') ? '/index' : requestedFilepath}.html`; } protected getRequestedFilepath({ url }: { url: string; }) { const stripOutQueryPart = /^(\/[^?]*)\?/g.exec(url); return stripOutQueryPart ? stripOutQueryPart[1] : url; } }