UNPKG

3.49 kBPlain TextView Raw
1import { resolve as resolvePath, basename } from 'path';
2import createDirectory from 'vamtiger-create-directory';
3import createFile from 'vamtiger-create-file';
4import copyFile from 'vamtiger-copy-file';
5import Args from 'vamtiger-argv/build/main';
6import {
7 CommandlineArgument,
8 ShortCommandlineArgument
9} from './types';
10import initializeRepository from './initialize-repository';
11import initializePackage from './initialize-package';
12import updatePackage from './update-package';
13import installDependecies from './install-dependecies';
14import createBrowserTest from './create-browser-test';
15import createWebComponentHtml from './create-web-component-html';
16import createWebComponentCss from './create-web-component-css';
17import createWebComponentElement from './create-web-component-element';
18import createWebComponentRoot from './create-web-component-root';
19import createJsonLdScript from './create-json-ld-script';
20import createJsonLd from './create-json-ld';
21import gitIgnoreSnippet from './snippet/gitignore';
22import createJsonLdTypes from './create-json-ld-types';
23import createJsonLdLoadScript from './create-json-ld-load-script';
24import createJsonLdJson from './create-json-ls-json';
25
26const args = new Args();
27const webComponent = args.has(CommandlineArgument.webComponent)
28 || args.has(ShortCommandlineArgument.webComponent);
29const jsonLd = args.has(CommandlineArgument.jsonLd)
30 || args.has(ShortCommandlineArgument.jsonLd);
31
32export default async () => {
33 const workingDirectory = process.cwd();
34 const sourceBranch = 'source';
35 const sourceFolder = resolvePath(
36 workingDirectory,
37 sourceBranch
38 );
39 const testFolder = resolvePath(
40 sourceFolder,
41 'test'
42 );
43 const main = resolvePath(
44 sourceFolder,
45 'index.ts'
46 );
47 const projectPackage = resolvePath(
48 workingDirectory,
49 'package.json'
50 );
51 const tsconfigSource = resolvePath(
52 __dirname,
53 '..',
54 'tsconfig.json'
55 );
56 const gitIgnore = resolvePath(
57 workingDirectory,
58 '.gitignore'
59 );
60 const tsconfigDestination = resolvePath(
61 workingDirectory,
62 basename(tsconfigSource)
63 );
64 const tsconfig = {
65 source: tsconfigSource,
66 destination: tsconfigDestination
67 };
68
69 await createDirectory(sourceFolder);
70
71 await initializePackage();
72
73 await updatePackage({ projectPackage });
74
75 await Promise.all([
76 initializeRepository({ workingDirectory }),
77 createDirectory(testFolder),
78 () => !webComponent && createFile(main, ''),
79 installDependecies({ workingDirectory }),
80 copyFile(tsconfig),
81 createFile(gitIgnore, gitIgnoreSnippet)
82 ]);
83
84 if (webComponent) {
85 await Promise.all([
86 createBrowserTest({ packagePath: projectPackage }),
87 createWebComponentHtml(),
88 createWebComponentCss(),
89 createWebComponentElement({ packagePath: projectPackage }),
90 createWebComponentRoot({ packagePath: projectPackage })
91 ]);
92 } else if (jsonLd) {
93 await Promise.all([
94 createBrowserTest({ packagePath: projectPackage }),
95 createJsonLdScript({ packagePath: projectPackage }),
96 createJsonLd(),
97 createJsonLdTypes({ packagePath: projectPackage }),
98 createJsonLdLoadScript({ packagePath: projectPackage }),
99 createJsonLdJson()
100 ]);
101 }
102
103 return true;
104}
\No newline at end of file