1 | import { resolve as resolvePath, basename } from 'path';
|
2 | import createDirectory from 'vamtiger-create-directory';
|
3 | import createFile from 'vamtiger-create-file';
|
4 | import copyFile from 'vamtiger-copy-file';
|
5 | import Args from 'vamtiger-argv/build/main';
|
6 | import {
|
7 | CommandlineArgument,
|
8 | ShortCommandlineArgument
|
9 | } from './types';
|
10 | import initializeRepository from './initialize-repository';
|
11 | import initializePackage from './initialize-package';
|
12 | import updatePackage from './update-package';
|
13 | import installDependecies from './install-dependecies';
|
14 | import createBrowserTest from './create-browser-test';
|
15 | import createWebComponentHtml from './create-web-component-html';
|
16 | import createWebComponentCss from './create-web-component-css';
|
17 | import createWebComponentElement from './create-web-component-element';
|
18 | import createWebComponentRoot from './create-web-component-root';
|
19 | import createJsonLdScript from './create-json-ld-script';
|
20 | import createJsonLd from './create-json-ld';
|
21 | import gitIgnoreSnippet from './snippet/gitignore';
|
22 | import createJsonLdTypes from './create-json-ld-types';
|
23 | import createJsonLdLoadScript from './create-json-ld-load-script';
|
24 | import createJsonLdJson from './create-json-ls-json';
|
25 |
|
26 | const args = new Args();
|
27 | const webComponent = args.has(CommandlineArgument.webComponent)
|
28 | || args.has(ShortCommandlineArgument.webComponent);
|
29 | const jsonLd = args.has(CommandlineArgument.jsonLd)
|
30 | || args.has(ShortCommandlineArgument.jsonLd);
|
31 |
|
32 | export 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 |