From 0ad8e6566c42e3a32c6e8058106f310135c601fe Mon Sep 17 00:00:00 2001 From: Chris Gedrim Date: Sat, 6 Apr 2019 23:11:37 +0100 Subject: [PATCH 1/2] Correct callback signature for express-handlebars renderView --- types/express-handlebars/express-handlebars-tests.ts | 12 ++++++++++++ types/express-handlebars/index.d.ts | 6 +++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/types/express-handlebars/express-handlebars-tests.ts b/types/express-handlebars/express-handlebars-tests.ts index e923542a65..1a38578d5e 100644 --- a/types/express-handlebars/express-handlebars-tests.ts +++ b/types/express-handlebars/express-handlebars-tests.ts @@ -1,11 +1,23 @@ import express = require('express'); import exphbs = require('express-handlebars'); +import assert = require('assert'); var app = express(); app.engine('handlebars', exphbs({defaultLayout: 'main'})); app.set('view engine', 'handlebars'); +const hbs = exphbs.create({defaultLayout: 'main'}); + +hbs.renderView('test', (err: any) => {}); +hbs.renderView('test', (err: any, content: string) => {}); +hbs.renderView('test', { + layout: 'main' +}, (err: any) => {}); +hbs.renderView('test', { + layout: 'main' +}, (err: any, content: string) => {}); + app.listen(1337); console.log('Test Express Handlebars app on port 1337..'); console.log('Done'); diff --git a/types/express-handlebars/index.d.ts b/types/express-handlebars/index.d.ts index 2c718e08b8..50bf82cc7f 100644 --- a/types/express-handlebars/index.d.ts +++ b/types/express-handlebars/index.d.ts @@ -26,6 +26,10 @@ interface ExphbsOptions { compilerOptions?: any; } +interface ExphbsCallback { + (err: any, content?: string): void; +} + interface Exphbs { engine: Function; extname: string; @@ -36,7 +40,7 @@ interface Exphbs { getTemplate(filePath: string, options?: PartialTemplateOptions): Promise; getTemplates(dirPath: string, options?: PartialTemplateOptions): Promise; render(filePath: string, context: Object, options?: RenderOptions): Promise; - renderView(viewPath: string, optionsOrCallback: any, callback?: () => string): void; + renderView(viewPath: string, optionsOrCallback: ExphbsCallback | any, callback?: ExphbsCallback): void; } interface ExpressHandlebars { From 722dcc1a29d0b8aacc17722051d4e2cb83b124aa Mon Sep 17 00:00:00 2001 From: Chris Gedrim Date: Mon, 8 Apr 2019 23:55:25 +0100 Subject: [PATCH 2/2] Overload instead of pointless union --- types/express-handlebars/index.d.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/types/express-handlebars/index.d.ts b/types/express-handlebars/index.d.ts index 50bf82cc7f..50eb804939 100644 --- a/types/express-handlebars/index.d.ts +++ b/types/express-handlebars/index.d.ts @@ -40,7 +40,8 @@ interface Exphbs { getTemplate(filePath: string, options?: PartialTemplateOptions): Promise; getTemplates(dirPath: string, options?: PartialTemplateOptions): Promise; render(filePath: string, context: Object, options?: RenderOptions): Promise; - renderView(viewPath: string, optionsOrCallback: ExphbsCallback | any, callback?: ExphbsCallback): void; + renderView(viewPath: string, callback: ExphbsCallback): void; + renderView(viewPath: string, options: any, callback: ExphbsCallback): void; } interface ExpressHandlebars {