-
-
Notifications
You must be signed in to change notification settings - Fork 75
/
preview.ts
34 lines (31 loc) · 817 Bytes
/
preview.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
const fs = require('fs');
export function preview(element: Element): void {
if (!fs.existsSync('./node_modules/.cache/jest-preview-dom')) {
fs.mkdirSync('./node_modules/.cache/jest-preview-dom', {
recursive: true,
});
}
// If user doesn't use styled-components, this try-catch just be silent
try {
import('./styled-components').then(({ getStyle }) => {
fs.writeFileSync(
'./node_modules/.cache/jest-preview-dom/jp-styled-components.css',
getStyle(),
{
encoding: 'utf-8',
flag: 'w',
},
);
});
} catch (error) {
// `styled-components` is not in used
}
fs.writeFileSync(
'./node_modules/.cache/jest-preview-dom/index.html',
element.outerHTML,
{
encoding: 'utf-8',
flag: 'w',
},
);
}