mirror of https://github.com/actions/toolkit
Sarpik/get input list support (#829)
* feat(core): Create `getInputList` utility Signed-off-by: Kipras Melnikovas <kipras@kipras.org> * chore(core): Document usage of '\n' instead of [] @ `getInputList` Signed-off-by: Kipras Melnikovas <kipras@kipras.org> * test(core): Create a very simple test for `getInputList` Signed-off-by: Kipras Melnikovas <kipras@kipras.org> * run linter * update commands/readme Co-authored-by: Kipras Melnikovas <kipras@kipras.org>pull/834/head
parent
dc4b4dab1d
commit
bb2f39337d
|
@ -23,6 +23,7 @@ Outputs can be set with `setOutput` which makes them available to be mapped into
|
||||||
```js
|
```js
|
||||||
const myInput = core.getInput('inputName', { required: true });
|
const myInput = core.getInput('inputName', { required: true });
|
||||||
const myBooleanInput = core.getBooleanInput('booleanInputName', { required: true });
|
const myBooleanInput = core.getBooleanInput('booleanInputName', { required: true });
|
||||||
|
const myMultilineInput = core.getMultiline('multilineInputName', { required: true });
|
||||||
core.setOutput('outputKey', 'outputVal');
|
core.setOutput('outputKey', 'outputVal');
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,8 @@ const testEnvVars = {
|
||||||
INPUT_WRONG_BOOLEAN_INPUT: 'wrong',
|
INPUT_WRONG_BOOLEAN_INPUT: 'wrong',
|
||||||
INPUT_WITH_TRAILING_WHITESPACE: ' some val ',
|
INPUT_WITH_TRAILING_WHITESPACE: ' some val ',
|
||||||
|
|
||||||
|
INPUT_MY_INPUT_LIST: 'val1\nval2\nval3',
|
||||||
|
|
||||||
// Save inputs
|
// Save inputs
|
||||||
STATE_TEST_1: 'state_val',
|
STATE_TEST_1: 'state_val',
|
||||||
|
|
||||||
|
@ -166,6 +168,14 @@ describe('@actions/core', () => {
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('getMultilineInput works', () => {
|
||||||
|
expect(core.getMultilineInput('my input list')).toEqual([
|
||||||
|
'val1',
|
||||||
|
'val2',
|
||||||
|
'val3'
|
||||||
|
])
|
||||||
|
})
|
||||||
|
|
||||||
it('getInput trims whitespace by default', () => {
|
it('getInput trims whitespace by default', () => {
|
||||||
expect(core.getInput('with trailing whitespace')).toBe('some val')
|
expect(core.getInput('with trailing whitespace')).toBe('some val')
|
||||||
})
|
})
|
||||||
|
|
|
@ -100,6 +100,25 @@ export function getInput(name: string, options?: InputOptions): string {
|
||||||
return val.trim()
|
return val.trim()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the values of an multiline input. Each value is also trimmed.
|
||||||
|
*
|
||||||
|
* @param name name of the input to get
|
||||||
|
* @param options optional. See InputOptions.
|
||||||
|
* @returns string[]
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
export function getMultilineInput(
|
||||||
|
name: string,
|
||||||
|
options?: InputOptions
|
||||||
|
): string[] {
|
||||||
|
const inputs: string[] = getInput(name, options)
|
||||||
|
.split('\n')
|
||||||
|
.filter(x => x !== '')
|
||||||
|
|
||||||
|
return inputs
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the input value of the boolean type in the YAML 1.2 "core schema" specification.
|
* Gets the input value of the boolean type in the YAML 1.2 "core schema" specification.
|
||||||
* Support boolean input list: `true | True | TRUE | false | False | FALSE` .
|
* Support boolean input list: `true | True | TRUE | false | False | FALSE` .
|
||||||
|
|
Loading…
Reference in New Issue