From 95abd42c953d42f5b35dcdde1f03528f825fa517 Mon Sep 17 00:00:00 2001 From: Futago-za Ryuu Date: Fri, 14 Sep 2018 02:42:46 +0100 Subject: [PATCH] Ensure VERSION is consistent The PEG.js version is exported and also written into the generated parser. In both these instances the version is a separate string, which means every time the version is bumped, it has to be changed in 3 places. This commit makes it slightly less of a maintenance burden. --- packages/pegjs/lib/compiler/passes/generate-js.js | 3 ++- packages/pegjs/lib/parser.js | 2 +- packages/pegjs/lib/peg.js | 3 ++- packages/pegjs/lib/version.js | 8 ++++++++ packages/pegjs/typings/modules.d.ts | 6 ++++++ 5 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 packages/pegjs/lib/version.js diff --git a/packages/pegjs/lib/compiler/passes/generate-js.js b/packages/pegjs/lib/compiler/passes/generate-js.js index be5efd1..e84f6e3 100644 --- a/packages/pegjs/lib/compiler/passes/generate-js.js +++ b/packages/pegjs/lib/compiler/passes/generate-js.js @@ -3,6 +3,7 @@ "use strict"; const util = require( "../../util" ); +const VERSION = require( "../../version" ); // Generates parser JavaScript code. function generateJS( ast, session, options ) { @@ -1593,7 +1594,7 @@ function generateJS( ast, session, options ) { function generateHeaderComment() { - let comment = "// Generated by PEG.js v0.11.0-dev, https://pegjs.org/"; + let comment = `// Generated by PEG.js ${ VERSION }, https://pegjs.org/`; const header = options.header; if ( typeof header === "string" ) { diff --git a/packages/pegjs/lib/parser.js b/packages/pegjs/lib/parser.js index e133f6a..55f6ad8 100644 --- a/packages/pegjs/lib/parser.js +++ b/packages/pegjs/lib/parser.js @@ -1,4 +1,4 @@ -// Generated by PEG.js v0.11.0-dev, https://pegjs.org/ +// Generated by PEG.js 0.11.0-dev, https://pegjs.org/ /* eslint-disable */ diff --git a/packages/pegjs/lib/peg.js b/packages/pegjs/lib/peg.js index 027b424..53bf8ba 100644 --- a/packages/pegjs/lib/peg.js +++ b/packages/pegjs/lib/peg.js @@ -5,10 +5,11 @@ const ast = require( "./ast" ); const compiler = require( "./compiler" ); const parser = require( "./parser" ); const util = require( "./util" ); +const VERSION = require( "./version" ); const peg = { // PEG.js version (uses semantic versioning). - VERSION: "0.11.0-dev", + VERSION: VERSION, GrammarError: GrammarError, ast: ast, diff --git a/packages/pegjs/lib/version.js b/packages/pegjs/lib/version.js new file mode 100644 index 0000000..dd60b25 --- /dev/null +++ b/packages/pegjs/lib/version.js @@ -0,0 +1,8 @@ +"use strict"; + +/** + * PEG.js version (uses semantic versioning). + */ +const VERSION = "0.11.0-dev"; + +module.exports = VERSION; diff --git a/packages/pegjs/typings/modules.d.ts b/packages/pegjs/typings/modules.d.ts index 9204fce..0ed3eaa 100644 --- a/packages/pegjs/typings/modules.d.ts +++ b/packages/pegjs/typings/modules.d.ts @@ -6,6 +6,12 @@ declare module "pegjs" { } +declare module "pegjs/lib/version" { + + export default peg.VERSION; + +} + declare module "pegjs/lib/grammar-error" { export default peg.GrammarError;