diff --git a/index.js b/index.js index 22379a1..b01077b 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,8 @@ 'use strict'; const Translator = require('./lib/translator'); -const HandlebarsRenderer = require('@bigcommerce/stencil-paper-handlebars'); +const HandlebarsRendererOriginal = require('@bigcommerce/stencil-paper-handlebars'); +const HandlebarsRendererV2 = require('@bigcommerce/stencil-paper-handlebars-v2'); /** * processor is an optional function to apply during template assembly. The @@ -45,10 +46,13 @@ class Paper { * @param {Object} logger - a console-like logger object * @param {String} logLevel - log level used by handlebars logger (debug, info, warning, error) * @param {Object} params - Request-level parameters, part of stencil context + * @param {Boolean} useNewPaperLibrary - Flag for switching between Handlebars Renderer versions */ - constructor(siteSettings, themeSettings, assembler, rendererType, logger = console, logLevel = 'info', params = {}) { + constructor(siteSettings, themeSettings, assembler, rendererType, logger = console, logLevel = 'info', params = {}, useNewPaperLibrary = false) { this._assembler = assembler || {}; + const HandlebarsRenderer = useNewPaperLibrary ? HandlebarsRendererV2 : HandlebarsRendererOriginal; + // Build renderer based on type switch(rendererType) { case 'handlebars-v4': diff --git a/package.json b/package.json index 7b5bf66..ca6dc1c 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "homepage": "https://github.com/bigcommerce/paper", "dependencies": { "@bigcommerce/stencil-paper-handlebars": "6.2.4", + "@bigcommerce/stencil-paper-handlebars-v2": "git+ssh://git@github.com/bigcommerce/paper-handlebars.git#MERC-9364", "accept-language-parser": "~1.4.1", "messageformat": "~0.3.1" },