util: comment opt for getInputList

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
CrazyMax 2023-06-09 14:11:57 +02:00
parent 6fc5565c73
commit 9450a454a7
No known key found for this signature in database
GPG Key ID: 3248E46B6BB8C7F7
2 changed files with 14 additions and 1 deletions

View File

@ -73,6 +73,18 @@ describe('getInputList', () => {
expect(res).toEqual(['user/app:cache', 'type=local,src=path/to/dir']); expect(res).toEqual(['user/app:cache', 'type=local,src=path/to/dir']);
}); });
it('multiline and ignoring comment correctly', async () => {
setInput('labels', 'foo=bar\nbar=qux#baz');
const res = Util.getInputList('labels');
expect(res).toEqual(['foo=bar', 'bar=qux#baz']);
});
it('multiline with comment', async () => {
setInput('labels', 'foo=bar\nbar=qux#baz');
const res = Util.getInputList('labels', {comment: '#'});
expect(res).toEqual(['foo=bar', 'bar=qux']);
});
it('different new lines and ignoring comma correctly', async () => { it('different new lines and ignoring comma correctly', async () => {
setInput('cache-from', 'user/app:cache\r\ntype=local,src=path/to/dir'); setInput('cache-from', 'user/app:cache\r\ntype=local,src=path/to/dir');
const res = Util.getInputList('cache-from', {ignoreComma: true}); const res = Util.getInputList('cache-from', {ignoreComma: true});

View File

@ -21,6 +21,7 @@ import {parse} from 'csv-parse/sync';
export interface InputListOpts { export interface InputListOpts {
ignoreComma?: boolean; ignoreComma?: boolean;
comment?: string;
quote?: string | boolean | Buffer | null; quote?: string | boolean | Buffer | null;
} }
@ -36,7 +37,7 @@ export class Util {
const records = parse(items, { const records = parse(items, {
columns: false, columns: false,
relaxQuotes: true, relaxQuotes: true,
comment: '#', comment: opts?.comment,
relaxColumnCount: true, relaxColumnCount: true,
skipEmptyLines: true, skipEmptyLines: true,
quote: opts?.quote quote: opts?.quote