From 0440af214738a611b51c15abdd84254aca200a85 Mon Sep 17 00:00:00 2001 From: Alexander Schramm Date: Mon, 7 Oct 2019 23:09:08 +0200 Subject: [PATCH 1/3] added missing type fields in typings and tests for them --- types/index.d.ts | 21 ++++++++++-- types/test.ts | 84 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 102 insertions(+), 3 deletions(-) diff --git a/types/index.d.ts b/types/index.d.ts index a1b1693e9..6fdaf0f9c 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -270,6 +270,7 @@ declare namespace hbs { interface Statement extends Node {} interface MustacheStatement extends Statement { + type: 'MustacheStatement'; path: PathExpression | Literal; params: Expression[]; hash: Hash; @@ -280,6 +281,7 @@ declare namespace hbs { interface Decorator extends MustacheStatement { } interface BlockStatement extends Statement { + type: 'BlockStatement'; path: PathExpression; params: Expression[]; hash: Hash; @@ -293,6 +295,7 @@ declare namespace hbs { interface DecoratorBlock extends BlockStatement { } interface PartialStatement extends Statement { + type: 'PartialStatement'; name: PathExpression | SubExpression; params: Expression[]; hash: Hash; @@ -301,6 +304,7 @@ declare namespace hbs { } interface PartialBlockStatement extends Statement { + type: 'PartialBlockStatement'; name: PathExpression | SubExpression; params: Expression[]; hash: Hash; @@ -310,11 +314,13 @@ declare namespace hbs { } interface ContentStatement extends Statement { + type: 'ContentStatement'; value: string; original: StripFlags; } interface CommentStatement extends Statement { + type: 'CommentStatement'; value: string; strip: StripFlags; } @@ -322,12 +328,14 @@ declare namespace hbs { interface Expression extends Node {} interface SubExpression extends Expression { + type: 'SubExpression'; path: PathExpression; params: Expression[]; hash: Hash; } interface PathExpression extends Expression { + type: 'PathExpression'; data: boolean; depth: number; parts: string[]; @@ -336,29 +344,38 @@ declare namespace hbs { interface Literal extends Expression {} interface StringLiteral extends Literal { + type: 'StringLiteral'; value: string; original: string; } interface BooleanLiteral extends Literal { + type: 'BooleanLiteral'; value: boolean; original: boolean; } interface NumberLiteral extends Literal { + type: 'NumberLiteral'; value: number; original: number; } - interface UndefinedLiteral extends Literal {} + interface UndefinedLiteral extends Literal { + type: 'UndefinedLiteral'; + } - interface NullLiteral extends Literal {} + interface NullLiteral extends Literal { + type: 'NullLiteral'; + } interface Hash extends Node { + type: 'Hash'; pairs: HashPair[]; } interface HashPair extends Node { + type: 'HashPair'; key: string; value: Expression; } diff --git a/types/test.ts b/types/test.ts index 72d6ff70a..ff435916e 100644 --- a/types/test.ts +++ b/types/test.ts @@ -110,4 +110,86 @@ Handlebars.compile('test', { Handlebars.compile('test')({},{allowCallsToHelperMissing: true}); -Handlebars.compile('test')({},{}); \ No newline at end of file +Handlebars.compile('test')({},{}); + + +const allthings = {} as hbs.AST.MustacheStatement | + hbs.AST.BlockStatement | + hbs.AST.PartialStatement | + hbs.AST.PartialBlockStatement | + hbs.AST.ContentStatement | + hbs.AST.CommentStatement | + hbs.AST.SubExpression | + hbs.AST.PathExpression | + hbs.AST.StringLiteral | + hbs.AST.BooleanLiteral | + hbs.AST.NumberLiteral | + hbs.AST.UndefinedLiteral | + hbs.AST.NullLiteral | + hbs.AST.Hash | + hbs.AST.HashPair; + +switch(allthings.type) { + case "MustacheStatement": + let mustacheStatement: hbs.AST.MustacheStatement; + mustacheStatement = allthings; + break; + case "BlockStatement": + let blockStatement: hbs.AST.BlockStatement; + blockStatement = allthings; + break; + case "PartialStatement": + let partialStatement: hbs.AST.PartialStatement; + partialStatement = allthings; + break; + case "PartialBlockStatement": + let partialBlockStatement: hbs.AST.PartialBlockStatement; + partialBlockStatement = allthings; + break; + case "ContentStatement": + let ContentStatement: hbs.AST.ContentStatement; + ContentStatement = allthings; + break; + case "CommentStatement": + let CommentStatement: hbs.AST.CommentStatement; + CommentStatement = allthings; + break; + case "SubExpression": + let SubExpression: hbs.AST.SubExpression; + SubExpression = allthings; + break; + case "PathExpression": + let PathExpression: hbs.AST.PathExpression; + PathExpression = allthings; + break; + case "StringLiteral": + let StringLiteral: hbs.AST.StringLiteral; + StringLiteral = allthings; + break; + case "BooleanLiteral": + let BooleanLiteral: hbs.AST.BooleanLiteral; + BooleanLiteral = allthings; + break; + case "NumberLiteral": + let NumberLiteral: hbs.AST.NumberLiteral; + NumberLiteral = allthings; + break; + case "UndefinedLiteral": + let UndefinedLiteral: hbs.AST.UndefinedLiteral; + UndefinedLiteral = allthings; + break; + case "NullLiteral": + let NullLiteral: hbs.AST.NullLiteral; + NullLiteral = allthings; + break; + case "Hash": + let Hash: hbs.AST.Hash; + Hash = allthings; + break; + case "HashPair": + let HashPair: hbs.AST.HashPair; + HashPair = allthings; + break; + default: + break; +} \ No newline at end of file From ba570c42cf505073dfd59b95614e000962b77a89 Mon Sep 17 00:00:00 2001 From: Nils Knappmeier Date: Tue, 8 Oct 2019 22:04:57 +0200 Subject: [PATCH 2/3] Update release notes --- release-notes.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/release-notes.md b/release-notes.md index 713990a49..c20a86cbc 100644 --- a/release-notes.md +++ b/release-notes.md @@ -2,7 +2,17 @@ ## Development -[Commits](https://github.com/wycats/handlebars.js/compare/v4.4.2...master) +[Commits](https://github.com/wycats/handlebars.js/compare/v4.4.3...master) + +## v4.4.3 - October 8th, 2019 +Bugfixes + +Typings: +- add missing type fields to AST typings and add tests for them - 0440af2 + + + +[Commits](https://github.com/wycats/handlebars.js/compare/v4.4.2...v4.4.3) ## v4.4.2 - October 2nd, 2019 - chore: fix grunt-saucelabs dependency - b7eada0 From 2e53fba68f8c51f9aca97615944fdbdeba94ff62 Mon Sep 17 00:00:00 2001 From: Nils Knappmeier Date: Tue, 8 Oct 2019 22:05:35 +0200 Subject: [PATCH 3/3] v4.4.3 --- components/bower.json | 2 +- components/handlebars.js.nuspec | 2 +- components/package.json | 2 +- lib/handlebars/base.js | 2 +- package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/components/bower.json b/components/bower.json index cdc450704..ea6ba5fb8 100644 --- a/components/bower.json +++ b/components/bower.json @@ -1,6 +1,6 @@ { "name": "handlebars", - "version": "4.4.2", + "version": "4.4.3", "main": "handlebars.js", "license": "MIT", "dependencies": {} diff --git a/components/handlebars.js.nuspec b/components/handlebars.js.nuspec index 41400dbd8..1c69e0abb 100644 --- a/components/handlebars.js.nuspec +++ b/components/handlebars.js.nuspec @@ -2,7 +2,7 @@ handlebars.js - 4.4.2 + 4.4.3 handlebars.js Authors https://github.com/wycats/handlebars.js/blob/master/LICENSE https://github.com/wycats/handlebars.js/ diff --git a/components/package.json b/components/package.json index 23058be48..0b116e797 100644 --- a/components/package.json +++ b/components/package.json @@ -1,6 +1,6 @@ { "name": "handlebars", - "version": "4.4.2", + "version": "4.4.3", "license": "MIT", "jspm": { "main": "handlebars", diff --git a/lib/handlebars/base.js b/lib/handlebars/base.js index 14575756c..7d649de09 100644 --- a/lib/handlebars/base.js +++ b/lib/handlebars/base.js @@ -4,7 +4,7 @@ import {registerDefaultHelpers} from './helpers'; import {registerDefaultDecorators} from './decorators'; import logger from './logger'; -export const VERSION = '4.4.2'; +export const VERSION = '4.4.3'; export const COMPILER_REVISION = 8; export const LAST_COMPATIBLE_COMPILER_REVISION = 7; diff --git a/package.json b/package.json index 9d54050cb..54daa5c9a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "handlebars", "barename": "handlebars", - "version": "4.4.2", + "version": "4.4.3", "description": "Handlebars provides the power necessary to let you build semantic templates effectively with no frustration", "homepage": "http://www.handlebarsjs.com/", "keywords": [