Skip to content

Commit

Permalink
fix typings of resolvePartial-options
Browse files Browse the repository at this point in the history
- derived from the object structure seen in the debugger

closes #1534
  • Loading branch information
nknapp committed Sep 3, 2019
1 parent 133b96a commit 5be6b2f
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 7 deletions.
6 changes: 3 additions & 3 deletions Gruntfile.js
Expand Up @@ -5,15 +5,15 @@ module.exports = function(grunt) {
pkg: grunt.file.readJSON('package.json'),

eslint: {
options: {
},
files: [
'*.js',
'bench/**/*.js',
'tasks/**/*.js',
'lib/**/!(*.min|parser).js',
'spec/**/!(*.amd|json2|require).js',
'integration-testing/**/*.js'
'integration-testing/multi-nodejs-test/*.js',
'integration-testing/webpack-test/*.js',
'integration-testing/webpack-test/src/*.js'
]
},

Expand Down
13 changes: 11 additions & 2 deletions types/index.d.ts
Expand Up @@ -8,6 +8,7 @@
* - Sergei Dorogin <https://github.com/evil-shrike>
* - webbiesdk <https://github.com/webbiesdk>
* - Andrew Leedham <https://github.com/AndrewLeedham>
* - Nils Knappmeier <https://github.com/nknapp>
* For full history prior to their migration to handlebars.js, please see:
* https://github.com/DefinitelyTyped/DefinitelyTyped/commits/1ce60bdc07f10e0b076778c6c953271c072bc894/types/handlebars/index.d.ts
*/
Expand All @@ -21,7 +22,6 @@ declare namespace Handlebars {
export type Template<T = any> = TemplateDelegate<T>|string;

export interface RuntimeOptions {
name?: string;
partial?: boolean;
depths?: any[];
helpers?: { [name: string]: Function };
Expand Down Expand Up @@ -150,11 +150,20 @@ declare namespace Handlebars {
Hash(hash: hbs.AST.Hash): void;
}


export interface ResolvePartialOptions {
name: string;
helpers?: { [name: string]: Function };
partials?: { [name: string]: HandlebarsTemplateDelegate };
decorators?: { [name: string]: Function };
data?: any;
}

export namespace VM {
/**
* @deprecated
*/
export function resolvePartial<T = any>(partial: HandlebarsTemplateDelegate<T> | undefined, context: any, options: RuntimeOptions): HandlebarsTemplateDelegate<T>;
export function resolvePartial<T = any>(partial: HandlebarsTemplateDelegate<T> | undefined, context: any, options: ResolvePartialOptions): HandlebarsTemplateDelegate<T>;
}
}

Expand Down
5 changes: 3 additions & 2 deletions types/test.ts
Expand Up @@ -5,6 +5,7 @@
*/

import * as Handlebars from 'handlebars';
import ResolvePartialOptions = Handlebars.ResolvePartialOptions;

const context = {
author: { firstName: 'Alan', lastName: 'Johnson' },
Expand Down Expand Up @@ -92,8 +93,8 @@ const parsedTmplWithoutOptions = Handlebars.parse('<p>Hello, my name is {{name}}

// Custom partial resolution.
const originalResolvePartial = Handlebars.VM.resolvePartial;
Handlebars.VM.resolvePartial = <T>(partial: HandlebarsTemplateDelegate<T> | undefined, context: any, options: RuntimeOptions): HandlebarsTemplateDelegate<T> => {
const name = options.name;
Handlebars.VM.resolvePartial = <T>(partial: HandlebarsTemplateDelegate<T> | undefined, context: any, options: ResolvePartialOptions): HandlebarsTemplateDelegate<T> => {
const name = options.name.replace(/my/,'your');
// transform name.
options.name = name;
return originalResolvePartial(partial, context, options);
Expand Down

0 comments on commit 5be6b2f

Please sign in to comment.