@apollion-dsi/scripts 0.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/.prettierignore +6 -0
  2. package/.prettierrc.js +1 -0
  3. package/CHANGELOG.md +8 -0
  4. package/README.MD +91 -0
  5. package/audit-ci.json +5 -0
  6. package/eslint.config.js +33 -0
  7. package/lib/bin.d.ts +2 -0
  8. package/lib/bin.js +34 -0
  9. package/lib/bin.js.map +1 -0
  10. package/lib/command/build.d.ts +3 -0
  11. package/lib/command/build.js +145 -0
  12. package/lib/command/build.js.map +1 -0
  13. package/lib/command/create/helper.d.ts +7 -0
  14. package/lib/command/create/helper.js +98 -0
  15. package/lib/command/create/helper.js.map +1 -0
  16. package/lib/command/create/index.d.ts +1 -0
  17. package/lib/command/create/index.js +149 -0
  18. package/lib/command/create/index.js.map +1 -0
  19. package/lib/command/dev.d.ts +3 -0
  20. package/lib/command/dev.js +85 -0
  21. package/lib/command/dev.js.map +1 -0
  22. package/lib/command/test.d.ts +1 -0
  23. package/lib/command/test.js +32 -0
  24. package/lib/command/test.js.map +1 -0
  25. package/lib/config/env.d.ts +15 -0
  26. package/lib/config/env.js +78 -0
  27. package/lib/config/env.js.map +1 -0
  28. package/lib/config/modules.d.ts +15 -0
  29. package/lib/config/modules.js +92 -0
  30. package/lib/config/modules.js.map +1 -0
  31. package/lib/config/paths.d.ts +22 -0
  32. package/lib/config/paths.js +61 -0
  33. package/lib/config/paths.js.map +1 -0
  34. package/lib/config/shared.d.ts +24 -0
  35. package/lib/config/shared.js +14 -0
  36. package/lib/config/shared.js.map +1 -0
  37. package/lib/config/webpack.config.d.ts +187 -0
  38. package/lib/config/webpack.config.js +300 -0
  39. package/lib/config/webpack.config.js.map +1 -0
  40. package/lib/config/webpackDevServer.config.d.ts +34 -0
  41. package/lib/config/webpackDevServer.config.js +67 -0
  42. package/lib/config/webpackDevServer.config.js.map +1 -0
  43. package/lib/index.d.ts +3 -0
  44. package/lib/index.js +10 -0
  45. package/lib/index.js.map +1 -0
  46. package/lib/utils/FileSizeReporter.d.ts +12 -0
  47. package/lib/utils/FileSizeReporter.js +151 -0
  48. package/lib/utils/FileSizeReporter.js.map +1 -0
  49. package/lib/utils/InlineChunkHtmlPlugin.d.ts +8 -0
  50. package/lib/utils/InlineChunkHtmlPlugin.js +54 -0
  51. package/lib/utils/InlineChunkHtmlPlugin.js.map +1 -0
  52. package/lib/utils/InterpolateHtmlPlugin.d.ts +7 -0
  53. package/lib/utils/InterpolateHtmlPlugin.js +21 -0
  54. package/lib/utils/InterpolateHtmlPlugin.js.map +1 -0
  55. package/lib/utils/ModuleNotFoundPlugin.d.ts +5 -0
  56. package/lib/utils/ModuleNotFoundPlugin.js +11 -0
  57. package/lib/utils/ModuleNotFoundPlugin.js.map +1 -0
  58. package/lib/utils/ModuleScopePlugin.d.ts +5 -0
  59. package/lib/utils/ModuleScopePlugin.js +11 -0
  60. package/lib/utils/ModuleScopePlugin.js.map +1 -0
  61. package/lib/utils/WebpackDevServerUtils.d.ts +22 -0
  62. package/lib/utils/WebpackDevServerUtils.js +154 -0
  63. package/lib/utils/WebpackDevServerUtils.js.map +1 -0
  64. package/lib/utils/checkRequiredFiles.d.ts +1 -0
  65. package/lib/utils/checkRequiredFiles.js +28 -0
  66. package/lib/utils/checkRequiredFiles.js.map +1 -0
  67. package/lib/utils/devServerMiddleware.d.ts +8 -0
  68. package/lib/utils/devServerMiddleware.js +19 -0
  69. package/lib/utils/devServerMiddleware.js.map +1 -0
  70. package/lib/utils/formatWebpackMessages.d.ts +5 -0
  71. package/lib/utils/formatWebpackMessages.js +32 -0
  72. package/lib/utils/formatWebpackMessages.js.map +1 -0
  73. package/lib/utils/getPublicUrlOrPath.d.ts +1 -0
  74. package/lib/utils/getPublicUrlOrPath.js +39 -0
  75. package/lib/utils/getPublicUrlOrPath.js.map +1 -0
  76. package/lib/utils/printBuildError.d.ts +1 -0
  77. package/lib/utils/printBuildError.js +14 -0
  78. package/lib/utils/printBuildError.js.map +1 -0
  79. package/lib/utils/printHostingInstructions.d.ts +1 -0
  80. package/lib/utils/printHostingInstructions.js +12 -0
  81. package/lib/utils/printHostingInstructions.js.map +1 -0
  82. package/package.json +81 -0
  83. package/scripts/validate.sh +16 -0
  84. package/src/bin.ts +41 -0
  85. package/src/command/build.ts +188 -0
  86. package/src/command/create/helper.ts +97 -0
  87. package/src/command/create/index.ts +200 -0
  88. package/src/command/dev.ts +95 -0
  89. package/src/command/test.ts +33 -0
  90. package/src/config/env.ts +82 -0
  91. package/src/config/modules.ts +115 -0
  92. package/src/config/paths.ts +88 -0
  93. package/src/config/shared.ts +27 -0
  94. package/src/config/webpack.config.js +308 -0
  95. package/src/config/webpackDevServer.config.ts +78 -0
  96. package/src/index.ts +3 -0
  97. package/src/utils/FileSizeReporter.ts +168 -0
  98. package/src/utils/InlineChunkHtmlPlugin.js +67 -0
  99. package/src/utils/InterpolateHtmlPlugin.js +27 -0
  100. package/src/utils/ModuleNotFoundPlugin.js +13 -0
  101. package/src/utils/ModuleScopePlugin.js +13 -0
  102. package/src/utils/WebpackDevServerUtils.ts +179 -0
  103. package/src/utils/checkRequiredFiles.ts +22 -0
  104. package/src/utils/devServerMiddleware.ts +20 -0
  105. package/src/utils/formatWebpackMessages.ts +30 -0
  106. package/src/utils/getPublicUrlOrPath.ts +39 -0
  107. package/src/utils/printBuildError.ts +8 -0
  108. package/src/utils/printHostingInstructions.ts +12 -0
  109. package/template/.editorconfig +43 -0
  110. package/template/.prettierignore +6 -0
  111. package/template/.prettierrc.js +1 -0
  112. package/template/audit-ci.json +5 -0
  113. package/template/commitlint.config.js +1 -0
  114. package/template/eslint.config.js +3 -0
  115. package/template/jest.config.js +4 -0
  116. package/template/public/index.html +20 -0
  117. package/template/src/App.test.tsx +10 -0
  118. package/template/src/App.tsx +35 -0
  119. package/template/src/index.tsx +10 -0
  120. package/template/tsconfig.json +25 -0
  121. package/tsconfig.json +18 -0
