UNPKG

1.63 kBPlain TextView Raw
1import { resolve as resolvePath, dirname } from 'path';
2import createFolder from 'vamtiger-create-directory';
3import createFile from 'vamtiger-create-file';
4import { ICreateWebComponentHtml } from './types';
5import getHtml from './get-web-component-test-html';
6import browserTestSnippet from './snippet/webcomponent-test-browser';
7import loadScriptTestSnippet from './snippet/webcomponent-test-load-script';
8import nodeScriptTestSnippet from './snippet/webcomponent-test-node';
9import generateTestSnippet from './snippet/webcomponent-test-generate';
10
11const { cwd } = process;
12const folder = resolvePath(
13 cwd(),
14 'source',
15 'test',
16 'html'
17);
18const testFolder = dirname(folder);
19const htmlPath = resolvePath(
20 folder,
21 'test.html'
22);
23const cssPath = resolvePath(
24 folder,
25 'test.css'
26);
27const browserTest = resolvePath(
28 testFolder,
29 'browser.ts'
30);
31const loadScriptTest = resolvePath(
32 testFolder,
33 'load-script.ts'
34);
35const nodeScriptTest = resolvePath(
36 testFolder,
37 'node.ts'
38);
39const generateScriptTest = resolvePath(
40 testFolder,
41 'generate.ts'
42);
43
44export default async function ({ packagePath }: ICreateWebComponentHtml) {
45 const { name } = require(packagePath);
46 const html = getHtml({ name });
47
48 await createFolder(folder);
49
50 await Promise.all([
51 createFile(htmlPath, html),
52 createFile(cssPath, ''),
53 createFile(browserTest, browserTestSnippet),
54 createFile(loadScriptTest, loadScriptTestSnippet({ name })),
55 createFile(nodeScriptTest, nodeScriptTestSnippet),
56 createFile(generateScriptTest, generateTestSnippet)
57 ]);
58}
\No newline at end of file