mirror of https://github.com/actions/toolkit
feat: add core.getStringAsArray to parse array-like inputs (separated by either commas or new lines)
parent
adb9c4a7f4
commit
f8ead03bf1
|
@ -24,6 +24,7 @@ Outputs can be set with `setOutput` which makes them available to be mapped into
|
||||||
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.getMultilineInput('multilineInputName', { required: true });
|
const myMultilineInput = core.getMultilineInput('multilineInputName', { required: true });
|
||||||
|
const myArrayInput = core.getStringAsArray('stringAsArray', { required: true });
|
||||||
core.setOutput('outputKey', 'outputVal');
|
core.setOutput('outputKey', 'outputVal');
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -294,6 +294,19 @@ describe('@actions/core', () => {
|
||||||
).toEqual([' val1 ', ' val2 ', ' '])
|
).toEqual([' val1 ', ' val2 ', ' '])
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('getStringAsArray; separated by either comma or new line', () => {
|
||||||
|
expect(
|
||||||
|
core.getStringAsArray(`
|
||||||
|
line 1,
|
||||||
|
line 2,
|
||||||
|
|
||||||
|
comma 1, comma 2,,
|
||||||
|
`, {
|
||||||
|
trimWhitespace: false
|
||||||
|
})
|
||||||
|
).toEqual(['line 1', 'line 2', 'comma 1', 'comma 2'])
|
||||||
|
})
|
||||||
|
|
||||||
it('legacy setOutput produces the correct command', () => {
|
it('legacy setOutput produces the correct command', () => {
|
||||||
core.setOutput('some output', 'some value')
|
core.setOutput('some output', 'some value')
|
||||||
assertWriteCalls([
|
assertWriteCalls([
|
||||||
|
|
|
@ -160,6 +160,25 @@ export function getMultilineInput(
|
||||||
return inputs.map(input => input.trim())
|
return inputs.map(input => input.trim())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the values of an array-like input (separated by comma or new lines). Each value is also trimmed.
|
||||||
|
*
|
||||||
|
* @param name name of the input to get
|
||||||
|
* @param options optional. See InputOptions.
|
||||||
|
* @returns string[]
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
export function getStringAsArray(
|
||||||
|
name: string,
|
||||||
|
options?: InputOptions
|
||||||
|
): string[] {
|
||||||
|
const inputs: string[] = getInput(name, options)
|
||||||
|
.split(/[\n,]+/)
|
||||||
|
.map(s => s.trim())
|
||||||
|
.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