🚀 Allow to pass option as Json without ?
This commit is contained in:
@@ -1,5 +1,81 @@
|
|||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`should parse /out.svg {"color_snake":"yellow"} 1`] = `
|
||||||
|
Object {
|
||||||
|
"animationOptions": Object {
|
||||||
|
"frameDuration": 100,
|
||||||
|
"step": 1,
|
||||||
|
},
|
||||||
|
"drawOptions": Object {
|
||||||
|
"colorDotBorder": "#1b1f230a",
|
||||||
|
"colorDots": Array [
|
||||||
|
"#ebedf0",
|
||||||
|
"#9be9a8",
|
||||||
|
"#40c463",
|
||||||
|
"#30a14e",
|
||||||
|
"#216e39",
|
||||||
|
],
|
||||||
|
"colorEmpty": "#ebedf0",
|
||||||
|
"colorSnake": "yellow",
|
||||||
|
"dark": Object {
|
||||||
|
"colorDotBorder": "#1b1f230a",
|
||||||
|
"colorDots": Array [
|
||||||
|
"#161b22",
|
||||||
|
"#01311f",
|
||||||
|
"#034525",
|
||||||
|
"#0f6d31",
|
||||||
|
"#00c647",
|
||||||
|
],
|
||||||
|
"colorEmpty": "#161b22",
|
||||||
|
"colorSnake": "purple",
|
||||||
|
},
|
||||||
|
"sizeCell": 16,
|
||||||
|
"sizeDot": 12,
|
||||||
|
"sizeDotBorderRadius": 2,
|
||||||
|
},
|
||||||
|
"filename": "/out.svg",
|
||||||
|
"format": "svg",
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`should parse /out.svg?.gif.svg?color_snake=orange 1`] = `
|
||||||
|
Object {
|
||||||
|
"animationOptions": Object {
|
||||||
|
"frameDuration": 100,
|
||||||
|
"step": 1,
|
||||||
|
},
|
||||||
|
"drawOptions": Object {
|
||||||
|
"colorDotBorder": "#1b1f230a",
|
||||||
|
"colorDots": Array [
|
||||||
|
"#ebedf0",
|
||||||
|
"#9be9a8",
|
||||||
|
"#40c463",
|
||||||
|
"#30a14e",
|
||||||
|
"#216e39",
|
||||||
|
],
|
||||||
|
"colorEmpty": "#ebedf0",
|
||||||
|
"colorSnake": "orange",
|
||||||
|
"dark": Object {
|
||||||
|
"colorDotBorder": "#1b1f230a",
|
||||||
|
"colorDots": Array [
|
||||||
|
"#161b22",
|
||||||
|
"#01311f",
|
||||||
|
"#034525",
|
||||||
|
"#0f6d31",
|
||||||
|
"#00c647",
|
||||||
|
],
|
||||||
|
"colorEmpty": "#161b22",
|
||||||
|
"colorSnake": "purple",
|
||||||
|
},
|
||||||
|
"sizeCell": 16,
|
||||||
|
"sizeDot": 12,
|
||||||
|
"sizeDotBorderRadius": 2,
|
||||||
|
},
|
||||||
|
"filename": "/out.svg?.gif.svg",
|
||||||
|
"format": "svg",
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`should parse /out.svg?{"color_snake":"yellow","color_dots":["#000","#111","#222","#333","#444"]} 1`] = `
|
exports[`should parse /out.svg?{"color_snake":"yellow","color_dots":["#000","#111","#222","#333","#444"]} 1`] = `
|
||||||
Object {
|
Object {
|
||||||
"animationOptions": Object {
|
"animationOptions": Object {
|
||||||
|
|||||||
@@ -7,7 +7,11 @@ import { parseEntry } from "../outputsOptions";
|
|||||||
|
|
||||||
`/out.svg?{"color_snake":"yellow","color_dots":["#000","#111","#222","#333","#444"]}`,
|
`/out.svg?{"color_snake":"yellow","color_dots":["#000","#111","#222","#333","#444"]}`,
|
||||||
|
|
||||||
|
`/out.svg {"color_snake":"yellow"}`,
|
||||||
|
|
||||||
"/out.svg?color_snake=orange&color_dots=#000,#111,#222,#333,#444&dark_color_dots=#a00,#a11,#a22,#a33,#a44",
|
"/out.svg?color_snake=orange&color_dots=#000,#111,#222,#333,#444&dark_color_dots=#a00,#a11,#a22,#a33,#a44",
|
||||||
|
|
||||||
|
"/out.svg?.gif.svg?color_snake=orange",
|
||||||
].forEach((entry) =>
|
].forEach((entry) =>
|
||||||
it(`should parse ${entry}`, () => {
|
it(`should parse ${entry}`, () => {
|
||||||
expect(parseEntry(entry)).toMatchSnapshot();
|
expect(parseEntry(entry)).toMatchSnapshot();
|
||||||
|
|||||||
@@ -5,10 +5,13 @@ import { palettes } from "./palettes";
|
|||||||
export const parseOutputsOption = (lines: string[]) => lines.map(parseEntry);
|
export const parseOutputsOption = (lines: string[]) => lines.map(parseEntry);
|
||||||
|
|
||||||
export const parseEntry = (entry: string) => {
|
export const parseEntry = (entry: string) => {
|
||||||
const m = entry.trim().match(/^(.+\.(svg|gif))(\?(.*))?$/);
|
const m = entry.trim().match(/^(.+\.(svg|gif))(\?(.*)|\s*({.*}))?$/);
|
||||||
|
|
||||||
if (!m) return null;
|
if (!m) return null;
|
||||||
|
|
||||||
const [, filename, format, , query] = m;
|
const [, filename, format, _, q1, q2] = m;
|
||||||
|
|
||||||
|
const query = q1 ?? q2;
|
||||||
|
|
||||||
let sp = new URLSearchParams(query || "");
|
let sp = new URLSearchParams(query || "");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user