Skip to content

Commit 62d9137

Browse files
committed
feat: fixed the issue where unmapped action input params show up as literal placeholders
1 parent bfd5622 commit 62d9137

2 files changed

Lines changed: 5 additions & 2 deletions

File tree

src/lib/run-dev.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,10 @@ function interpolate (valueString, props) {
545545
// replace ${VAR_NAME}, $VAR_NAME, or {VAR_NAME} with values from props, but not if they are enclosed in quotes
546546
// if key is not found on props, the value is returned as is (no replacement)
547547
const retStr = valueString.replace(/(?<!['"`])\$\{(\w+)\}(?!['"`])|(?<!['"`])\$(\w+)(?!['"`])|(?<!['"`])\{(\w+)\}(?!['"`])/g,
548-
(_, varName1, varName2, varName3) => props[varName1 || varName2 || varName3] || _)
548+
(_, varName1, varName2, varName3) => {
549+
const varName = varName1 || varName2 || varName3
550+
return Object.prototype.hasOwnProperty.call(props, varName) ? props[varName] : ''
551+
})
549552
return retStr
550553
}
551554

test/lib/run-dev.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ describe('createActionParametersFromRequest', () => {
348348
justDollar: 'value is world',
349349
mustache: 'value is world',
350350
literal: 'value is literally "${mustache}" and "{mustache}"',
351-
doesNotExist: 'value is ${doesNotExist}'
351+
doesNotExist: 'value is '
352352
})
353353
delete process.env.mustache
354354
})

0 commit comments

Comments
 (0)