Skip to content

Commit

Permalink
feat(core): handle comma seperated lists in getMultilineInput
Browse files Browse the repository at this point in the history
This commit makes sure that the core.getMultilineInput function can also
parse comma-separated lists (i.e. `[val1,val2,val3]` and `val1,val2,val3`).
  • Loading branch information
rickstaa committed Sep 25, 2022
1 parent ebe4ac3 commit 6224d95
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
21 changes: 21 additions & 0 deletions packages/core/__tests__/core.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ const testEnvVars = {
INPUT_WITH_TRAILING_WHITESPACE: ' some val ',

INPUT_MY_INPUT_LIST: 'val1\nval2\nval3',
INPUT_MY_INPUT_LIST_2: 'val1,val2,val3',
INPUT_MY_INPUT_LIST_3: '[val1,val2,val3]',
INPUT_MY_INPUT_LIST_4: '[val1, val2, val3]',

// Save inputs
STATE_TEST_1: 'state_val',
Expand Down Expand Up @@ -218,6 +221,24 @@ describe('@actions/core', () => {
'val2',
'val3'
])

expect(core.getMultilineInput('my input list 2')).toEqual([
'val1',
'val2',
'val3'
])

expect(core.getMultilineInput('my input list 3')).toEqual([
'val1',
'val2',
'val3'
])

expect(core.getMultilineInput('my input list 4')).toEqual([
'val1',
'val2',
'val3'
])
})

it('getInput trims whitespace by default', () => {
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/core.ts
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,8 @@ export function getMultilineInput(
options?: InputOptions
): string[] {
const inputs: string[] = getInput(name, options)
.split('\n')
.split(/[\[\]\n,]+/)
.map(s => s.trim())
.filter(x => x !== '')

return inputs
Expand Down

0 comments on commit 6224d95

Please sign in to comment.