@@ -0,0 +1,6 @@
1
+ package.json
2
+ node_modules
3
+ build
4
+ lib
5
+ coverage
6
+ /.vscode
package/.prettierrc.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('@apollion-dsi/eslint-config/prettier.config');
package/CHANGELOG.md ADDED
@@ -0,0 +1,8 @@
1
+ # @apollion-dsi/scripts
2
+
3
+ ## 0.7.7
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [cfaee91]
8
+ - @apollion-dsi/eslint-config@0.6.0
package/README.MD ADDED
@@ -0,0 +1,91 @@
1
+ # Apollion Scripts
2
+
3
+ Interface de linha de comando, contendo o template para iniciar, desenvolver e fazer o build de uma aplicação com Apollion Design System.
4
+
5
+ ## Desenvolvimento
6
+
7
+ ### Criando um novo projeto
8
+
9
+ Você pode iniciar um novo projeto usando a nossa `CLI` com o comando a seguir:
10
+
11
+ ```bash
12
+ $ npx @captalys-platform/scripts create project-name
13
+ $ cd project-name
14
+ $ yarn start
15
+ # ou
16
+ $ npm start
17
+ ```
18
+
19
+ Você não precisa instalar ou configurar ferramentas como `webpack` e `babel`, ambos já vem configurados para que você possa focar no código. Além disso o template inclui `eslint`, `prettier`, `jest`, `commitLint` e `Typescript`. O template tem a seguinte estrutura:
20
+
21
+ ```
22
+ project-name
23
+ ├── node_modules
24
+ ├── package.json
25
+ ├── tsconfig.json
26
+ ├── jest.config.js
27
+ ├── commitlint.config.js
28
+ ├── .eslintrc.js
29
+ ├── .editorconfig.js
30
+ ├── .gitignore
31
+ ├── .prettierrc.js
32
+ ├── public
33
+ │ ├── index.html
34
+ └── src
35
+ ├── index.tsx
36
+ ├── App.tsx
37
+ ├── App.test.tsx
38
+ ```
39
+
40
+ ### Projetos existentes
41
+
42
+ 1. Para projetos existentes, você pode usar nossa `CLI` da seguinte forma (na raiz do projeto)
43
+
44
+ ```bash
45
+ $ npm install @captalys-platform/scripts --save-dev
46
+ # ou
47
+ $ yarn add @captalys-platform/scripts --dev
48
+ ```
49
+
50
+ 2. Você deve atualizar o campo `scripts` do `package.json`
51
+
52
+ ```json
53
+ {
54
+ "scripts": {
55
+ "dev": "scripts dev",
56
+ "build": "scripts build",
57
+ "test": "scripts test"
58
+ }
59
+ }
60
+ ```
61
+
62
+ 3. Para a aplicação funcionar é necessário utilizar a estrutura de pasta a seguir
63
+
64
+ ```
65
+ project-name
66
+ ├── package.json
67
+ ├── public
68
+ │ ├── index.html
69
+ └── src
70
+ ├── index.tsx
71
+ ```
72
+
73
+ ## Comandos
74
+
75
+ Estes são os comandos disponíveis no nosso template
76
+
77
+ - `yarn start` ou `npm start`
78
+
79
+ Roda o projeto em um servidor de desenvolvimento, com reload automático, em http://localhost:3000/.
80
+
81
+ - `yarn build` ou `npm build`
82
+
83
+ Cria o projeto para ser distribuído para produção, na pasta **build**.
84
+
85
+ - `yarn test` ou `npm test`
86
+
87
+ Roda os testes com `jest --watch` nos arquivos alterados a partir do ultimo commit.
88
+
89
+ ## Licença
90
+
91
+ © 2021 Captalys - Todos os direitos reservados.
package/audit-ci.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "moderate": true,
3
+ "package-manager": "yarn",
4
+ "report-type": "summary"
5
+ }
@@ -0,0 +1,33 @@
1
+ const { peerDependencies } = require('./package.json');
2
+ const sharedConfig = require('@apollion-dsi/eslint-config');
3
+
4
+ module.exports = [
5
+ ...sharedConfig,
6
+ {
7
+ files: ['**/*.ts', '**/*.tsx'],
8
+ ignores: ['node_modules/**', 'lib/**', 'src/template/**'],
9
+ rules: {
10
+ 'import/no-unresolved': ['error', { ignore: Object.keys(peerDependencies) }],
11
+ 'import/no-extraneous-dependencies': [
12
+ 'error',
13
+ { devDependencies: ['**/test.ts{,x}', 'src/__tests__/**'] },
14
+ ],
15
+ 'no-shadow': 'off',
16
+ 'import/first': 'off',
17
+ 'global-require': 'off',
18
+ 'consistent-return': 'off',
19
+ 'import/no-dynamic-require': 'off',
20
+ '@typescript-eslint/no-require-imports': 'off',
21
+ '@typescript-eslint/ban-ts-comment': 'off',
22
+ '@typescript-eslint/no-shadow': ['error'],
23
+ '@typescript-eslint/no-use-before-define': 'off',
24
+ 'import/extensions': 'off',
25
+ 'jest/no-restricted-matchers': 'off',
26
+ 'jest/no-try-expect': 'off',
27
+ 'require-await': 'off',
28
+ 'no-console': 'off',
29
+ 'require-atomic-updates': 'off',
30
+ 'jest/no-jest-import': 'off',
31
+ },
32
+ },
33
+ ];
package/lib/bin.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/lib/bin.js ADDED
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const cross_spawn_1 = __importDefault(require("cross-spawn"));
9
+ const update_notifier_1 = __importDefault(require("update-notifier"));
10
+ const create_1 = require("./command/create");
11
+ const notifier = (0, update_notifier_1.default)({
12
+ pkg: require('../package.json'),
13
+ updateCheckInterval: 1000 * 60 * 60, // 1hr
14
+ });
15
+ notifier.notify({
16
+ defer: false,
17
+ message: `Update available ${chalk_1.default.dim('{currentVersion}')} ${chalk_1.default.reset(' → ')} ${chalk_1.default.green('{latestVersion}')} \nRun ${chalk_1.default.cyan('yarn add {packageName}')} to update.`,
18
+ });
19
+ (async (cmd) => {
20
+ const [command, ...options] = cmd;
21
+ if (['build', 'dev', 'test'].includes(command)) {
22
+ const result = cross_spawn_1.default.sync(process.execPath, [require.resolve(`./command/${command}`), ...options], {
23
+ stdio: 'inherit',
24
+ });
25
+ return process.exit(result.status);
26
+ }
27
+ if (command === 'create') {
28
+ await (0, create_1.createTemplate)(options[0]);
29
+ return process.exit(0);
30
+ }
31
+ console.log(`${chalk_1.default.red('Commando não reconhecido:')} ${chalk_1.default.yellow(command)}`);
32
+ process.exit(1);
33
+ })(process.argv.slice(2));
34
+ //# sourceMappingURL=bin.js.map
package/lib/bin.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";;;;;;AAEA,kDAA0B;AAC1B,8DAAgC;AAChC,sEAA6C;AAE7C,6CAAkD;AAElD,MAAM,QAAQ,GAAG,IAAA,yBAAc,EAAC;IAC9B,GAAG,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAC/B,mBAAmB,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM;CAC5C,CAAC,CAAC;AAEH,QAAQ,CAAC,MAAM,CAAC;IACd,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,oBAAoB,eAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,eAAK,CAAC,KAAK,CAC7F,iBAAiB,CAClB,UAAU,eAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,aAAa;CAC7D,CAAC,CAAC;AAEH,CAAC,KAAK,EAAE,GAAa,EAAE,EAAE;IACvB,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC;IAElC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,qBAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,OAAO,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE;YACjG,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAElF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { AppPaths } from '../config/paths';
2
+ import { CustomConfigType } from '../config/shared';
3
+ export declare function createProductionBuild(paths: AppPaths, userConfig?: CustomConfigType): Promise<void>;
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createProductionBuild = createProductionBuild;
7
+ process.env.BABEL_ENV = 'production';
8
+ process.env.NODE_ENV = 'production';
9
+ // Makes the script crash on unhandled rejections instead of silently
10
+ // ignoring them. In the future, promise rejections that are not handled will
11
+ // terminate the Node.js process with a non-zero exit code.
12
+ process.on('unhandledRejection', (err) => {
13
+ throw err;
14
+ });
15
+ const path_1 = __importDefault(require("path"));
16
+ const chalk_1 = __importDefault(require("chalk"));
17
+ const deepmerge_1 = __importDefault(require("deepmerge"));
18
+ const fs_extra_1 = __importDefault(require("fs-extra"));
19
+ const webpack_1 = __importDefault(require("webpack"));
20
+ const env_1 = require("../config/env");
21
+ const paths_1 = __importDefault(require("../config/paths"));
22
+ const shared_1 = require("../config/shared");
23
+ const webpack_config_1 = __importDefault(require("../config/webpack.config"));
24
+ const checkRequiredFiles_1 = __importDefault(require("../utils/checkRequiredFiles"));
25
+ const FileSizeReporter_1 = require("../utils/FileSizeReporter");
26
+ const formatWebpackMessages_1 = __importDefault(require("../utils/formatWebpackMessages"));
27
+ const printBuildError_1 = __importDefault(require("../utils/printBuildError"));
28
+ const printHostingInstructions_1 = __importDefault(require("../utils/printHostingInstructions"));
29
+ // These sizes are pretty large. We'll warn for bundles exceeding them.
30
+ const WARN_AFTER_BUNDLE_GZIP_SIZE = 512 * 1024;
31
+ const WARN_AFTER_CHUNK_GZIP_SIZE = 1024 * 1024;
32
+ function copyPublicFolder(paths) {
33
+ fs_extra_1.default.copySync(paths.appPublic, paths.appBuild, {
34
+ dereference: true,
35
+ filter: (file) => file !== paths.appHtml,
36
+ });
37
+ }
38
+ // Generate configuration
39
+ // const config = configFactory('production', paths);
40
+ // Create the production build and print the deployment instructions.
41
+ function build(config, previousFileSizes) {
42
+ console.log('Creating an optimized production build...');
43
+ const compiler = (0, webpack_1.default)(config);
44
+ return new Promise((resolve, reject) => {
45
+ compiler.run((err, stats) => {
46
+ let messages;
47
+ if (err) {
48
+ if (!err.message) {
49
+ return reject(err);
50
+ }
51
+ const errMessage = err.message;
52
+ messages = (0, formatWebpackMessages_1.default)({
53
+ errors: [errMessage],
54
+ warnings: [],
55
+ });
56
+ }
57
+ else {
58
+ messages = (0, formatWebpackMessages_1.default)(stats?.toJson({ all: false, warnings: true, errors: true }));
59
+ }
60
+ if (messages.errors.length) {
61
+ // Only keep the first error. Others are often indicative
62
+ // of the same problem, but confuse the reader with noise.
63
+ if (messages.errors.length > 1) {
64
+ messages.errors.length = 1;
65
+ }
66
+ return reject(new Error(messages.errors.join('\n\n')));
67
+ }
68
+ if (process.env.CI &&
69
+ (typeof process.env.CI !== 'string' || process.env.CI.toLowerCase() !== 'false') &&
70
+ messages.warnings.length) {
71
+ console.log(chalk_1.default.yellow('\nTreating warnings as errors because process.env.CI = true.\n' +
72
+ 'Most CI servers set it automatically.\n'));
73
+ return reject(new Error(messages.warnings.join('\n\n')));
74
+ }
75
+ const resolveArgs = {
76
+ stats,
77
+ previousFileSizes,
78
+ warnings: messages.warnings,
79
+ };
80
+ return resolve(resolveArgs);
81
+ });
82
+ });
83
+ }
84
+ async function createProductionBuild(paths, userConfig = shared_1.defaultDevConfig) {
85
+ // Warn and crash if required files are missing
86
+ if (!(0, checkRequiredFiles_1.default)([paths.appHtml, paths.appIndexJs])) {
87
+ process.exit(1);
88
+ }
89
+ const useCustomConfig = fs_extra_1.default.existsSync(paths.appCustomConfig);
90
+ const { configureWebpack, ...options } = useCustomConfig
91
+ ? deepmerge_1.default.all([shared_1.defaultDevConfig, userConfig, require(paths.appCustomConfig) ?? {}])
92
+ : Object.assign(shared_1.defaultDevConfig, userConfig);
93
+ const baseConfig = (0, webpack_config_1.default)('production', paths, options);
94
+ const config = configureWebpack && typeof configureWebpack === 'function'
95
+ ? configureWebpack(baseConfig, 'production')
96
+ : baseConfig;
97
+ const previousSizes = await (0, FileSizeReporter_1.measureFileSizesBeforeBuild)(paths.appBuild);
98
+ try {
99
+ // Remove all content but keep the directory so that
100
+ // if you're in it, you don't end up in Trash
101
+ fs_extra_1.default.emptyDirSync(paths.appBuild);
102
+ // Merge with the public folder
103
+ copyPublicFolder(paths);
104
+ if (useCustomConfig) {
105
+ console.log(`${chalk_1.default.cyan('Using custom config from:')} ${chalk_1.default.yellow(paths.appCustomConfig)}\n`);
106
+ }
107
+ // Start the webpack build
108
+ const { stats, previousFileSizes, warnings } = (await build(config, previousSizes));
109
+ if (warnings.length) {
110
+ console.log(chalk_1.default.yellow('Compiled with warnings.\n'));
111
+ console.log(warnings.join('\n\n'));
112
+ console.log(`\nSearch for the ${chalk_1.default.underline(chalk_1.default.yellow('keywords'))} to learn more about each warning.`);
113
+ console.log(`To ignore, add ${chalk_1.default.cyan('// eslint-disable-next-line')} to the line before.\n`);
114
+ }
115
+ else {
116
+ console.log(chalk_1.default.green('Compiled successfully.\n'));
117
+ }
118
+ console.log('File sizes after gzip:\n');
119
+ (0, FileSizeReporter_1.printFileSizesAfterBuild)(stats, previousFileSizes, paths.appBuild, WARN_AFTER_BUNDLE_GZIP_SIZE, WARN_AFTER_CHUNK_GZIP_SIZE);
120
+ console.log();
121
+ const useYarn = fs_extra_1.default.existsSync(paths.yarnLockFile);
122
+ const appPackage = require(paths.appPackageJson);
123
+ const publicUrl = paths.publicUrlOrPath;
124
+ const { publicPath } = config.output;
125
+ const buildFolder = path_1.default.relative(process.cwd(), paths.appBuild);
126
+ (0, printHostingInstructions_1.default)(appPackage, publicUrl, typeof publicPath === 'string' ? publicPath : '', buildFolder, useYarn);
127
+ }
128
+ catch (err) {
129
+ const tscCompileOnError = process.env.TSC_COMPILE_ON_ERROR === 'true';
130
+ if (tscCompileOnError) {
131
+ console.log(chalk_1.default.yellow('Compiled with the following type errors (you may want to check these before deploying your app):\n'));
132
+ (0, printBuildError_1.default)(err);
133
+ }
134
+ else {
135
+ console.log(chalk_1.default.red('Failed to compile.\n'));
136
+ (0, printBuildError_1.default)(err);
137
+ process.exit(1);
138
+ }
139
+ }
140
+ }
141
+ if (require.main === module) {
142
+ (0, env_1.getEnviroment)(paths_1.default);
143
+ createProductionBuild(paths_1.default);
144
+ }
145
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/command/build.ts"],"names":[],"mappings":";;;;;AAiGA,sDAqFC;AAtLD,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,YAAY,CAAC;AACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;AAEpC,qEAAqE;AACrE,6EAA6E;AAC7E,2DAA2D;AAC3D,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE;IACvC,MAAM,GAAG,CAAC;AACZ,CAAC,CAAC,CAAC;AAEH,gDAAwB;AAExB,kDAA0B;AAC1B,0DAA8B;AAC9B,wDAA0B;AAC1B,sDAAiD;AAEjD,uCAA8C;AAC9C,4DAAyD;AACzD,6CAAsE;AACtE,8EAAqD;AACrD,qFAA6D;AAC7D,gEAAkG;AAClG,2FAAmE;AACnE,+EAAuD;AACvD,iGAAyE;AAEzE,uEAAuE;AACvE,MAAM,2BAA2B,GAAG,GAAG,GAAG,IAAI,CAAC;AAC/C,MAAM,0BAA0B,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/C,SAAS,gBAAgB,CAAC,KAAe;IACvC,kBAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE;QAC3C,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO;KACzC,CAAC,CAAC;AACL,CAAC;AAED,yBAAyB;AACzB,qDAAqD;AAErD,qEAAqE;AACrE,SAAS,KAAK,CAAC,MAAqB,EAAE,iBAA0B;IAC9D,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,IAAA,iBAAO,EAAC,MAAM,CAAC,CAAC;IAEjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC1B,IAAI,QAAQ,CAAC;YACb,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;oBACjB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBAED,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC;gBAE/B,QAAQ,GAAG,IAAA,+BAAqB,EAAC;oBAC/B,MAAM,EAAE,CAAC,UAAU,CAAC;oBACpB,QAAQ,EAAE,EAAE;iBACb,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,IAAA,+BAAqB,EAAC,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC3B,yDAAyD;gBACzD,0DAA0D;gBAC1D,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC7B,CAAC;gBACD,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC;YACD,IACE,OAAO,CAAC,GAAG,CAAC,EAAE;gBACd,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;gBAChF,QAAQ,CAAC,QAAQ,CAAC,MAAM,EACxB,CAAC;gBACD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,gEAAgE;oBAC9D,yCAAyC,CAC5C,CACF,CAAC;gBACF,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,WAAW,GAAG;gBAClB,KAAK;gBACL,iBAAiB;gBACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B,CAAC;YAEF,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,KAAe,EACf,aAA+B,yBAAgB;IAE/C,+CAA+C;IAC/C,IAAI,CAAC,IAAA,4BAAkB,EAAC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,eAAe,GAAG,kBAAE,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAE7D,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,EAAE,GAAqB,eAAe;QACxE,CAAC,CAAC,mBAAK,CAAC,GAAG,CAAC,CAAC,yBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QACjF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,yBAAgB,EAAE,UAAU,CAAC,CAAC;IAEhD,MAAM,UAAU,GAAG,IAAA,wBAAa,EAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAkB,CAAC;IAEhF,MAAM,MAAM,GACV,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,UAAU;QACxD,CAAC,CAAC,gBAAgB,CAAC,UAAU,EAAE,YAAY,CAAC;QAC5C,CAAC,CAAC,UAAU,CAAC;IAEjB,MAAM,aAAa,GAAG,MAAM,IAAA,8CAA2B,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAExE,IAAI,CAAC;QACH,oDAAoD;QACpD,6CAA6C;QAC7C,kBAAE,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEhC,+BAA+B;QAC/B,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACrG,CAAC;QAED,0BAA0B;QAC1B,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAQ,CAAC;QAE3F,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,oBAAoB,eAAK,CAAC,SAAS,CAAC,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,qCAAqC,CAAC,CAAC;YAChH,OAAO,CAAC,GAAG,CAAC,kBAAkB,eAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,wBAAwB,CAAC,CAAC;QACnG,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,IAAA,2CAAwB,EACtB,KAAK,EACL,iBAAiB,EACjB,KAAK,CAAC,QAAQ,EACd,2BAA2B,EAC3B,0BAA0B,CAC3B,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,MAAM,OAAO,GAAG,kBAAE,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC;QACxC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,MAAO,CAAC;QACtC,MAAM,WAAW,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAA,kCAAwB,EACtB,UAAU,EACV,SAAS,EACT,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAChD,WAAW,EACX,OAAO,CACR,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,MAAM,CAAC;QACtE,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,oGAAoG,CACrG,CACF,CAAC;YACF,IAAA,yBAAe,EAAC,GAAG,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC/C,IAAA,yBAAe,EAAC,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAA,mBAAa,EAAC,eAAY,CAAC,CAAC;IAC5B,qBAAqB,CAAC,eAAY,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const templateFolder: string;
2
+ export declare const templateDependencies: string[];
3
+ export declare function projectNameInput(): Promise<any>;
4
+ export declare function validProjectName(appName: string): (string | boolean)[];
5
+ export declare function shouldUseYarn(): boolean;
6
+ export declare function tryGitInit(): boolean;
7
+ export declare function tryGitCommit(appPath: string): boolean;
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.templateDependencies = exports.templateFolder = void 0;
7
+ exports.projectNameInput = projectNameInput;
8
+ exports.validProjectName = validProjectName;
9
+ exports.shouldUseYarn = shouldUseYarn;
10
+ exports.tryGitInit = tryGitInit;
11
+ exports.tryGitCommit = tryGitCommit;
12
+ const path_1 = __importDefault(require("path"));
13
+ const cross_spawn_1 = __importDefault(require("cross-spawn"));
14
+ const fs_extra_1 = __importDefault(require("fs-extra"));
15
+ const validate_npm_package_name_1 = __importDefault(require("validate-npm-package-name"));
16
+ // inquirer is ESM-only — use dynamic import to bridge CommonJS.
17
+ const importInquirer = new Function('m', 'return import(m)');
18
+ const inquirerPromise = importInquirer('inquirer').then((m) => m.default);
19
+ exports.templateFolder = path_1.default.resolve(__dirname, '../../template');
20
+ exports.templateDependencies = [
21
+ 'react',
22
+ 'react-dom',
23
+ 'typescript',
24
+ 'react-router-dom',
25
+ '@types/react',
26
+ '@types/react-dom',
27
+ '@types/react-router-dom',
28
+ 'styled-components',
29
+ '@types/styled-components',
30
+ '@apollion-dsi/core',
31
+ '@apollion-dsi/scripts',
32
+ '@apollion-dsi/eslint-config',
33
+ 'audit-ci',
34
+ ];
35
+ async function projectNameInput() {
36
+ const inquirer = await inquirerPromise;
37
+ return inquirer.prompt({
38
+ type: 'input',
39
+ name: 'inputName',
40
+ message: 'Nome do Projeto: ',
41
+ validate: (query) => {
42
+ const [result, reason] = validProjectName(query);
43
+ return result || `Nome Invalido: ${reason}`;
44
+ },
45
+ });
46
+ }
47
+ function validProjectName(appName) {
48
+ const validationResult = (0, validate_npm_package_name_1.default)(appName);
49
+ if (!validationResult.validForNewPackages) {
50
+ return [false, 'npm naming restrictions'];
51
+ }
52
+ if (exports.templateDependencies.includes(appName)) {
53
+ return [false, 'dependency with the same name exists'];
54
+ }
55
+ if (fs_extra_1.default.existsSync(appName)) {
56
+ const currentDirectory = process.cwd();
57
+ const files = fs_extra_1.default.readdirSync(path_1.default.resolve(currentDirectory, appName));
58
+ return files.length === 0 ? [true] : [false, `folder with the same name exist in ${currentDirectory}`];
59
+ }
60
+ return [true];
61
+ }
62
+ function shouldUseYarn() {
63
+ try {
64
+ cross_spawn_1.default.sync('yarnpkg', ['--version']);
65
+ return true;
66
+ }
67
+ catch (e) {
68
+ return false;
69
+ }
70
+ }
71
+ function tryGitInit() {
72
+ try {
73
+ cross_spawn_1.default.sync('git', ['init'], { stdio: 'ignore' });
74
+ return true;
75
+ }
76
+ catch (e) {
77
+ return false;
78
+ }
79
+ }
80
+ function tryGitCommit(appPath) {
81
+ try {
82
+ cross_spawn_1.default.sync('git', ['add', '-A'], { stdio: 'ignore' });
83
+ cross_spawn_1.default.sync('git', ['commit', '-m', 'chore: project started'], {
84
+ stdio: 'ignore',
85
+ });
86
+ return true;
87
+ }
88
+ catch (e) {
89
+ try {
90
+ fs_extra_1.default.removeSync(path_1.default.join(appPath, '.git'));
91
+ }
92
+ catch (removeErr) {
93
+ // Do nothing
94
+ }
95
+ return false;
96
+ }
97
+ }
98
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../src/command/create/helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function createTemplate(projectName: string): Promise<void>;
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createTemplate = createTemplate;
7
+ const os_1 = __importDefault(require("os"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const cross_spawn_1 = __importDefault(require("cross-spawn"));
11
+ const fs_extra_1 = __importDefault(require("fs-extra"));
12
+ const helper_1 = require("./helper");
13
+ async function createTemplate(projectName) {
14
+ return getProjectName({ projectName })
15
+ .then(createProjectFolder)
16
+ .then(copyTemplate)
17
+ .then(createPackageJson)
18
+ .then(changeCurrentDirectory)
19
+ .then(installDependencies)
20
+ .then(startGitRepo)
21
+ .then(successMessage);
22
+ }
23
+ async function getProjectName(config) {
24
+ const { projectName } = config;
25
+ const [result, reason] = (0, helper_1.validProjectName)(projectName);
26
+ const isValidName = result && !!projectName;
27
+ if (!isValidName) {
28
+ if (projectName) {
29
+ console.error(chalk_1.default.red(`Nome Invalido: ${reason}`));
30
+ }
31
+ const { inputName } = await (0, helper_1.projectNameInput)();
32
+ config.projectName = inputName;
33
+ }
34
+ return config;
35
+ }
36
+ async function createProjectFolder(config) {
37
+ const projectFolder = path_1.default.resolve(config.projectName);
38
+ await fs_extra_1.default.ensureDir(projectFolder);
39
+ config.projectFolder = projectFolder;
40
+ return config;
41
+ }
42
+ async function copyTemplate(config) {
43
+ const { projectFolder } = config;
44
+ await fs_extra_1.default.copy(helper_1.templateFolder, projectFolder);
45
+ console.log(chalk_1.default.green(`Criando novo projeto em:\n${chalk_1.default.cyan(projectFolder)}\n`));
46
+ return config;
47
+ }
48
+ async function createPackageJson(config) {
49
+ const { projectName, projectFolder } = config;
50
+ await fs_extra_1.default.writeJson(path_1.default.join(projectFolder, 'package.json'), {
51
+ name: projectName,
52
+ version: '0.1.0',
53
+ private: true,
54
+ author: process.env.USER || os_1.default.hostname(),
55
+ license: 'MIT',
56
+ scripts: {
57
+ start: 'scripts dev',
58
+ build: 'scripts build',
59
+ test: 'scripts test -- --config=jest.config.js',
60
+ lint: 'eslint --quiet src --ext ts,tsx',
61
+ 'lint:full': 'eslint src --ext ts,tsx',
62
+ 'lint:fix': 'eslint --fix src --ext ts,tsx',
63
+ 'prettier:write': 'prettier src/ --write',
64
+ 'audit-dependencies': 'audit-ci --config audit-ci.json',
65
+ },
66
+ husky: {
67
+ hooks: {
68
+ 'pre-commit': 'lint-staged',
69
+ 'commit-msg': 'commitlint -E HUSKY_GIT_PARAMS',
70
+ },
71
+ },
72
+ 'lint-staged': {
73
+ '*.{json,css,md}': ['yarn prettier:write'],
74
+ '*.{ts,tsx}': ['yarn audit-dependencies', 'yarn lint', 'yarn prettier:write'],
75
+ },
76
+ }, {
77
+ spaces: 2,
78
+ });
79
+ return config;
80
+ }
81
+ async function changeCurrentDirectory(config) {
82
+ process.chdir(config.projectFolder);
83
+ return config;
84
+ }
85
+ async function installDependencies(config) {
86
+ const useYarn = (0, helper_1.shouldUseYarn)();
87
+ const displayCommand = useYarn ? 'yarn' : 'npm';
88
+ console.log(`Instalando dependencias com ${chalk_1.default.yellow(useYarn ? 'yarn' : 'npm')}\n`);
89
+ config.useYarn = useYarn;
90
+ config.displayCommand = displayCommand;
91
+ return new Promise((resolve, reject) => {
92
+ let command = 'npm';
93
+ let args = ['install', '--save', '--loglevel', 'error'].concat(helper_1.templateDependencies);
94
+ if (useYarn) {
95
+ command = 'yarnpkg';
96
+ args = ['add', '--exact'].concat(helper_1.templateDependencies);
97
+ }
98
+ const child = (0, cross_spawn_1.default)(command, args, { stdio: 'inherit' });
99
+ child.on('close', (code) => {
100
+ if (code !== 0) {
101
+ reject(new Error(`${command} ${args.join(' ')}`));
102
+ }
103
+ else {
104
+ resolve(config);
105
+ }
106
+ });
107
+ });
108
+ }
109
+ async function startGitRepo(config) {
110
+ const success = (0, helper_1.tryGitInit)();
111
+ config.gitStarted = success;
112
+ if (success) {
113
+ const { useYarn, projectFolder } = config;
114
+ const hooks = ['lint-staged', 'husky', '@commitlint/cli', '@commitlint/config-conventional'];
115
+ let command = 'npm';
116
+ let args = ['install', '--save', '--loglevel', 'error'].concat(hooks);
117
+ if (useYarn) {
118
+ command = 'yarnpkg';
119
+ args = ['add', '--dev', '--exact'].concat(hooks);
120
+ }
121
+ console.log(`Iniciando Git Hooks\n`);
122
+ return new Promise((resolve, reject) => {
123
+ const child = (0, cross_spawn_1.default)(command, args, { stdio: 'inherit' });
124
+ child.on('close', (code) => {
125
+ if (code !== 0) {
126
+ reject(new Error(`${command} ${args.join(' ')}`));
127
+ }
128
+ else {
129
+ config.gitInitialCommit = (0, helper_1.tryGitCommit)(projectFolder);
130
+ resolve(config);
131
+ }
132
+ });
133
+ });
134
+ }
135
+ return config;
136
+ }
137
+ async function successMessage(config) {
138
+ if (config.gitStarted && config.gitInitialCommit) {
139
+ const { projectName, projectFolder, displayCommand, useYarn } = config;
140
+ console.log();
141
+ console.log(chalk_1.default.green(`Sucesso! Projeto ${chalk_1.default.white(projectName)} Criado em:\n${chalk_1.default.white(projectFolder)}`));
142
+ console.log();
143
+ console.log('Comandos:\n');
144
+ console.log(chalk_1.default.cyan(`${displayCommand} start`));
145
+ console.log(chalk_1.default.cyan(`${displayCommand} ${useYarn ? '' : 'run '}build`));
146
+ console.log(`\n\n`);
147
+ }
148
+ }
149
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/command/create/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { AppPaths } from '../config/paths';
2
+ import { CustomConfigType } from '../config/shared';
3
+ export declare function createDevServer(paths: AppPaths, userConfig?: CustomConfigType): Promise<void>;