Skip to content

Commit 019c6c4

Browse files
committed
fix(replaceParameter): Support unescaped replacement
1 parent c50484d commit 019c6c4

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

core/lib/replaceParameter.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@ const logger = require('./log');
55
module.exports = function (template, prop, data) {
66
let t = template;
77

8+
const valueRE = new RegExp(`{{{?\\s*[${prop}]+\\s*}?}}`);
9+
810
if (typeof data === 'string') {
9-
return t.replace(`{{${prop}}}`, data);
11+
return t.replace(valueRE, data);
1012
}
1113

1214
if (typeof data === 'boolean') {
13-
const startRE = new RegExp(`{{\\s?#[${prop}]+\\s?}}`);
14-
const endRE = new RegExp(`{{\\s?/[${prop}]+\\s?}}`);
15+
const startRE = new RegExp(`{{\\s*#[${prop}]+\\s*}}`);
16+
const endRE = new RegExp(`{{\\s*/[${prop}]+\\s*}}`);
1517

1618
const bIdx = t.search(startRE);
1719
const eIdxStart = t.search(endRE);

test/replaceParameter_tests.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ tap.test('replaces simple boolean false value', function (test) {
2424
test.end();
2525
});
2626

27+
tap.test('replaces raw value', function (test) {
28+
const result = replaceParameter('{{{key}}}', 'key', 'value');
29+
test.equals(result, 'value');
30+
test.end();
31+
});
32+
2733
tap.test('replaces boolean true section', function (test) {
2834
const result = replaceParameter('1{{#key}}value{{/key}}2', 'key', true);
2935
test.equals(result, '1value2');

0 commit comments

Comments
 (0)