Skip to content

Commit 4397257

Browse files
committed
Refactor code
1 parent 777c804 commit 4397257

3 files changed

Lines changed: 42 additions & 49 deletions

File tree

bin/handler.js

Lines changed: 36 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -12,80 +12,70 @@ import { generateSVG, generateShape } from '../src/generate.js';
1212
export async function handleRender(source, options) {
1313
let { content, error } = await read(source);
1414
if (error) {
15-
console.error(error.message);
16-
process.exit(1);
17-
} else {
18-
let title = 'image';
19-
if (source) {
20-
let basename = path.basename(source);
21-
let extname = path.extname(basename);
22-
title = extname ? basename.split(extname)[0] : basename;
23-
}
24-
let output = await render(content, {
25-
title,
26-
output: options.output,
27-
scale: options.scale
28-
});
29-
if (output) {
30-
console.log(`Saved to ${output}.`);
31-
}
15+
return console.error(error.message);
16+
}
17+
let title = 'image';
18+
if (source) {
19+
let basename = path.basename(source);
20+
let extname = path.extname(basename);
21+
title = extname ? basename.split(extname)[0] : basename;
22+
}
23+
let output = await render(content, {
24+
title,
25+
output: options.output,
26+
scale: options.scale
27+
});
28+
if (output) {
29+
console.log(`Saved to ${output}.`);
3230
}
3331
}
3432

3533
export async function handleParse(source) {
3634
let { content, error } = await read(source);
3735
if (error) {
38-
console.error(error.message);
36+
return console.error(error.message);
37+
}
38+
try {
39+
console.log(JSON.stringify(parse(content), null, 2));
40+
} catch (e) {
41+
console.error(e.message);
3942
process.exit(1);
40-
} else {
41-
try {
42-
console.log(JSON.stringify(parse(content), null, 2));
43-
} catch (e) {
44-
console.error(e.message);
45-
process.exit(1);
46-
}
4743
}
4844
}
4945

5046
export async function handlePreview(source, options) {
5147
let { content, error } = await read(source);
5248
if (error) {
53-
console.error(error.message);
54-
process.exit(1);
49+
return console.error(error.message);
50+
}
51+
if (source === undefined) {
52+
options.fromStdin = true;
53+
preview(content, 'css-doodle', options);
5554
} else {
56-
if (source === undefined) {
57-
options.fromStdin = true;
58-
preview(content, 'css-doodle', options);
59-
} else {
60-
let title = path.basename(source);
61-
preview(source, title, options);
62-
}
55+
let title = path.basename(source);
56+
preview(source, title, options);
6357
}
6458
}
6559

6660
export async function handleGenerateSVG(source) {
6761
let { content, error } = await read(source);
6862
if (error) {
69-
console.error(error.message);
70-
process.exit(1);
63+
return console.error(error.message);
64+
}
65+
content = content.trim();
66+
if (/^svg\s*\{/i.test(content) || !content.length) {
67+
console.log(generateSVG(content));
7168
} else {
72-
content = content.trim();
73-
if (/^svg\s*\{/i.test(content) || !content.length) {
74-
console.log(generateSVG(content));
75-
} else {
76-
console.error('error: invalid SVG format');
77-
}
69+
console.error('error: invalid SVG format');
7870
}
7971
}
8072

8173
export async function handleGenerateShape(source) {
8274
let { content, error } = await read(source);
8375
if (error) {
84-
console.error(error.message);
85-
process.exit(1);
86-
} else {
87-
console.log(generateShape(content));
76+
return console.error(error.message);
8877
}
78+
console.log(generateShape(content));
8979
}
9080

9181
export async function handleSetConfig(field, value) {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@css-doodle/cli",
33
"version": "1.2.0",
4-
"description": "The css-doodle command line tool for previewing and generating images",
4+
"description": "A command-line tool for css-doodle to preview and generate images",
55
"bin": {
66
"css-doodle": "bin/index.js",
77
"cssd": "bin/index.js"

src/render.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ export async function render(code, options = {}) {
1616
const browser = await puppeteer.launch(settings);
1717

1818
const page = await browser.newPage();
19-
await page.setContent(buildHTML(code, getCssDoodleLib(), options), { waitUntil: 'networkidle0', timeout: 5000 });
19+
await page.setContent(buildHTML(code, getCssDoodleLib(), options), {
20+
waitUntil: 'networkidle0',
21+
timeout: 10 * 1000
22+
});
2023

2124
const data = await page.$eval(options.selector, el => {
2225
return {
@@ -42,7 +45,7 @@ function buildHTML(code, cssDoodleLib, options = {}) {
4245
<style>* { padding: 0; margin: 0 }</style>
4346
<script>${cssDoodleLib}</script>
4447
</head>
45-
<body data-selector="${options.selector ?? ''}">
48+
<body data-selector="${options.selector}">
4649
<css-doodle>${code}</css-doodle>
4750
</body>
4851
</html>`;

0 commit comments

Comments
 (0)