diff --git a/types/nunjucks/index.d.ts b/types/nunjucks/index.d.ts index c58d01f228..a1719156e8 100644 --- a/types/nunjucks/index.d.ts +++ b/types/nunjucks/index.d.ts @@ -1,6 +1,7 @@ // Type definitions for nunjucks 3.1 // Project: http://mozilla.github.io/nunjucks/, https://github.com/mozilla/nunjucks // Definitions by: Ruben Slabbert +// Matthew Burstein // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.2 @@ -74,15 +75,16 @@ export class Environment { renderString(name: string, context: object): string; renderString(name: string, context: object, callback?: TemplateCallback): void; - addFilter(name: string, func: (...args: any[]) => any, async?: boolean): void; - getFilter(name: string): void; + addFilter(name: string, func: (...args: any[]) => any, async?: boolean): Environment; + getFilter(name: string): (...args: any[]) => any; - addExtension(name: string, ext: Extension): void; + addExtension(name: string, ext: Extension): Environment; removeExtension(name: string): void; getExtension(name: string): Extension; - hasExtension(name: string): void; + hasExtension(name: string): boolean; - addGlobal(name: string, value: any): void; + addGlobal(name: string, value: any): Environment; + getGlobal(name: string): any; getTemplate(name: string, eagerCompile?: boolean): Template; getTemplate(name: string, eagerCompile?: boolean, callback?: Callback): void; diff --git a/types/nunjucks/nunjucks-tests.ts b/types/nunjucks/nunjucks-tests.ts index 2bf197989a..858ba10066 100644 --- a/types/nunjucks/nunjucks-tests.ts +++ b/types/nunjucks/nunjucks-tests.ts @@ -35,12 +35,22 @@ nunjucks.configure('views', { }); rendered = env.renderString(src, ctx); -env.addExtension("SpawnGlitter", { - tags: ["glitter", "star wars", "Age of Empires"], - parse(parser, nodes, lexer) { - return "The parser api is complicated"; - } -}); +let extension: nunjucks.Extension = { + tags: ["glitter", "star wars", "Age of Empires"], + parse(parser, nodes, lexer) { + return "The parser api is complicated"; + } +}; +env = env.addExtension("SpawnGlitter", extension); +const hasExtension: boolean = env.hasExtension('SpawnGlitter'); +extension = env.getExtension('SpawnGlitter'); +env.removeExtension('SpawnGlitter'); + +env = env.addGlobal('key', 'value'); +const value = env.getGlobal('key'); + +env = env.addFilter('testFilter', arg => arg, false); +const testFilter: ((arg: any) => any) = env.getFilter('testFilter'); nunjucks.installJinjaCompat();