Skip to content

Commit 43e0469

Browse files
committed
fix(util-endpoints): escape tilde when evaluating template
1 parent 1209cb1 commit 43e0469

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

packages/util-endpoints/src/utils/evaluateTemplate.spec.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ describe(evaluateTemplate.name, () => {
1313
jest.clearAllMocks();
1414
});
1515

16+
it("should escape tilde while processing expression", () => {
17+
const template = "foo `bar` baz";
18+
expect(evaluateTemplate(template, mockOptions)).toBe(template);
19+
expect(getAttr).not.toHaveBeenCalled();
20+
});
21+
1622
describe("should replace `{parameterName}` with value", () => {
1723
const parameterName = "bar";
1824
const template = "foo {parameterName} baz";

packages/util-endpoints/src/utils/evaluateTemplate.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export const evaluateTemplate = (template: string, options: EvaluateOptions) =>
3232

3333
const templateContextNames = Object.keys(templateContext);
3434
const templateContextValues = Object.values(templateContext);
35+
const templateWithTildeEscaped = templateWithAttr.replace(/\`/g, "\\`");
3536

36-
return new Function(...templateContextNames, `return \`${templateWithAttr}\``)(...templateContextValues);
37+
return new Function(...templateContextNames, `return \`${templateWithTildeEscaped}\``)(...templateContextValues);
3738
};

0 commit comments

Comments
 (0)