@teambit/workspace-config-files 0.0.21 → 0.0.23

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 (36) hide show
  1. package/dist/outputs/format-clean-output.d.ts +2 -0
  2. package/dist/outputs/format-clean-output.js +25 -0
  3. package/dist/outputs/format-clean-output.js.map +1 -0
  4. package/dist/outputs/format-list-output.d.ts +2 -0
  5. package/dist/outputs/format-list-output.js +31 -0
  6. package/dist/outputs/format-list-output.js.map +1 -0
  7. package/dist/outputs/format-write-output.d.ts +3 -0
  8. package/dist/outputs/format-write-output.js +75 -0
  9. package/dist/outputs/format-write-output.js.map +1 -0
  10. package/dist/outputs/index.d.ts +4 -0
  11. package/dist/outputs/index.js +59 -0
  12. package/dist/outputs/index.js.map +1 -0
  13. package/dist/outputs/verbose-format-write-output.d.ts +3 -0
  14. package/dist/{format-outputs.js → outputs/verbose-format-write-output.js} +21 -38
  15. package/dist/outputs/verbose-format-write-output.js.map +1 -0
  16. package/dist/outputs/write-outputs-texts.d.ts +2 -0
  17. package/dist/outputs/write-outputs-texts.js +13 -0
  18. package/dist/outputs/write-outputs-texts.js.map +1 -0
  19. package/dist/{preview-1682393306973.js → preview-1682566814488.js} +1 -1
  20. package/dist/workspace-config-files.main.runtime.d.ts +2 -0
  21. package/dist/workspace-config-files.main.runtime.js +11 -3
  22. package/dist/workspace-config-files.main.runtime.js.map +1 -1
  23. package/dist/ws-config.cmd.d.ts +9 -0
  24. package/dist/ws-config.cmd.js +8 -7
  25. package/dist/ws-config.cmd.js.map +1 -1
  26. package/outputs/format-clean-output.ts +18 -0
  27. package/outputs/format-list-output.ts +13 -0
  28. package/outputs/format-write-output.ts +67 -0
  29. package/outputs/index.ts +4 -0
  30. package/outputs/verbose-format-write-output.ts +91 -0
  31. package/outputs/write-outputs-texts.ts +4 -0
  32. package/package-tar/teambit-workspace-config-files-0.0.23.tgz +0 -0
  33. package/package.json +9 -9
  34. package/dist/format-outputs.d.ts +0 -5
  35. package/dist/format-outputs.js.map +0 -1
  36. package/package-tar/teambit-workspace-config-files-0.0.21.tgz +0 -0
@@ -0,0 +1,2 @@
1
+ import type { CleanConfigCmdFlags } from '../ws-config.cmd';
2
+ export declare function formatCleanOutput(cleanResults: string[] | undefined, flags: CleanConfigCmdFlags): string;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.formatCleanOutput = formatCleanOutput;
8
+ function _chalk() {
9
+ const data = _interopRequireDefault(require("chalk"));
10
+ _chalk = function () {
11
+ return data;
12
+ };
13
+ return data;
14
+ }
15
+ function formatCleanOutput(cleanResults = [], flags) {
16
+ const isDryRun = !!flags.dryRun;
17
+ const cleanResultsOutput = getCleanResultsOutput(cleanResults, isDryRun);
18
+ return `${cleanResultsOutput}`;
19
+ }
20
+ function getCleanResultsOutput(cleanResults, isDryRun) {
21
+ const cleanResultsOutput = cleanResults ? `${_chalk().default.green(`${cleanResults.length} config files ${isDryRun ? 'will be' : 'were'} deleted`)}\n ${cleanResults.join('\n ')}\n` : '';
22
+ return cleanResultsOutput;
23
+ }
24
+
25
+ //# sourceMappingURL=format-clean-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["formatCleanOutput","cleanResults","flags","isDryRun","dryRun","cleanResultsOutput","getCleanResultsOutput","chalk","green","length","join"],"sources":["format-clean-output.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { CleanConfigCmdFlags } from '../ws-config.cmd';\n\nexport function formatCleanOutput(cleanResults: string[] = [], flags: CleanConfigCmdFlags): string {\n const isDryRun = !!flags.dryRun;\n const cleanResultsOutput = getCleanResultsOutput(cleanResults, isDryRun);\n\n return `${cleanResultsOutput}`;\n}\n\nfunction getCleanResultsOutput(cleanResults: string[] | undefined, isDryRun: boolean) {\n const cleanResultsOutput = cleanResults\n ? `${chalk.green(\n `${cleanResults.length} config files ${isDryRun ? 'will be' : 'were'} deleted`\n )}\\n ${cleanResults.join('\\n ')}\\n`\n : '';\n return cleanResultsOutput;\n}\n"],"mappings":";;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGO,SAASA,iBAAiB,CAACC,YAAsB,GAAG,EAAE,EAAEC,KAA0B,EAAU;EACjG,MAAMC,QAAQ,GAAG,CAAC,CAACD,KAAK,CAACE,MAAM;EAC/B,MAAMC,kBAAkB,GAAGC,qBAAqB,CAACL,YAAY,EAAEE,QAAQ,CAAC;EAExE,OAAQ,GAAEE,kBAAmB,EAAC;AAChC;AAEA,SAASC,qBAAqB,CAACL,YAAkC,EAAEE,QAAiB,EAAE;EACpF,MAAME,kBAAkB,GAAGJ,YAAY,GAClC,GAAEM,gBAAK,CAACC,KAAK,CACX,GAAEP,YAAY,CAACQ,MAAO,iBAAgBN,QAAQ,GAAG,SAAS,GAAG,MAAO,UAAS,CAC9E,OAAMF,YAAY,CAACS,IAAI,CAAC,MAAM,CAAE,IAAG,GACrC,EAAE;EACN,OAAOL,kBAAkB;AAC3B"}
@@ -0,0 +1,2 @@
1
+ import { ConfigWritersList } from '../workspace-config-files.main.runtime';
2
+ export declare function formatListOutput(result: ConfigWritersList): string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ require("core-js/modules/es.array.iterator.js");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.formatListOutput = formatListOutput;
9
+ function _cliTable() {
10
+ const data = _interopRequireDefault(require("cli-table"));
11
+ _cliTable = function () {
12
+ return data;
13
+ };
14
+ return data;
15
+ }
16
+ function formatListOutput(result) {
17
+ const head = ['Aspect ID', 'name', 'CLI name'];
18
+ const rows = result.map(entry => {
19
+ return [entry.aspectId, entry.configWriter.name, entry.configWriter.cliName];
20
+ });
21
+ const table = new (_cliTable().default)({
22
+ head,
23
+ style: {
24
+ head: ['cyan']
25
+ }
26
+ });
27
+ table.push(...rows);
28
+ return table.toString();
29
+ }
30
+
31
+ //# sourceMappingURL=format-list-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["formatListOutput","result","head","rows","map","entry","aspectId","configWriter","name","cliName","table","Table","style","push","toString"],"sources":["format-list-output.ts"],"sourcesContent":["import Table from 'cli-table';\nimport { ConfigWritersList } from '../workspace-config-files.main.runtime';\n\nexport function formatListOutput(result: ConfigWritersList): string {\n const head = ['Aspect ID', 'name', 'CLI name'];\n\n const rows = result.map((entry) => {\n return [entry.aspectId, entry.configWriter.name, entry.configWriter.cliName];\n });\n const table = new Table({ head, style: { head: ['cyan'] } });\n table.push(...rows);\n return table.toString();\n}\n"],"mappings":";;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGO,SAASA,gBAAgB,CAACC,MAAyB,EAAU;EAClE,MAAMC,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC;EAE9C,MAAMC,IAAI,GAAGF,MAAM,CAACG,GAAG,CAAEC,KAAK,IAAK;IACjC,OAAO,CAACA,KAAK,CAACC,QAAQ,EAAED,KAAK,CAACE,YAAY,CAACC,IAAI,EAAEH,KAAK,CAACE,YAAY,CAACE,OAAO,CAAC;EAC9E,CAAC,CAAC;EACF,MAAMC,KAAK,GAAG,KAAIC,mBAAK,EAAC;IAAET,IAAI;IAAEU,KAAK,EAAE;MAAEV,IAAI,EAAE,CAAC,MAAM;IAAE;EAAE,CAAC,CAAC;EAC5DQ,KAAK,CAACG,IAAI,CAAC,GAAGV,IAAI,CAAC;EACnB,OAAOO,KAAK,CAACI,QAAQ,EAAE;AACzB"}
@@ -0,0 +1,3 @@
1
+ import { WriteConfigFilesResult } from '../workspace-config-files.main.runtime';
2
+ import type { WriteConfigCmdFlags } from '../ws-config.cmd';
3
+ export declare function formatWriteOutput(writeConfigFilesResult: WriteConfigFilesResult, flags: WriteConfigCmdFlags): string;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.formatWriteOutput = formatWriteOutput;
8
+ function _chalk() {
9
+ const data = _interopRequireDefault(require("chalk"));
10
+ _chalk = function () {
11
+ return data;
12
+ };
13
+ return data;
14
+ }
15
+ function _path() {
16
+ const data = require("path");
17
+ _path = function () {
18
+ return data;
19
+ };
20
+ return data;
21
+ }
22
+ function _formatCleanOutput() {
23
+ const data = require("./format-clean-output");
24
+ _formatCleanOutput = function () {
25
+ return data;
26
+ };
27
+ return data;
28
+ }
29
+ function _writeOutputsTexts() {
30
+ const data = require("./write-outputs-texts");
31
+ _writeOutputsTexts = function () {
32
+ return data;
33
+ };
34
+ return data;
35
+ }
36
+ function formatWriteOutput(writeConfigFilesResult, flags) {
37
+ const {
38
+ cleanResults,
39
+ writeResults,
40
+ wsDir
41
+ } = writeConfigFilesResult;
42
+ const isDryRun = !!(flags.dryRun || flags.dryRunWithContent);
43
+ const cleanResultsOutput = cleanResults !== null && cleanResults !== void 0 && cleanResults.length ? (0, _formatCleanOutput().formatCleanOutput)(cleanResults, {
44
+ dryRun: isDryRun
45
+ }) : undefined;
46
+ const writeResultsOutput = getWriteResultsOutput(writeResults, wsDir, isDryRun);
47
+ const cleanWriteOutput = cleanResultsOutput ? `${cleanResultsOutput}\n${writeResultsOutput}` : writeResultsOutput;
48
+ return `${cleanWriteOutput}\n\n${_writeOutputsTexts().SUMMARY}`;
49
+ }
50
+ function getWriteResultsOutput(writeResults, wsDir, isDryRun) {
51
+ const totalExtendingConfigFiles = writeResults.totalExtendingConfigFiles;
52
+ const writeTitle = isDryRun ? _chalk().default.green(`${totalExtendingConfigFiles} files will be written`) : _chalk().default.green((0, _writeOutputsTexts().WRITE_TITLE)(totalExtendingConfigFiles));
53
+ const writeOutput = writeResults.aspectsWritersResults.map(aspectWritersResults => getOneAspectOutput(aspectWritersResults, wsDir)).join('\n\n');
54
+ return `${writeTitle}\n${writeOutput}`;
55
+ }
56
+ function getOneAspectOutput(aspectWritersResults, wsDir) {
57
+ const title = _chalk().default.blue(`${aspectWritersResults.totalExtendingConfigFiles} ${_chalk().default.bold(aspectWritersResults.aspectId.toString())} configurations added`);
58
+ const writersOutput = aspectWritersResults.writersResult.map(oneWritersResults => getOneWriterOutput(oneWritersResults, wsDir)).join('\n\n');
59
+ return `${title}\n${writersOutput}`;
60
+ }
61
+ function getOneWriterOutput(oneWritersResults, wsDir) {
62
+ const extendingConfigFilesOutput = getExtendingConfigFilesOutput(oneWritersResults.extendingConfigFiles, wsDir);
63
+ return `${extendingConfigFilesOutput}`;
64
+ }
65
+ function getExtendingConfigFilesOutput(extendingConfigFiles, wsDir) {
66
+ const extendingConfigFilesOutput = extendingConfigFiles.map(envsWrittenExtendingConfigFile => getEnvGroupExtendingConfigFilesOutput(envsWrittenExtendingConfigFile, wsDir)).join('\n');
67
+ return `${extendingConfigFilesOutput}`;
68
+ }
69
+ function getEnvGroupExtendingConfigFilesOutput(envsWrittenExtendingConfigFile, wsDir) {
70
+ const extendingConfigFile = envsWrittenExtendingConfigFile.extendingConfigFile;
71
+ const paths = extendingConfigFile.filePaths.map(p => ` ${(0, _path().relative)(wsDir, p)}`).join('\n');
72
+ return `${paths}`;
73
+ }
74
+
75
+ //# sourceMappingURL=format-write-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["formatWriteOutput","writeConfigFilesResult","flags","cleanResults","writeResults","wsDir","isDryRun","dryRun","dryRunWithContent","cleanResultsOutput","length","formatCleanOutput","undefined","writeResultsOutput","getWriteResultsOutput","cleanWriteOutput","SUMMARY","totalExtendingConfigFiles","writeTitle","chalk","green","WRITE_TITLE","writeOutput","aspectsWritersResults","map","aspectWritersResults","getOneAspectOutput","join","title","blue","bold","aspectId","toString","writersOutput","writersResult","oneWritersResults","getOneWriterOutput","extendingConfigFilesOutput","getExtendingConfigFilesOutput","extendingConfigFiles","envsWrittenExtendingConfigFile","getEnvGroupExtendingConfigFilesOutput","extendingConfigFile","paths","filePaths","p","relative"],"sources":["format-write-output.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { relative } from 'path';\nimport {\n AspectWritersResults,\n EnvsWrittenExtendingConfigFile,\n EnvsWrittenExtendingConfigFiles,\n OneConfigFileWriterResult,\n WriteConfigFilesResult,\n} from '../workspace-config-files.main.runtime';\nimport type { WriteConfigCmdFlags } from '../ws-config.cmd';\nimport { formatCleanOutput } from './format-clean-output';\nimport { SUMMARY, WRITE_TITLE } from './write-outputs-texts';\n\nexport function formatWriteOutput(writeConfigFilesResult: WriteConfigFilesResult, flags: WriteConfigCmdFlags): string {\n const { cleanResults, writeResults, wsDir } = writeConfigFilesResult;\n const isDryRun = !!(flags.dryRun || flags.dryRunWithContent);\n const cleanResultsOutput = cleanResults?.length ? formatCleanOutput(cleanResults, { dryRun: isDryRun }) : undefined;\n const writeResultsOutput = getWriteResultsOutput(writeResults, wsDir, isDryRun);\n\n const cleanWriteOutput = cleanResultsOutput ? `${cleanResultsOutput}\\n${writeResultsOutput}` : writeResultsOutput;\n\n return `${cleanWriteOutput}\\n\\n${SUMMARY}`;\n}\n\nfunction getWriteResultsOutput(writeResults: WriteConfigFilesResult['writeResults'], wsDir: string, isDryRun: boolean) {\n const totalExtendingConfigFiles = writeResults.totalExtendingConfigFiles;\n\n const writeTitle = isDryRun\n ? chalk.green(`${totalExtendingConfigFiles} files will be written`)\n : chalk.green(WRITE_TITLE(totalExtendingConfigFiles));\n const writeOutput = writeResults.aspectsWritersResults\n .map((aspectWritersResults) => getOneAspectOutput(aspectWritersResults, wsDir))\n .join('\\n\\n');\n return `${writeTitle}\\n${writeOutput}`;\n}\nfunction getOneAspectOutput(aspectWritersResults: AspectWritersResults, wsDir: string): string {\n const title = chalk.blue(\n `${aspectWritersResults.totalExtendingConfigFiles} ${chalk.bold(\n aspectWritersResults.aspectId.toString()\n )} configurations added`\n );\n const writersOutput = aspectWritersResults.writersResult\n .map((oneWritersResults) => getOneWriterOutput(oneWritersResults, wsDir))\n .join('\\n\\n');\n return `${title}\\n${writersOutput}`;\n}\nfunction getOneWriterOutput(oneWritersResults: OneConfigFileWriterResult, wsDir: string): string {\n const extendingConfigFilesOutput = getExtendingConfigFilesOutput(oneWritersResults.extendingConfigFiles, wsDir);\n return `${extendingConfigFilesOutput}`;\n}\n\nfunction getExtendingConfigFilesOutput(extendingConfigFiles: EnvsWrittenExtendingConfigFiles, wsDir: string): string {\n const extendingConfigFilesOutput = extendingConfigFiles\n .map((envsWrittenExtendingConfigFile) =>\n getEnvGroupExtendingConfigFilesOutput(envsWrittenExtendingConfigFile, wsDir)\n )\n .join('\\n');\n return `${extendingConfigFilesOutput}`;\n}\nfunction getEnvGroupExtendingConfigFilesOutput(\n envsWrittenExtendingConfigFile: EnvsWrittenExtendingConfigFile,\n wsDir: string\n): string {\n const extendingConfigFile = envsWrittenExtendingConfigFile.extendingConfigFile;\n const paths = extendingConfigFile.filePaths.map((p) => ` ${relative(wsDir, p)}`).join('\\n');\n return `${paths}`;\n}\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { formatCleanOutput } from './format-clean-output';
2
+ export { formatListOutput } from './format-list-output';
3
+ export { formatWriteOutput } from './format-write-output';
4
+ export { verboseFormatWriteOutput } from './verbose-format-write-output';
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "formatCleanOutput", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _formatCleanOutput().formatCleanOutput;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "formatListOutput", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _formatListOutput().formatListOutput;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "formatWriteOutput", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _formatWriteOutput().formatWriteOutput;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "verboseFormatWriteOutput", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _verboseFormatWriteOutput().verboseFormatWriteOutput;
28
+ }
29
+ });
30
+ function _formatCleanOutput() {
31
+ const data = require("./format-clean-output");
32
+ _formatCleanOutput = function () {
33
+ return data;
34
+ };
35
+ return data;
36
+ }
37
+ function _formatListOutput() {
38
+ const data = require("./format-list-output");
39
+ _formatListOutput = function () {
40
+ return data;
41
+ };
42
+ return data;
43
+ }
44
+ function _formatWriteOutput() {
45
+ const data = require("./format-write-output");
46
+ _formatWriteOutput = function () {
47
+ return data;
48
+ };
49
+ return data;
50
+ }
51
+ function _verboseFormatWriteOutput() {
52
+ const data = require("./verbose-format-write-output");
53
+ _verboseFormatWriteOutput = function () {
54
+ return data;
55
+ };
56
+ return data;
57
+ }
58
+
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { formatCleanOutput } from './format-clean-output';\nexport { formatListOutput } from './format-list-output';\nexport { formatWriteOutput } from './format-write-output';\nexport { verboseFormatWriteOutput } from './verbose-format-write-output';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA"}
@@ -0,0 +1,3 @@
1
+ import { WriteConfigFilesResult } from '../workspace-config-files.main.runtime';
2
+ import type { WriteConfigCmdFlags } from '../ws-config.cmd';
3
+ export declare function verboseFormatWriteOutput(writeConfigFilesResult: WriteConfigFilesResult, flags: WriteConfigCmdFlags): string;
@@ -1,20 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- require("core-js/modules/es.array.iterator.js");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.formatCleanOutput = formatCleanOutput;
9
- exports.formatListOutput = formatListOutput;
10
- exports.formatWriteOutput = formatWriteOutput;
11
- function _cliTable() {
12
- const data = _interopRequireDefault(require("cli-table"));
13
- _cliTable = function () {
14
- return data;
15
- };
16
- return data;
17
- }
7
+ exports.verboseFormatWriteOutput = verboseFormatWriteOutput;
18
8
  function _chalk() {
19
9
  const data = _interopRequireDefault(require("chalk"));
20
10
  _chalk = function () {
@@ -29,43 +19,36 @@ function _path() {
29
19
  };
30
20
  return data;
31
21
  }
32
- function formatListOutput(result) {
33
- const head = ['Aspect ID', 'name', 'CLI name'];
34
- const rows = result.map(entry => {
35
- return [entry.aspectId, entry.configWriter.name, entry.configWriter.cliName];
36
- });
37
- const table = new (_cliTable().default)({
38
- head,
39
- style: {
40
- head: ['cyan']
41
- }
42
- });
43
- table.push(...rows);
44
- return table.toString();
22
+ function _formatCleanOutput() {
23
+ const data = require("./format-clean-output");
24
+ _formatCleanOutput = function () {
25
+ return data;
26
+ };
27
+ return data;
28
+ }
29
+ function _writeOutputsTexts() {
30
+ const data = require("./write-outputs-texts");
31
+ _writeOutputsTexts = function () {
32
+ return data;
33
+ };
34
+ return data;
45
35
  }
46
- function formatWriteOutput(writeConfigFilesResult, flags) {
36
+ function verboseFormatWriteOutput(writeConfigFilesResult, flags) {
47
37
  const {
48
38
  cleanResults,
49
39
  writeResults,
50
40
  wsDir
51
41
  } = writeConfigFilesResult;
52
42
  const isDryRun = !!(flags.dryRun || flags.dryRunWithContent);
53
- const cleanResultsOutput = getCleanResultsOutput(cleanResults, isDryRun);
43
+ const cleanResultsOutput = (0, _formatCleanOutput().formatCleanOutput)(cleanResults, {
44
+ dryRun: isDryRun
45
+ });
54
46
  const writeResultsOutput = getWriteResultsOutput(writeResults, wsDir, isDryRun);
55
- return `${cleanResultsOutput}${writeResultsOutput}`;
56
- }
57
- function formatCleanOutput(cleanResults = [], flags) {
58
- const isDryRun = !!flags.dryRun;
59
- const cleanResultsOutput = getCleanResultsOutput(cleanResults, isDryRun);
60
- return `${cleanResultsOutput}`;
61
- }
62
- function getCleanResultsOutput(cleanResults, isDryRun) {
63
- const cleanResultsOutput = cleanResults ? `${_chalk().default.green(`the following ${cleanResults.length} paths ${isDryRun ? 'will be' : 'were'} deleted:`)}\n ${cleanResults.join('\n ')}\n` : '';
64
- return cleanResultsOutput;
47
+ return `${cleanResultsOutput}\n${writeResultsOutput}\n\n${_writeOutputsTexts().SUMMARY}`;
65
48
  }
66
49
  function getWriteResultsOutput(writeResults, wsDir, isDryRun) {
67
50
  const totalFiles = writeResults.totalWrittenFiles;
68
- const writeTitle = isDryRun ? _chalk().default.green(`${totalFiles} files will be written`) : _chalk().default.green(`${totalFiles} files have been written successfully`);
51
+ const writeTitle = isDryRun ? _chalk().default.green(`${totalFiles} files will be written`) : _chalk().default.green((0, _writeOutputsTexts().WRITE_TITLE)(totalFiles));
69
52
  const writeOutput = writeResults.aspectsWritersResults.map(aspectWritersResults => getOneAspectOutput(aspectWritersResults, wsDir)).join('\n\n');
70
53
  return `${writeTitle}\n${writeOutput}`;
71
54
  }
@@ -102,4 +85,4 @@ function getEnvGroupExtendingConfigFilesOutput(envsWrittenExtendingConfigFile, w
102
85
  return `${title}\n ${paths}`;
103
86
  }
104
87
 
105
- //# sourceMappingURL=format-outputs.js.map
88
+ //# sourceMappingURL=verbose-format-write-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["verboseFormatWriteOutput","writeConfigFilesResult","flags","cleanResults","writeResults","wsDir","isDryRun","dryRun","dryRunWithContent","cleanResultsOutput","formatCleanOutput","writeResultsOutput","getWriteResultsOutput","SUMMARY","totalFiles","totalWrittenFiles","writeTitle","chalk","green","WRITE_TITLE","writeOutput","aspectsWritersResults","map","aspectWritersResults","getOneAspectOutput","join","title","blue","bold","aspectId","toString","writersOutput","writersResult","oneWritersResults","getOneWriterOutput","cyan","name","realConfigFilesOutput","getRealConfigFilesOutput","configFiles","extendingConfigFilesOutput","getExtendingConfigFilesOutput","extendingConfigFiles","envsWrittenConfigFiles","magenta","writtenConfigFilesOutput","envsWrittenConfigFile","getEnvGroupConfigFilesOutput","envIds","filePath","relative","configFile","envsWrittenExtendingConfigFile","getEnvGroupExtendingConfigFilesOutput","extendingConfigFile","paths","filePaths","p","extendingTarget"],"sources":["verbose-format-write-output.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { relative } from 'path';\nimport {\n AspectWritersResults,\n EnvsWrittenConfigFile,\n EnvsWrittenConfigFiles,\n EnvsWrittenExtendingConfigFile,\n EnvsWrittenExtendingConfigFiles,\n OneConfigFileWriterResult,\n WriteConfigFilesResult,\n} from '../workspace-config-files.main.runtime';\nimport type { WriteConfigCmdFlags } from '../ws-config.cmd';\nimport { formatCleanOutput } from './format-clean-output';\nimport { SUMMARY, WRITE_TITLE } from './write-outputs-texts';\n\nexport function verboseFormatWriteOutput(\n writeConfigFilesResult: WriteConfigFilesResult,\n flags: WriteConfigCmdFlags\n): string {\n const { cleanResults, writeResults, wsDir } = writeConfigFilesResult;\n const isDryRun = !!(flags.dryRun || flags.dryRunWithContent);\n const cleanResultsOutput = formatCleanOutput(cleanResults, { dryRun: isDryRun });\n const writeResultsOutput = getWriteResultsOutput(writeResults, wsDir, isDryRun);\n\n return `${cleanResultsOutput}\\n${writeResultsOutput}\\n\\n${SUMMARY}`;\n}\n\nfunction getWriteResultsOutput(writeResults: WriteConfigFilesResult['writeResults'], wsDir: string, isDryRun: boolean) {\n const totalFiles = writeResults.totalWrittenFiles;\n\n const writeTitle = isDryRun\n ? chalk.green(`${totalFiles} files will be written`)\n : chalk.green(WRITE_TITLE(totalFiles));\n const writeOutput = writeResults.aspectsWritersResults\n .map((aspectWritersResults) => getOneAspectOutput(aspectWritersResults, wsDir))\n .join('\\n\\n');\n return `${writeTitle}\\n${writeOutput}`;\n}\nfunction getOneAspectOutput(aspectWritersResults: AspectWritersResults, wsDir: string): string {\n const title = chalk.blue(\n `The following paths are according to aspect ${chalk.bold(aspectWritersResults.aspectId.toString())}`\n );\n const writersOutput = aspectWritersResults.writersResult\n .map((oneWritersResults) => getOneWriterOutput(oneWritersResults, wsDir))\n .join('\\n\\n');\n return `${title}\\n${writersOutput}`;\n}\nfunction getOneWriterOutput(oneWritersResults: OneConfigFileWriterResult, wsDir: string): string {\n const title = chalk.cyan(` The following paths are according to writer ${chalk.bold(oneWritersResults.name)}`);\n const realConfigFilesOutput = getRealConfigFilesOutput(oneWritersResults.configFiles, wsDir);\n const extendingConfigFilesOutput = getExtendingConfigFilesOutput(oneWritersResults.extendingConfigFiles, wsDir);\n return `${title}\\n${realConfigFilesOutput}\\n\\n${extendingConfigFilesOutput}`;\n}\n\nfunction getRealConfigFilesOutput(envsWrittenConfigFiles: EnvsWrittenConfigFiles, wsDir: string): string {\n const title = chalk.magenta(` Real config files`);\n const writtenConfigFilesOutput = envsWrittenConfigFiles\n .map((envsWrittenConfigFile) => getEnvGroupConfigFilesOutput(envsWrittenConfigFile, wsDir))\n .join('\\n\\n');\n return `${title}\\n${writtenConfigFilesOutput}`;\n}\nfunction getEnvGroupConfigFilesOutput(envsWrittenConfigFile: EnvsWrittenConfigFile, wsDir: string): string {\n const title = ` The following paths are according to env(s) ${chalk.bold(\n envsWrittenConfigFile.envIds.join(', ')\n )}`;\n const filePath = relative(wsDir, envsWrittenConfigFile.configFile.filePath);\n return `${title}\\n ${filePath}`;\n}\nfunction getExtendingConfigFilesOutput(extendingConfigFiles: EnvsWrittenExtendingConfigFiles, wsDir: string): string {\n const title = chalk.magenta(` Extending config files`);\n\n const extendingConfigFilesOutput = extendingConfigFiles\n .map((envsWrittenExtendingConfigFile) =>\n getEnvGroupExtendingConfigFilesOutput(envsWrittenExtendingConfigFile, wsDir)\n )\n .join('\\n\\n');\n return `${title}\\n${extendingConfigFilesOutput}`;\n}\nfunction getEnvGroupExtendingConfigFilesOutput(\n envsWrittenExtendingConfigFile: EnvsWrittenExtendingConfigFile,\n wsDir: string\n): string {\n const title = ` The following paths are according to env(s) ${chalk.bold(\n envsWrittenExtendingConfigFile.envIds.join(', ')\n )}`;\n const extendingConfigFile = envsWrittenExtendingConfigFile.extendingConfigFile;\n const paths = extendingConfigFile.filePaths\n .map((p) => ` ${relative(wsDir, p)} --> ${relative(wsDir, extendingConfigFile.extendingTarget.filePath)}`)\n .join('\\n ');\n return `${title}\\n ${paths}`;\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const WRITE_TITLE: (total: number) => string;
2
+ export declare const SUMMARY = "bit writes configuration files in different nested locations in your workspace to meet the configuration needs of different components.\nIDE is now in-sync with component configuration";
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.WRITE_TITLE = exports.SUMMARY = void 0;
7
+ const WRITE_TITLE = total => `${total} config files added to workspace`;
8
+ exports.WRITE_TITLE = WRITE_TITLE;
9
+ const SUMMARY = `bit writes configuration files in different nested locations in your workspace to meet the configuration needs of different components.
10
+ IDE is now in-sync with component configuration`;
11
+ exports.SUMMARY = SUMMARY;
12
+
13
+ //# sourceMappingURL=write-outputs-texts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WRITE_TITLE","total","SUMMARY"],"sources":["write-outputs-texts.ts"],"sourcesContent":["export const WRITE_TITLE = (total: number) => `${total} config files added to workspace`;\n\nexport const SUMMARY = `bit writes configuration files in different nested locations in your workspace to meet the configuration needs of different components.\nIDE is now in-sync with component configuration`;\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAIC,KAAa,IAAM,GAAEA,KAAM,kCAAiC;AAAC;AAElF,MAAMC,OAAO,GAAI;AACxB,gDAAgD;AAAC"}
@@ -1,5 +1,5 @@
1
1
  ;
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace-config-files@0.0.21/dist/workspace-config-files.docs.mdx';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace-config-files@0.0.23/dist/workspace-config-files.docs.mdx';
3
3
 
4
4
  export const compositions = [];
5
5
  export const overview = [overview_0];
@@ -74,11 +74,13 @@ export declare type AspectWritersResults = {
74
74
  aspectId: string;
75
75
  writersResult: OneConfigFileWriterResult[];
76
76
  totalWrittenFiles: number;
77
+ totalExtendingConfigFiles: number;
77
78
  };
78
79
  export declare type WriteConfigFilesResult = {
79
80
  cleanResults?: string[];
80
81
  writeResults: {
81
82
  totalWrittenFiles: number;
83
+ totalExtendingConfigFiles: number;
82
84
  aspectsWritersResults: AspectWritersResults[];
83
85
  };
84
86
  wsDir: string;
@@ -189,9 +189,13 @@ class WorkspaceConfigFilesMain {
189
189
  const totalWrittenFiles = aspectsWritersResults.reduce((acc, curr) => {
190
190
  return acc + curr.totalWrittenFiles;
191
191
  }, 0);
192
+ const totalExtendingConfigFiles = aspectsWritersResults.reduce((acc, curr) => {
193
+ return acc + curr.totalExtendingConfigFiles;
194
+ }, 0);
192
195
  const writeResults = {
193
196
  aspectsWritersResults,
194
- totalWrittenFiles
197
+ totalWrittenFiles,
198
+ totalExtendingConfigFiles
195
199
  };
196
200
  return {
197
201
  writeResults,
@@ -246,10 +250,14 @@ class WorkspaceConfigFilesMain {
246
250
  const totalWrittenFiles = compactResults.reduce((acc, curr) => {
247
251
  return acc + curr.totalWrittenFiles;
248
252
  }, 0);
253
+ const totalExtendingConfigFiles = compactResults.reduce((acc, curr) => {
254
+ return acc + curr.totalExtendingConfigFiles;
255
+ }, 0);
249
256
  return {
250
257
  aspectId,
251
258
  writersResult: compactResults,
252
- totalWrittenFiles
259
+ totalWrittenFiles,
260
+ totalExtendingConfigFiles
253
261
  };
254
262
  }
255
263
  async handleOneConfigFileWriter(configWriter, envCompsDirsMap, configsRootDir, envsExecutionContext, opts) {
@@ -474,7 +482,7 @@ class WorkspaceConfigFilesMain {
474
482
  async promptForCleaning(paths) {
475
483
  this.logger.clearStatusLine();
476
484
  const ok = await (0, _yesno().default)({
477
- question: `${_chalk().default.underline('The following paths will be deleted:')}
485
+ question: `${_chalk().default.underline('The following files will be deleted:')}
478
486
  ${paths.join('\n')}
479
487
  ${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
480
488
  });
@@ -1 +1 @@
1
- {"version":3,"names":["WorkspaceConfigFilesMain","constructor","configWriterSlot","workspace","envs","logger","writeConfigFiles","options","execContext","getExecContext","cleanResults","clean","aspectsWritersResults","write","err","info","WriteConfigFilesFailed","totalWrittenFiles","reduce","acc","curr","writeResults","wsDir","path","cleanConfigFiles","listConfigWriters","slotEntries","toArray","result","aspectId","configWriters","map","configWriter","concat","envsExecutionContext","opts","envCompDirsMap","getEnvComponentsDirsMap","configsRootDir","getConfigsRootDir","results","pMapSeries","aspectEntry","handleOneAspectWriter","envCompsDirsMap","writers","includes","name","cliName","undefined","handleOneConfigFileWriter","compactResults","compact","writersResult","writtenConfigFilesMap","extendingConfigFilesMap","Object","entries","envId","envMapValue","executionContext","find","context","id","Error","writtenConfigFiles","handleRealConfigFiles","buildExtendingConfigFilesMap","keys","length","configFiles","totalConfigFiles","extendingConfigFiles","totalExtendingConfigFiles","fileHashPerDedupedPaths","dedupePaths","writeExtendingConfigFiles","postProcessExtendingConfigFiles","workspaceDir","writtenExtendingConfigFiles","dryRun","extendingConfigFile","filePaths","values","calculatedConfigFiles","calcConfigFiles","env","Promise","all","configFile","writtenConfigFile","writeConfigFile","hash","envIds","push","postProcessConfigFiles","sha1","content","format","filePath","join","fs","outputFile","res","finalResult","fileHash","paths","envsConfigFile","writtenPaths","targetPath","useAbsPaths","extendingTarget","relative","dirname","replace","generateExtendingFile","args","getCacheDir","rootDir","components","list","runtime","createEnvironment","getEnvExecutionContext","envExecution","envRuntime","toString","value","c","componentDir","getConfigWriters","getFlatConfigWriters","silent","filteredConfigWriters","filter","patterns","currPaths","globby","sync","cwd","dot","onlyFiles","ignore","filteredPaths","fullPath","isBitGenerated","flat","promptForCleaning","deleteFiles","clearStatusLine","ok","yesno","question","chalk","underline","bold","PromptCanceled","f","remove","registerConfigWriter","configWriterEntries","register","provider","cli","loggerAspect","_config","createLogger","WorkspaceConfigFilesAspect","workspaceConfigFilesMain","wsConfigCmd","WsConfigCmd","commands","WsConfigWriteCmd","WsConfigCleanCmd","WsConfigListCmd","Slot","withType","CLIAspect","WorkspaceAspect","EnvsAspect","LoggerAspect","MainRuntime","addRuntime"],"sources":["workspace-config-files.main.runtime.ts"],"sourcesContent":["import format from 'string-format';\nimport { sha1 } from '@teambit/legacy/dist/utils';\nimport fs from 'fs-extra';\nimport { dirname, join, relative } from 'path';\nimport globby from 'globby';\nimport chalk from 'chalk';\nimport { PromptCanceled } from '@teambit/legacy/dist/prompts/exceptions';\nimport pMapSeries from 'p-map-series';\nimport yesno from 'yesno';\nimport { compact } from 'lodash';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { Workspace } from '@teambit/workspace';\nimport { Environment, EnvsAspect, ExecutionContext } from '@teambit/envs';\nimport type { EnvsMain } from '@teambit/envs';\nimport { Logger, LoggerAspect } from '@teambit/logger';\nimport type { LoggerMain } from '@teambit/logger';\nimport { WorkspaceConfigFilesAspect } from './workspace-config-files.aspect';\nimport { ConfigFile, ConfigWriterEntry, ExtendingConfigFile } from './config-writer-entry';\nimport { WsConfigCleanCmd, WsConfigCmd, WsConfigListCmd, WsConfigWriteCmd } from './ws-config.cmd';\nimport { DedupedPaths, dedupePaths } from './dedup-paths';\nimport WriteConfigFilesFailed from './exceptions/write-failed';\n\nexport type ConfigWriterSlot = SlotRegistry<ConfigWriterEntry[]>;\n\nexport type ConfigWritersList = Array<{\n aspectId: string;\n configWriter: ConfigWriterEntry;\n}>;\n\nexport type CleanConfigFilesOptions = {\n silent?: boolean; // no prompt\n dryRun?: boolean;\n writers?: string[];\n};\n\nexport type WriteConfigFilesOptions = {\n clean?: boolean;\n silent?: boolean; // no prompt\n dedupe?: boolean;\n dryRun?: boolean;\n writers?: string[];\n};\n\nexport type WrittenConfigFile = Required<ConfigFile> & {\n filePath: string;\n};\n\nexport type WrittenExtendingConfigFile = ExtendingConfigFile & {\n filePaths: string[];\n};\n\nexport type WrittenConfigFilesMap = {\n [configFileHash: string]: {\n envIds: string[];\n configFile: WrittenConfigFile;\n };\n};\n\nexport type ExtendingConfigFilesMap = {\n [configFileHash: string]: {\n envIds: string[];\n extendingConfigFile: Required<ExtendingConfigFile>;\n };\n};\n\nexport type CompPathExtendingHashMap = { [compPath: string]: string };\n\nexport type EnvMapValue = { env: Environment; id: string[]; paths: string[] };\nexport type EnvCompsDirsMap = { [envId: string]: EnvMapValue };\n\nexport type EnvsWrittenConfigFile = { envIds: string[]; configFile: WrittenConfigFile };\nexport type EnvsWrittenConfigFiles = Array<EnvsWrittenConfigFile>;\n\nexport type EnvsWrittenExtendingConfigFile = { envIds: string[]; extendingConfigFile: WrittenExtendingConfigFile };\nexport type EnvsWrittenExtendingConfigFiles = Array<EnvsWrittenExtendingConfigFile>;\n\nexport type OneConfigFileWriterResult = {\n name: string;\n totalWrittenFiles: number;\n configFiles: EnvsWrittenConfigFiles;\n totalConfigFiles: number;\n extendingConfigFiles: EnvsWrittenExtendingConfigFiles;\n totalExtendingConfigFiles: number;\n};\n\nexport type AspectWritersResults = {\n aspectId: string;\n writersResult: OneConfigFileWriterResult[];\n totalWrittenFiles: number;\n};\n\nexport type WriteConfigFilesResult = {\n cleanResults?: string[];\n writeResults: { totalWrittenFiles: number; aspectsWritersResults: AspectWritersResults[] };\n wsDir: string;\n};\n\nexport class WorkspaceConfigFilesMain {\n constructor(\n readonly configWriterSlot: ConfigWriterSlot,\n private workspace: Workspace,\n private envs: EnvsMain,\n private logger: Logger\n ) {}\n\n /**\n * It writes the configuration files for the workspace\n * for example: tsconfig, eslint config and prettier config files.\n * @param {WriteConfigFilesOptions} options - WriteConfigFilesOptions = {}\n * @returns An object with the following properties:\n * - writeResults: An object with the following properties:\n * - aspectsWritersResults: An array of objects with the following properties:\n * - aspect: The aspect that was written\n * - totalWrittenFiles: The number of files that were written\n * - totalWrittenFiles: The total number of files that were written\n * - cleanResults: array of deleted paths\n */\n async writeConfigFiles(options: WriteConfigFilesOptions = {}): Promise<WriteConfigFilesResult> {\n const execContext = await this.getExecContext();\n\n let cleanResults: string[] | undefined;\n if (options.clean) {\n cleanResults = await this.clean(options);\n }\n\n let aspectsWritersResults;\n try {\n aspectsWritersResults = await this.write(execContext, options);\n } catch (err) {\n this.logger.info('writeConfigFiles failed', err);\n throw new WriteConfigFilesFailed();\n }\n const totalWrittenFiles = aspectsWritersResults.reduce((acc, curr) => {\n return acc + curr.totalWrittenFiles;\n }, 0);\n const writeResults = { aspectsWritersResults, totalWrittenFiles };\n\n return { writeResults, cleanResults, wsDir: this.workspace.path };\n }\n\n /**\n * It cleans (delete) the config files from the workspace.\n * This will check each file and will only delete it in case it was generated by bit\n * @param {CleanConfigFilesOptions} options - CleanConfigFilesOptions = {}\n * @returns An array of strings.\n */\n async cleanConfigFiles(options: CleanConfigFilesOptions = {}): Promise<string[]> {\n // const execContext = await this.getExecContext();\n const cleanResults = await this.clean(options);\n return cleanResults;\n }\n\n /**\n * It returns a list of all the config writers that have been registered with the config writer slot\n * @returns An array of objects with aspectId and configWriter properties.\n */\n listConfigWriters(): ConfigWritersList {\n const slotEntries = this.configWriterSlot.toArray();\n const result: ConfigWritersList = slotEntries.reduce((acc, [aspectId, configWriters]) => {\n const curr = configWriters.map((configWriter) => ({ aspectId, configWriter }));\n return acc.concat(curr);\n }, [] as ConfigWritersList);\n return result;\n }\n\n private async write(\n envsExecutionContext: ExecutionContext[],\n opts: WriteConfigFilesOptions\n ): Promise<AspectWritersResults[]> {\n const envCompDirsMap = this.getEnvComponentsDirsMap(envsExecutionContext);\n const slotEntries = this.configWriterSlot.toArray();\n const configsRootDir = this.getConfigsRootDir();\n const results = await pMapSeries(slotEntries, async (aspectEntry) => {\n const [aspectId, configWriters] = aspectEntry;\n return this.handleOneAspectWriter(\n aspectId,\n configWriters,\n envCompDirsMap,\n configsRootDir,\n envsExecutionContext,\n opts\n );\n });\n return results;\n }\n\n private async handleOneAspectWriter(\n aspectId: string,\n configWriters: ConfigWriterEntry[],\n envCompsDirsMap: EnvCompsDirsMap,\n configsRootDir: string,\n envsExecutionContext: ExecutionContext[],\n opts: WriteConfigFilesOptions\n ): Promise<AspectWritersResults> {\n const results = await pMapSeries(configWriters, async (configWriter) => {\n if (opts.writers && !(opts.writers.includes(configWriter.name) || opts.writers.includes(configWriter.cliName)))\n return undefined;\n return this.handleOneConfigFileWriter(configWriter, envCompsDirsMap, configsRootDir, envsExecutionContext, opts);\n });\n const compactResults = compact(results);\n const totalWrittenFiles = compactResults.reduce((acc, curr) => {\n return acc + curr.totalWrittenFiles;\n }, 0);\n return { aspectId, writersResult: compactResults, totalWrittenFiles };\n }\n\n private async handleOneConfigFileWriter(\n configWriter: ConfigWriterEntry,\n envCompsDirsMap: EnvCompsDirsMap,\n configsRootDir: string,\n envsExecutionContext: ExecutionContext[],\n opts: WriteConfigFilesOptions\n ): Promise<OneConfigFileWriterResult> {\n const writtenConfigFilesMap: WrittenConfigFilesMap = {};\n const extendingConfigFilesMap: ExtendingConfigFilesMap = {};\n await pMapSeries(Object.entries(envCompsDirsMap), async ([envId, envMapValue]) => {\n const executionContext = envsExecutionContext.find((context) => context.id === envId);\n if (!executionContext) throw new Error(`failed finding execution context for env ${envId}`);\n const writtenConfigFiles = await this.handleRealConfigFiles(\n envId,\n envMapValue,\n executionContext,\n configWriter,\n configsRootDir,\n writtenConfigFilesMap,\n opts\n );\n if (writtenConfigFiles) {\n this.buildExtendingConfigFilesMap(\n configWriter,\n writtenConfigFiles,\n envId,\n extendingConfigFilesMap,\n envCompsDirsMap,\n configsRootDir,\n opts\n );\n }\n });\n if (!writtenConfigFilesMap || Object.keys(writtenConfigFilesMap).length === 0) {\n return {\n name: configWriter.name,\n configFiles: [],\n totalConfigFiles: 0,\n totalWrittenFiles: 0,\n extendingConfigFiles: [],\n totalExtendingConfigFiles: 0,\n };\n }\n\n const fileHashPerDedupedPaths = dedupePaths(extendingConfigFilesMap, envCompsDirsMap);\n const extendingConfigFiles = await this.writeExtendingConfigFiles(\n extendingConfigFilesMap,\n fileHashPerDedupedPaths,\n opts\n );\n if (configWriter.postProcessExtendingConfigFiles) {\n await configWriter.postProcessExtendingConfigFiles({\n workspaceDir: this.workspace.path,\n configsRootDir,\n writtenExtendingConfigFiles: extendingConfigFiles,\n envCompsDirsMap,\n dryRun: !!opts.dryRun,\n });\n }\n const totalExtendingConfigFiles = extendingConfigFiles.reduce(\n (acc, curr) => acc + curr.extendingConfigFile.filePaths.length,\n 0\n );\n const configFiles = Object.values(writtenConfigFilesMap);\n const totalConfigFiles = Object.keys(writtenConfigFilesMap).length;\n const totalWrittenFiles = totalConfigFiles + totalExtendingConfigFiles;\n const result: OneConfigFileWriterResult = {\n name: configWriter.name,\n configFiles,\n totalWrittenFiles,\n totalConfigFiles: Object.keys(writtenConfigFilesMap).length,\n extendingConfigFiles,\n totalExtendingConfigFiles,\n };\n return result;\n }\n\n private async handleRealConfigFiles(\n envId: string,\n envMapValue: EnvMapValue,\n executionContext: ExecutionContext,\n configWriter: ConfigWriterEntry,\n configsRootDir: string,\n writtenConfigFilesMap: WrittenConfigFilesMap,\n opts: WriteConfigFilesOptions\n ): Promise<WrittenConfigFile[] | undefined> {\n const calculatedConfigFiles = configWriter.calcConfigFiles(executionContext, envMapValue.env, configsRootDir);\n if (!calculatedConfigFiles) return undefined;\n const writtenConfigFiles = await Promise.all(\n calculatedConfigFiles.map(async (configFile) => {\n const writtenConfigFile = await this.writeConfigFile(configFile, configsRootDir, opts);\n if (!writtenConfigFilesMap[writtenConfigFile.hash]) {\n writtenConfigFilesMap[writtenConfigFile.hash] = { configFile: writtenConfigFile, envIds: [] };\n }\n writtenConfigFilesMap[writtenConfigFile.hash].envIds.push(envId);\n return writtenConfigFile;\n })\n );\n if (configWriter.postProcessConfigFiles) {\n await configWriter.postProcessConfigFiles(writtenConfigFiles, executionContext, envMapValue, {\n dryRun: !!opts.dryRun,\n });\n }\n return writtenConfigFiles;\n }\n\n private async writeConfigFile(\n configFile: ConfigFile,\n configsRootDir: string,\n opts: WriteConfigFilesOptions\n ): Promise<WrittenConfigFile> {\n const hash = configFile.hash || sha1(configFile.content);\n const name = format(configFile.name, { hash });\n const filePath = join(configsRootDir, name);\n if (!opts.dryRun) {\n // const exists = await fs.pathExists(filePath);\n // if (!exists) {\n await fs.outputFile(filePath, configFile.content);\n // }\n }\n const res = {\n name,\n hash,\n filePath,\n content: configFile.content,\n };\n return res;\n }\n\n private async writeExtendingConfigFiles(\n extendingConfigFilesMap: ExtendingConfigFilesMap,\n fileHashPerDedupedPaths: DedupedPaths,\n opts: WriteConfigFilesOptions\n ): Promise<EnvsWrittenExtendingConfigFiles> {\n const finalResult: EnvsWrittenExtendingConfigFiles = await Promise.all(\n fileHashPerDedupedPaths.map(async ({ fileHash, paths }) => {\n const envsConfigFile = extendingConfigFilesMap[fileHash];\n const configFile = envsConfigFile.extendingConfigFile;\n const hash = configFile.hash || sha1(configFile.content);\n const name = format(configFile.name, { hash });\n const writtenPaths = await Promise.all(\n paths.map(async (path) => {\n const filePath = join(this.workspace.path, path, name);\n const targetPath = configFile.useAbsPaths\n ? configFile.extendingTarget.filePath\n : `./${relative(dirname(filePath), configFile.extendingTarget.filePath)}`;\n const content = configFile.content.replace(`{${configFile.extendingTarget.name}}`, targetPath);\n if (!opts.dryRun) {\n await fs.outputFile(filePath, content);\n }\n return filePath;\n })\n );\n const res: EnvsWrittenExtendingConfigFile = {\n envIds: envsConfigFile.envIds,\n extendingConfigFile: {\n name,\n hash,\n content: configFile.content,\n extendingTarget: configFile.extendingTarget,\n filePaths: writtenPaths,\n },\n };\n return res;\n })\n );\n return finalResult;\n }\n\n private buildExtendingConfigFilesMap(\n configWriter: ConfigWriterEntry,\n writtenConfigFiles: WrittenConfigFile[],\n envId: string,\n extendingConfigFilesMap: ExtendingConfigFilesMap,\n envCompsDirsMap: EnvCompsDirsMap,\n configsRootDir: string,\n opts: WriteConfigFilesOptions\n ) {\n const extendingConfigFile = this.generateExtendingFile(\n configWriter,\n writtenConfigFiles,\n envCompsDirsMap,\n configsRootDir,\n opts\n );\n if (!extendingConfigFile) return;\n if (!extendingConfigFilesMap[extendingConfigFile.hash]) {\n extendingConfigFilesMap[extendingConfigFile.hash] = { extendingConfigFile, envIds: [] };\n }\n extendingConfigFilesMap[extendingConfigFile.hash].envIds.push(envId);\n }\n\n private generateExtendingFile(\n configWriter: ConfigWriterEntry,\n writtenConfigFiles,\n envCompsDirsMap: EnvCompsDirsMap,\n configsRootDir: string,\n opts: WriteConfigFilesOptions\n ): Required<ExtendingConfigFile> | undefined {\n const args = {\n workspaceDir: this.workspace.path,\n configsRootDir,\n writtenConfigFiles,\n envCompsDirsMap,\n dryRun: !!opts.dryRun,\n };\n const extendingConfigFile = configWriter.generateExtendingFile(args);\n if (!extendingConfigFile) return undefined;\n const hash = extendingConfigFile.hash || sha1(extendingConfigFile.content);\n return {\n ...extendingConfigFile,\n useAbsPaths: !!extendingConfigFile.useAbsPaths,\n hash,\n };\n }\n\n private getConfigsRootDir() {\n return this.getCacheDir(this.workspace.path);\n }\n\n private getCacheDir(rootDir): string {\n return join(rootDir, 'node_modules', '.cache');\n }\n\n private async getExecContext(): Promise<ExecutionContext[]> {\n const components = await this.workspace.list();\n const runtime = await this.envs.createEnvironment(components);\n const execContext = runtime.getEnvExecutionContext();\n return execContext;\n }\n\n private getEnvComponentsDirsMap(envsExecutionContext: ExecutionContext[]): EnvCompsDirsMap {\n const envCompDirsMap = envsExecutionContext.reduce((acc, envExecution) => {\n const envRuntime = envExecution.envRuntime;\n const envId = envRuntime.id.toString();\n const value = {\n id: envRuntime.id,\n env: envRuntime.env,\n paths: envRuntime.components.map((c) => this.workspace.componentDir(c.id, undefined, { relative: true })),\n };\n acc[envId] = value;\n return acc;\n }, {});\n return envCompDirsMap;\n }\n\n private getConfigWriters(): [string, ConfigWriterEntry[]][] {\n return this.configWriterSlot.toArray();\n }\n\n private getFlatConfigWriters(): ConfigWriterEntry[] {\n return this.getConfigWriters().reduce((acc: ConfigWriterEntry[], [, value]) => {\n acc = acc.concat(value);\n return acc;\n }, []);\n }\n\n /**\n * Clean config files written by the config-writers\n * @param envsExecutionContext\n * @param param1\n * @returns Array of paths of deleted config files\n */\n async clean({ dryRun, silent, writers }: WriteConfigFilesOptions): Promise<string[]> {\n const configWriters = this.getFlatConfigWriters();\n const filteredConfigWriters = writers\n ? configWriters.filter(\n (configWriter) => writers.includes(configWriter.name) || writers.includes(configWriter.cliName)\n )\n : configWriters;\n const paths = filteredConfigWriters\n .map((configWriter) => {\n const patterns = configWriter.patterns;\n const currPaths = globby.sync(patterns, {\n cwd: this.workspace.path,\n dot: true,\n onlyFiles: true,\n ignore: ['**/node_modules/**'],\n });\n const filteredPaths = currPaths.filter((path) => {\n const fullPath = join(this.workspace.path, path);\n return configWriter.isBitGenerated ? configWriter.isBitGenerated(fullPath) : true;\n });\n return filteredPaths;\n })\n .flat();\n if (dryRun) return paths;\n if (!silent) await this.promptForCleaning(paths);\n await this.deleteFiles(paths);\n return paths;\n }\n\n private async promptForCleaning(paths: string[]) {\n this.logger.clearStatusLine();\n const ok = await yesno({\n question: `${chalk.underline('The following paths will be deleted:')}\n${paths.join('\\n')}\n${chalk.bold('Do you want to continue? [yes(y)/no(n)]')}`,\n });\n if (!ok) {\n throw new PromptCanceled();\n }\n }\n\n private async deleteFiles(paths: string[]) {\n await Promise.all(paths.map((f) => fs.remove(join(this.workspace.path, f))));\n }\n\n registerConfigWriter(...configWriterEntries: ConfigWriterEntry[]) {\n this.configWriterSlot.register(configWriterEntries);\n }\n\n static slots = [Slot.withType<ConfigWriterEntry[]>()];\n // define your aspect dependencies here.\n // in case you need to use another aspect API.\n static dependencies = [CLIAspect, WorkspaceAspect, EnvsAspect, LoggerAspect];\n\n static runtime = MainRuntime;\n\n static async provider(\n [cli, workspace, envs, loggerAspect]: [CLIMain, Workspace, EnvsMain, LoggerMain],\n _config,\n [configWriterSlot]: [ConfigWriterSlot]\n ) {\n const logger = loggerAspect.createLogger(WorkspaceConfigFilesAspect.id);\n const workspaceConfigFilesMain = new WorkspaceConfigFilesMain(configWriterSlot, workspace, envs, logger);\n const wsConfigCmd = new WsConfigCmd();\n wsConfigCmd.commands = [\n new WsConfigWriteCmd(workspaceConfigFilesMain),\n new WsConfigCleanCmd(workspaceConfigFilesMain),\n new WsConfigListCmd(workspaceConfigFilesMain),\n ];\n cli.register(wsConfigCmd);\n return workspaceConfigFilesMain;\n }\n}\n\nWorkspaceConfigFilesAspect.addRuntime(WorkspaceConfigFilesMain);\n\nexport default WorkspaceConfigFilesMain;\n"],"mappings":"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"}
1
+ {"version":3,"names":["WorkspaceConfigFilesMain","constructor","configWriterSlot","workspace","envs","logger","writeConfigFiles","options","execContext","getExecContext","cleanResults","clean","aspectsWritersResults","write","err","info","WriteConfigFilesFailed","totalWrittenFiles","reduce","acc","curr","totalExtendingConfigFiles","writeResults","wsDir","path","cleanConfigFiles","listConfigWriters","slotEntries","toArray","result","aspectId","configWriters","map","configWriter","concat","envsExecutionContext","opts","envCompDirsMap","getEnvComponentsDirsMap","configsRootDir","getConfigsRootDir","results","pMapSeries","aspectEntry","handleOneAspectWriter","envCompsDirsMap","writers","includes","name","cliName","undefined","handleOneConfigFileWriter","compactResults","compact","writersResult","writtenConfigFilesMap","extendingConfigFilesMap","Object","entries","envId","envMapValue","executionContext","find","context","id","Error","writtenConfigFiles","handleRealConfigFiles","buildExtendingConfigFilesMap","keys","length","configFiles","totalConfigFiles","extendingConfigFiles","fileHashPerDedupedPaths","dedupePaths","writeExtendingConfigFiles","postProcessExtendingConfigFiles","workspaceDir","writtenExtendingConfigFiles","dryRun","extendingConfigFile","filePaths","values","calculatedConfigFiles","calcConfigFiles","env","Promise","all","configFile","writtenConfigFile","writeConfigFile","hash","envIds","push","postProcessConfigFiles","sha1","content","format","filePath","join","fs","outputFile","res","finalResult","fileHash","paths","envsConfigFile","writtenPaths","targetPath","useAbsPaths","extendingTarget","relative","dirname","replace","generateExtendingFile","args","getCacheDir","rootDir","components","list","runtime","createEnvironment","getEnvExecutionContext","envExecution","envRuntime","toString","value","c","componentDir","getConfigWriters","getFlatConfigWriters","silent","filteredConfigWriters","filter","patterns","currPaths","globby","sync","cwd","dot","onlyFiles","ignore","filteredPaths","fullPath","isBitGenerated","flat","promptForCleaning","deleteFiles","clearStatusLine","ok","yesno","question","chalk","underline","bold","PromptCanceled","f","remove","registerConfigWriter","configWriterEntries","register","provider","cli","loggerAspect","_config","createLogger","WorkspaceConfigFilesAspect","workspaceConfigFilesMain","wsConfigCmd","WsConfigCmd","commands","WsConfigWriteCmd","WsConfigCleanCmd","WsConfigListCmd","Slot","withType","CLIAspect","WorkspaceAspect","EnvsAspect","LoggerAspect","MainRuntime","addRuntime"],"sources":["workspace-config-files.main.runtime.ts"],"sourcesContent":["import format from 'string-format';\nimport { sha1 } from '@teambit/legacy/dist/utils';\nimport fs from 'fs-extra';\nimport { dirname, join, relative } from 'path';\nimport globby from 'globby';\nimport chalk from 'chalk';\nimport { PromptCanceled } from '@teambit/legacy/dist/prompts/exceptions';\nimport pMapSeries from 'p-map-series';\nimport yesno from 'yesno';\nimport { compact } from 'lodash';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { Workspace } from '@teambit/workspace';\nimport { Environment, EnvsAspect, ExecutionContext } from '@teambit/envs';\nimport type { EnvsMain } from '@teambit/envs';\nimport { Logger, LoggerAspect } from '@teambit/logger';\nimport type { LoggerMain } from '@teambit/logger';\nimport { WorkspaceConfigFilesAspect } from './workspace-config-files.aspect';\nimport { ConfigFile, ConfigWriterEntry, ExtendingConfigFile } from './config-writer-entry';\nimport { WsConfigCleanCmd, WsConfigCmd, WsConfigListCmd, WsConfigWriteCmd } from './ws-config.cmd';\nimport { DedupedPaths, dedupePaths } from './dedup-paths';\nimport WriteConfigFilesFailed from './exceptions/write-failed';\n\nexport type ConfigWriterSlot = SlotRegistry<ConfigWriterEntry[]>;\n\nexport type ConfigWritersList = Array<{\n aspectId: string;\n configWriter: ConfigWriterEntry;\n}>;\n\nexport type CleanConfigFilesOptions = {\n silent?: boolean; // no prompt\n dryRun?: boolean;\n writers?: string[];\n};\n\nexport type WriteConfigFilesOptions = {\n clean?: boolean;\n silent?: boolean; // no prompt\n dedupe?: boolean;\n dryRun?: boolean;\n writers?: string[];\n};\n\nexport type WrittenConfigFile = Required<ConfigFile> & {\n filePath: string;\n};\n\nexport type WrittenExtendingConfigFile = ExtendingConfigFile & {\n filePaths: string[];\n};\n\nexport type WrittenConfigFilesMap = {\n [configFileHash: string]: {\n envIds: string[];\n configFile: WrittenConfigFile;\n };\n};\n\nexport type ExtendingConfigFilesMap = {\n [configFileHash: string]: {\n envIds: string[];\n extendingConfigFile: Required<ExtendingConfigFile>;\n };\n};\n\nexport type CompPathExtendingHashMap = { [compPath: string]: string };\n\nexport type EnvMapValue = { env: Environment; id: string[]; paths: string[] };\nexport type EnvCompsDirsMap = { [envId: string]: EnvMapValue };\n\nexport type EnvsWrittenConfigFile = { envIds: string[]; configFile: WrittenConfigFile };\nexport type EnvsWrittenConfigFiles = Array<EnvsWrittenConfigFile>;\n\nexport type EnvsWrittenExtendingConfigFile = { envIds: string[]; extendingConfigFile: WrittenExtendingConfigFile };\nexport type EnvsWrittenExtendingConfigFiles = Array<EnvsWrittenExtendingConfigFile>;\n\nexport type OneConfigFileWriterResult = {\n name: string;\n totalWrittenFiles: number;\n configFiles: EnvsWrittenConfigFiles;\n totalConfigFiles: number;\n extendingConfigFiles: EnvsWrittenExtendingConfigFiles;\n totalExtendingConfigFiles: number;\n};\n\nexport type AspectWritersResults = {\n aspectId: string;\n writersResult: OneConfigFileWriterResult[];\n totalWrittenFiles: number;\n totalExtendingConfigFiles: number;\n};\n\nexport type WriteConfigFilesResult = {\n cleanResults?: string[];\n writeResults: {\n totalWrittenFiles: number;\n totalExtendingConfigFiles: number;\n aspectsWritersResults: AspectWritersResults[];\n };\n wsDir: string;\n};\n\nexport class WorkspaceConfigFilesMain {\n constructor(\n readonly configWriterSlot: ConfigWriterSlot,\n private workspace: Workspace,\n private envs: EnvsMain,\n private logger: Logger\n ) {}\n\n /**\n * It writes the configuration files for the workspace\n * for example: tsconfig, eslint config and prettier config files.\n * @param {WriteConfigFilesOptions} options - WriteConfigFilesOptions = {}\n * @returns An object with the following properties:\n * - writeResults: An object with the following properties:\n * - aspectsWritersResults: An array of objects with the following properties:\n * - aspect: The aspect that was written\n * - totalWrittenFiles: The number of files that were written\n * - totalWrittenFiles: The total number of files that were written\n * - cleanResults: array of deleted paths\n */\n async writeConfigFiles(options: WriteConfigFilesOptions = {}): Promise<WriteConfigFilesResult> {\n const execContext = await this.getExecContext();\n\n let cleanResults: string[] | undefined;\n if (options.clean) {\n cleanResults = await this.clean(options);\n }\n\n let aspectsWritersResults;\n try {\n aspectsWritersResults = await this.write(execContext, options);\n } catch (err) {\n this.logger.info('writeConfigFiles failed', err);\n throw new WriteConfigFilesFailed();\n }\n const totalWrittenFiles = aspectsWritersResults.reduce((acc, curr) => {\n return acc + curr.totalWrittenFiles;\n }, 0);\n const totalExtendingConfigFiles = aspectsWritersResults.reduce((acc, curr) => {\n return acc + curr.totalExtendingConfigFiles;\n }, 0);\n const writeResults = { aspectsWritersResults, totalWrittenFiles, totalExtendingConfigFiles };\n\n return { writeResults, cleanResults, wsDir: this.workspace.path };\n }\n\n /**\n * It cleans (delete) the config files from the workspace.\n * This will check each file and will only delete it in case it was generated by bit\n * @param {CleanConfigFilesOptions} options - CleanConfigFilesOptions = {}\n * @returns An array of strings.\n */\n async cleanConfigFiles(options: CleanConfigFilesOptions = {}): Promise<string[]> {\n // const execContext = await this.getExecContext();\n const cleanResults = await this.clean(options);\n return cleanResults;\n }\n\n /**\n * It returns a list of all the config writers that have been registered with the config writer slot\n * @returns An array of objects with aspectId and configWriter properties.\n */\n listConfigWriters(): ConfigWritersList {\n const slotEntries = this.configWriterSlot.toArray();\n const result: ConfigWritersList = slotEntries.reduce((acc, [aspectId, configWriters]) => {\n const curr = configWriters.map((configWriter) => ({ aspectId, configWriter }));\n return acc.concat(curr);\n }, [] as ConfigWritersList);\n return result;\n }\n\n private async write(\n envsExecutionContext: ExecutionContext[],\n opts: WriteConfigFilesOptions\n ): Promise<AspectWritersResults[]> {\n const envCompDirsMap = this.getEnvComponentsDirsMap(envsExecutionContext);\n const slotEntries = this.configWriterSlot.toArray();\n const configsRootDir = this.getConfigsRootDir();\n const results = await pMapSeries(slotEntries, async (aspectEntry) => {\n const [aspectId, configWriters] = aspectEntry;\n return this.handleOneAspectWriter(\n aspectId,\n configWriters,\n envCompDirsMap,\n configsRootDir,\n envsExecutionContext,\n opts\n );\n });\n return results;\n }\n\n private async handleOneAspectWriter(\n aspectId: string,\n configWriters: ConfigWriterEntry[],\n envCompsDirsMap: EnvCompsDirsMap,\n configsRootDir: string,\n envsExecutionContext: ExecutionContext[],\n opts: WriteConfigFilesOptions\n ): Promise<AspectWritersResults> {\n const results = await pMapSeries(configWriters, async (configWriter) => {\n if (opts.writers && !(opts.writers.includes(configWriter.name) || opts.writers.includes(configWriter.cliName)))\n return undefined;\n return this.handleOneConfigFileWriter(configWriter, envCompsDirsMap, configsRootDir, envsExecutionContext, opts);\n });\n const compactResults = compact(results);\n const totalWrittenFiles = compactResults.reduce((acc, curr) => {\n return acc + curr.totalWrittenFiles;\n }, 0);\n const totalExtendingConfigFiles = compactResults.reduce((acc, curr) => {\n return acc + curr.totalExtendingConfigFiles;\n }, 0);\n return { aspectId, writersResult: compactResults, totalWrittenFiles, totalExtendingConfigFiles };\n }\n\n private async handleOneConfigFileWriter(\n configWriter: ConfigWriterEntry,\n envCompsDirsMap: EnvCompsDirsMap,\n configsRootDir: string,\n envsExecutionContext: ExecutionContext[],\n opts: WriteConfigFilesOptions\n ): Promise<OneConfigFileWriterResult> {\n const writtenConfigFilesMap: WrittenConfigFilesMap = {};\n const extendingConfigFilesMap: ExtendingConfigFilesMap = {};\n await pMapSeries(Object.entries(envCompsDirsMap), async ([envId, envMapValue]) => {\n const executionContext = envsExecutionContext.find((context) => context.id === envId);\n if (!executionContext) throw new Error(`failed finding execution context for env ${envId}`);\n const writtenConfigFiles = await this.handleRealConfigFiles(\n envId,\n envMapValue,\n executionContext,\n configWriter,\n configsRootDir,\n writtenConfigFilesMap,\n opts\n );\n if (writtenConfigFiles) {\n this.buildExtendingConfigFilesMap(\n configWriter,\n writtenConfigFiles,\n envId,\n extendingConfigFilesMap,\n envCompsDirsMap,\n configsRootDir,\n opts\n );\n }\n });\n if (!writtenConfigFilesMap || Object.keys(writtenConfigFilesMap).length === 0) {\n return {\n name: configWriter.name,\n configFiles: [],\n totalConfigFiles: 0,\n totalWrittenFiles: 0,\n extendingConfigFiles: [],\n totalExtendingConfigFiles: 0,\n };\n }\n\n const fileHashPerDedupedPaths = dedupePaths(extendingConfigFilesMap, envCompsDirsMap);\n const extendingConfigFiles = await this.writeExtendingConfigFiles(\n extendingConfigFilesMap,\n fileHashPerDedupedPaths,\n opts\n );\n if (configWriter.postProcessExtendingConfigFiles) {\n await configWriter.postProcessExtendingConfigFiles({\n workspaceDir: this.workspace.path,\n configsRootDir,\n writtenExtendingConfigFiles: extendingConfigFiles,\n envCompsDirsMap,\n dryRun: !!opts.dryRun,\n });\n }\n const totalExtendingConfigFiles = extendingConfigFiles.reduce(\n (acc, curr) => acc + curr.extendingConfigFile.filePaths.length,\n 0\n );\n const configFiles = Object.values(writtenConfigFilesMap);\n const totalConfigFiles = Object.keys(writtenConfigFilesMap).length;\n const totalWrittenFiles = totalConfigFiles + totalExtendingConfigFiles;\n const result: OneConfigFileWriterResult = {\n name: configWriter.name,\n configFiles,\n totalWrittenFiles,\n totalConfigFiles: Object.keys(writtenConfigFilesMap).length,\n extendingConfigFiles,\n totalExtendingConfigFiles,\n };\n return result;\n }\n\n private async handleRealConfigFiles(\n envId: string,\n envMapValue: EnvMapValue,\n executionContext: ExecutionContext,\n configWriter: ConfigWriterEntry,\n configsRootDir: string,\n writtenConfigFilesMap: WrittenConfigFilesMap,\n opts: WriteConfigFilesOptions\n ): Promise<WrittenConfigFile[] | undefined> {\n const calculatedConfigFiles = configWriter.calcConfigFiles(executionContext, envMapValue.env, configsRootDir);\n if (!calculatedConfigFiles) return undefined;\n const writtenConfigFiles = await Promise.all(\n calculatedConfigFiles.map(async (configFile) => {\n const writtenConfigFile = await this.writeConfigFile(configFile, configsRootDir, opts);\n if (!writtenConfigFilesMap[writtenConfigFile.hash]) {\n writtenConfigFilesMap[writtenConfigFile.hash] = { configFile: writtenConfigFile, envIds: [] };\n }\n writtenConfigFilesMap[writtenConfigFile.hash].envIds.push(envId);\n return writtenConfigFile;\n })\n );\n if (configWriter.postProcessConfigFiles) {\n await configWriter.postProcessConfigFiles(writtenConfigFiles, executionContext, envMapValue, {\n dryRun: !!opts.dryRun,\n });\n }\n return writtenConfigFiles;\n }\n\n private async writeConfigFile(\n configFile: ConfigFile,\n configsRootDir: string,\n opts: WriteConfigFilesOptions\n ): Promise<WrittenConfigFile> {\n const hash = configFile.hash || sha1(configFile.content);\n const name = format(configFile.name, { hash });\n const filePath = join(configsRootDir, name);\n if (!opts.dryRun) {\n // const exists = await fs.pathExists(filePath);\n // if (!exists) {\n await fs.outputFile(filePath, configFile.content);\n // }\n }\n const res = {\n name,\n hash,\n filePath,\n content: configFile.content,\n };\n return res;\n }\n\n private async writeExtendingConfigFiles(\n extendingConfigFilesMap: ExtendingConfigFilesMap,\n fileHashPerDedupedPaths: DedupedPaths,\n opts: WriteConfigFilesOptions\n ): Promise<EnvsWrittenExtendingConfigFiles> {\n const finalResult: EnvsWrittenExtendingConfigFiles = await Promise.all(\n fileHashPerDedupedPaths.map(async ({ fileHash, paths }) => {\n const envsConfigFile = extendingConfigFilesMap[fileHash];\n const configFile = envsConfigFile.extendingConfigFile;\n const hash = configFile.hash || sha1(configFile.content);\n const name = format(configFile.name, { hash });\n const writtenPaths = await Promise.all(\n paths.map(async (path) => {\n const filePath = join(this.workspace.path, path, name);\n const targetPath = configFile.useAbsPaths\n ? configFile.extendingTarget.filePath\n : `./${relative(dirname(filePath), configFile.extendingTarget.filePath)}`;\n const content = configFile.content.replace(`{${configFile.extendingTarget.name}}`, targetPath);\n if (!opts.dryRun) {\n await fs.outputFile(filePath, content);\n }\n return filePath;\n })\n );\n const res: EnvsWrittenExtendingConfigFile = {\n envIds: envsConfigFile.envIds,\n extendingConfigFile: {\n name,\n hash,\n content: configFile.content,\n extendingTarget: configFile.extendingTarget,\n filePaths: writtenPaths,\n },\n };\n return res;\n })\n );\n return finalResult;\n }\n\n private buildExtendingConfigFilesMap(\n configWriter: ConfigWriterEntry,\n writtenConfigFiles: WrittenConfigFile[],\n envId: string,\n extendingConfigFilesMap: ExtendingConfigFilesMap,\n envCompsDirsMap: EnvCompsDirsMap,\n configsRootDir: string,\n opts: WriteConfigFilesOptions\n ) {\n const extendingConfigFile = this.generateExtendingFile(\n configWriter,\n writtenConfigFiles,\n envCompsDirsMap,\n configsRootDir,\n opts\n );\n if (!extendingConfigFile) return;\n if (!extendingConfigFilesMap[extendingConfigFile.hash]) {\n extendingConfigFilesMap[extendingConfigFile.hash] = { extendingConfigFile, envIds: [] };\n }\n extendingConfigFilesMap[extendingConfigFile.hash].envIds.push(envId);\n }\n\n private generateExtendingFile(\n configWriter: ConfigWriterEntry,\n writtenConfigFiles,\n envCompsDirsMap: EnvCompsDirsMap,\n configsRootDir: string,\n opts: WriteConfigFilesOptions\n ): Required<ExtendingConfigFile> | undefined {\n const args = {\n workspaceDir: this.workspace.path,\n configsRootDir,\n writtenConfigFiles,\n envCompsDirsMap,\n dryRun: !!opts.dryRun,\n };\n const extendingConfigFile = configWriter.generateExtendingFile(args);\n if (!extendingConfigFile) return undefined;\n const hash = extendingConfigFile.hash || sha1(extendingConfigFile.content);\n return {\n ...extendingConfigFile,\n useAbsPaths: !!extendingConfigFile.useAbsPaths,\n hash,\n };\n }\n\n private getConfigsRootDir() {\n return this.getCacheDir(this.workspace.path);\n }\n\n private getCacheDir(rootDir): string {\n return join(rootDir, 'node_modules', '.cache');\n }\n\n private async getExecContext(): Promise<ExecutionContext[]> {\n const components = await this.workspace.list();\n const runtime = await this.envs.createEnvironment(components);\n const execContext = runtime.getEnvExecutionContext();\n return execContext;\n }\n\n private getEnvComponentsDirsMap(envsExecutionContext: ExecutionContext[]): EnvCompsDirsMap {\n const envCompDirsMap = envsExecutionContext.reduce((acc, envExecution) => {\n const envRuntime = envExecution.envRuntime;\n const envId = envRuntime.id.toString();\n const value = {\n id: envRuntime.id,\n env: envRuntime.env,\n paths: envRuntime.components.map((c) => this.workspace.componentDir(c.id, undefined, { relative: true })),\n };\n acc[envId] = value;\n return acc;\n }, {});\n return envCompDirsMap;\n }\n\n private getConfigWriters(): [string, ConfigWriterEntry[]][] {\n return this.configWriterSlot.toArray();\n }\n\n private getFlatConfigWriters(): ConfigWriterEntry[] {\n return this.getConfigWriters().reduce((acc: ConfigWriterEntry[], [, value]) => {\n acc = acc.concat(value);\n return acc;\n }, []);\n }\n\n /**\n * Clean config files written by the config-writers\n * @param envsExecutionContext\n * @param param1\n * @returns Array of paths of deleted config files\n */\n async clean({ dryRun, silent, writers }: WriteConfigFilesOptions): Promise<string[]> {\n const configWriters = this.getFlatConfigWriters();\n const filteredConfigWriters = writers\n ? configWriters.filter(\n (configWriter) => writers.includes(configWriter.name) || writers.includes(configWriter.cliName)\n )\n : configWriters;\n const paths = filteredConfigWriters\n .map((configWriter) => {\n const patterns = configWriter.patterns;\n const currPaths = globby.sync(patterns, {\n cwd: this.workspace.path,\n dot: true,\n onlyFiles: true,\n ignore: ['**/node_modules/**'],\n });\n const filteredPaths = currPaths.filter((path) => {\n const fullPath = join(this.workspace.path, path);\n return configWriter.isBitGenerated ? configWriter.isBitGenerated(fullPath) : true;\n });\n return filteredPaths;\n })\n .flat();\n if (dryRun) return paths;\n if (!silent) await this.promptForCleaning(paths);\n await this.deleteFiles(paths);\n return paths;\n }\n\n private async promptForCleaning(paths: string[]) {\n this.logger.clearStatusLine();\n const ok = await yesno({\n question: `${chalk.underline('The following files will be deleted:')}\n${paths.join('\\n')}\n${chalk.bold('Do you want to continue? [yes(y)/no(n)]')}`,\n });\n if (!ok) {\n throw new PromptCanceled();\n }\n }\n\n private async deleteFiles(paths: string[]) {\n await Promise.all(paths.map((f) => fs.remove(join(this.workspace.path, f))));\n }\n\n registerConfigWriter(...configWriterEntries: ConfigWriterEntry[]) {\n this.configWriterSlot.register(configWriterEntries);\n }\n\n static slots = [Slot.withType<ConfigWriterEntry[]>()];\n // define your aspect dependencies here.\n // in case you need to use another aspect API.\n static dependencies = [CLIAspect, WorkspaceAspect, EnvsAspect, LoggerAspect];\n\n static runtime = MainRuntime;\n\n static async provider(\n [cli, workspace, envs, loggerAspect]: [CLIMain, Workspace, EnvsMain, LoggerMain],\n _config,\n [configWriterSlot]: [ConfigWriterSlot]\n ) {\n const logger = loggerAspect.createLogger(WorkspaceConfigFilesAspect.id);\n const workspaceConfigFilesMain = new WorkspaceConfigFilesMain(configWriterSlot, workspace, envs, logger);\n const wsConfigCmd = new WsConfigCmd();\n wsConfigCmd.commands = [\n new WsConfigWriteCmd(workspaceConfigFilesMain),\n new WsConfigCleanCmd(workspaceConfigFilesMain),\n new WsConfigListCmd(workspaceConfigFilesMain),\n ];\n cli.register(wsConfigCmd);\n return workspaceConfigFilesMain;\n }\n}\n\nWorkspaceConfigFilesAspect.addRuntime(WorkspaceConfigFilesMain);\n\nexport default WorkspaceConfigFilesMain;\n"],"mappings":"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"}
@@ -11,6 +11,7 @@ export declare type WriteConfigCmdFlags = {
11
11
  dryRunWithContent?: boolean;
12
12
  clean?: boolean;
13
13
  silent?: boolean;
14
+ verbose?: boolean;
14
15
  };
15
16
  export declare class WsConfigCmd implements Command {
16
17
  name: string;
@@ -37,6 +38,14 @@ export declare class WsConfigWriteCmd implements Command {
37
38
  totalWrittenFiles: number;
38
39
  aspectsWritersResults: Partial<import("./workspace-config-files.main.runtime").AspectWritersResults>[];
39
40
  };
41
+ } | {
42
+ wsDir: string;
43
+ cleanResults: string[] | undefined;
44
+ writeResults: {
45
+ totalWrittenFiles: number;
46
+ totalExtendingConfigFiles: number;
47
+ aspectsWritersResults: import("./workspace-config-files.main.runtime").AspectWritersResults[];
48
+ };
40
49
  }>;
41
50
  }
42
51
  export declare class WsConfigCleanCmd implements Command {
@@ -29,9 +29,9 @@ function _chalk() {
29
29
  };
30
30
  return data;
31
31
  }
32
- function _formatOutputs() {
33
- const data = require("./format-outputs");
34
- _formatOutputs = function () {
32
+ function _outputs() {
33
+ const data = require("./outputs");
34
+ _outputs = function () {
35
35
  return data;
36
36
  };
37
37
  return data;
@@ -62,14 +62,15 @@ class WsConfigWriteCmd {
62
62
  (0, _defineProperty2().default)(this, "description", 'EXPERIMENTAL. write config files in the workspace. useful for IDEs');
63
63
  (0, _defineProperty2().default)(this, "alias", '');
64
64
  (0, _defineProperty2().default)(this, "group", 'development');
65
- (0, _defineProperty2().default)(this, "options", [['c', 'clean', 'delete existing config files from the workspace. highly recommended to run it with "--dry-run" first'], ['w', 'writers <writers>', `only write config files for the given writers. use comma to separate multiple writers. use ${COMMAND_NAME} list to see all writers`], ['s', 'silent', 'do not prompt for confirmation'], ['', 'no-dedupe', "write configs inside each one of the component's dir, avoid deduping"], ['', 'dry-run', 'show the paths that configs will be written per env'], ['', 'dry-run-with-content', 'use with --json flag. show the config content and the paths it will be written per env'], ['j', 'json', 'json format']]);
65
+ (0, _defineProperty2().default)(this, "options", [['c', 'clean', 'delete existing config files from the workspace. highly recommended to run it with "--dry-run" first'], ['w', 'writers <writers>', `only write config files for the given writers. use comma to separate multiple writers. use ${COMMAND_NAME} list to see all writers`], ['s', 'silent', 'do not prompt for confirmation'], ['', 'no-dedupe', "write configs inside each one of the component's dir, avoid deduping"], ['', 'dry-run', 'show the paths that configs will be written per env'], ['', 'dry-run-with-content', 'use with --json flag. show the config content and the paths it will be written per env'], ['v', 'verbose', 'showing verbose output for writing'], ['j', 'json', 'json format']]);
66
66
  }
67
67
  async report(_args, flags) {
68
68
  const results = await this.json(_args, flags);
69
69
  if (flags.dryRunWithContent) {
70
70
  throw new Error(`use --json flag along with --dry-run-with-content`);
71
71
  }
72
- return (0, _formatOutputs().formatWriteOutput)(results, flags);
72
+ if (flags.verbose) return (0, _outputs().verboseFormatWriteOutput)(results, flags);
73
+ return (0, _outputs().formatWriteOutput)(results, flags);
73
74
  }
74
75
  async json(_args, flags) {
75
76
  const {
@@ -122,7 +123,7 @@ class WsConfigCleanCmd {
122
123
  }
123
124
  async report(_args, flags) {
124
125
  const results = await this.json(_args, flags);
125
- return (0, _formatOutputs().formatCleanOutput)(results, flags);
126
+ return (0, _outputs().formatCleanOutput)(results, flags);
126
127
  }
127
128
  async json(_args, flags) {
128
129
  var _flags$writers;
@@ -150,7 +151,7 @@ class WsConfigListCmd {
150
151
  }
151
152
  async report() {
152
153
  const results = await this.json();
153
- return (0, _formatOutputs().formatListOutput)(results);
154
+ return (0, _outputs().formatListOutput)(results);
154
155
  }
155
156
  async json() {
156
157
  const cleanResults = await this.workspaceConfigFilesMain.listConfigWriters();
@@ -1 +1 @@
1
- {"version":3,"names":["COMMAND_NAME","WsConfigCmd","report","unrecognizedSubcommand","chalk","red","WsConfigWriteCmd","constructor","workspaceConfigFilesMain","_args","flags","results","json","dryRunWithContent","Error","formatWriteOutput","clean","silent","noDedupe","writers","dryRun","cleanResults","writeResults","wsDir","writeConfigFiles","dedupe","split","aspectsWritersResults","map","s","omit","totalWrittenFiles","WsConfigCleanCmd","formatCleanOutput","cleanConfigFiles","WsConfigListCmd","formatListOutput","listConfigWriters"],"sources":["ws-config.cmd.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\n\nimport { omit } from 'lodash';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { WorkspaceConfigFilesMain, WriteConfigFilesResult } from './workspace-config-files.main.runtime';\nimport { formatCleanOutput, formatListOutput, formatWriteOutput } from './format-outputs';\n\nexport type CleanConfigCmdFlags = {\n dryRun?: boolean;\n silent?: boolean;\n};\n\nexport type WriteConfigCmdFlags = {\n dryRun?: boolean;\n writers?: string;\n noDedupe?: boolean;\n dryRunWithContent?: boolean;\n clean?: boolean;\n silent?: boolean;\n};\n\nconst COMMAND_NAME = 'ws-config';\n\nexport class WsConfigCmd implements Command {\n name = `${COMMAND_NAME} <sub-command>`;\n alias = 'workspace-config';\n description = 'manage workspace config files';\n options = [];\n group = 'development';\n commands: Command[] = [];\n // helpUrl = '';\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"ws-config\", please run \"bit ws-config --help\" to list the subcommands`\n );\n }\n}\n\nexport class WsConfigWriteCmd implements Command {\n name = 'write';\n description = 'EXPERIMENTAL. write config files in the workspace. useful for IDEs';\n alias = '';\n group = 'development';\n options = [\n [\n 'c',\n 'clean',\n 'delete existing config files from the workspace. highly recommended to run it with \"--dry-run\" first',\n ],\n [\n 'w',\n 'writers <writers>',\n `only write config files for the given writers. use comma to separate multiple writers. use ${COMMAND_NAME} list to see all writers`,\n ],\n ['s', 'silent', 'do not prompt for confirmation'],\n ['', 'no-dedupe', \"write configs inside each one of the component's dir, avoid deduping\"],\n ['', 'dry-run', 'show the paths that configs will be written per env'],\n [\n '',\n 'dry-run-with-content',\n 'use with --json flag. show the config content and the paths it will be written per env',\n ],\n ['j', 'json', 'json format'],\n ] as CommandOptions;\n\n constructor(private workspaceConfigFilesMain: WorkspaceConfigFilesMain) {}\n\n async report(_args, flags: WriteConfigCmdFlags) {\n const results = (await this.json(_args, flags)) as WriteConfigFilesResult;\n if (flags.dryRunWithContent) {\n throw new Error(`use --json flag along with --dry-run-with-content`);\n }\n return formatWriteOutput(results, flags);\n }\n\n async json(_args, flags: WriteConfigCmdFlags) {\n const { clean, silent, noDedupe, dryRunWithContent, writers } = flags;\n const dryRun = dryRunWithContent ? true : !!flags.dryRun;\n const { cleanResults, writeResults, wsDir } = await this.workspaceConfigFilesMain.writeConfigFiles({\n clean,\n dedupe: !noDedupe,\n dryRun,\n silent,\n writers: writers?.split(','),\n });\n\n if (dryRun) {\n const aspectsWritersResults = dryRunWithContent\n ? writeResults.aspectsWritersResults\n : writeResults.aspectsWritersResults.map((s) => omit(s, ['content']));\n // return JSON.stringify({ cleanResults, writeResults: writeJson }, undefined, 2);\n return {\n wsDir,\n cleanResults,\n writeResults: { totalWrittenFiles: writeResults.totalWrittenFiles, aspectsWritersResults },\n };\n }\n return { wsDir, cleanResults, writeResults };\n }\n}\n\nexport class WsConfigCleanCmd implements Command {\n name = 'clean';\n description = 'EXPERIMENTAL. clean (delete) written config files in the workspace. useful for IDEs';\n alias = '';\n group = 'development';\n options = [\n ['s', 'silent', 'do not prompt for confirmation'],\n [\n 'w',\n 'writers <writers>',\n `only write config files for the given writers. use comma to separate multiple writers. use ${COMMAND_NAME} list to see all writers`,\n ],\n ['', 'dry-run', 'show the paths that configs will be written per env'],\n ['j', 'json', 'json format'],\n ] as CommandOptions;\n\n constructor(private workspaceConfigFilesMain: WorkspaceConfigFilesMain) {}\n\n async report(_args, flags: CleanConfigCmdFlags) {\n const results = await this.json(_args, flags);\n return formatCleanOutput(results, flags);\n }\n\n async json(_args, flags: WriteConfigCmdFlags) {\n const { silent, dryRun } = flags;\n const cleanResults = await this.workspaceConfigFilesMain.cleanConfigFiles({\n dryRun,\n silent,\n writers: flags.writers?.split(','),\n });\n return cleanResults;\n }\n}\n\nexport class WsConfigListCmd implements Command {\n name = 'list';\n description = 'EXPERIMENTAL. list config writers';\n alias = '';\n group = 'development';\n options = [['j', 'json', 'json format']] as CommandOptions;\n\n constructor(private workspaceConfigFilesMain: WorkspaceConfigFilesMain) {}\n\n async report() {\n const results = await this.json();\n return formatListOutput(results);\n }\n\n async json() {\n const cleanResults = await this.workspaceConfigFilesMain.listConfigWriters();\n return cleanResults;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["COMMAND_NAME","WsConfigCmd","report","unrecognizedSubcommand","chalk","red","WsConfigWriteCmd","constructor","workspaceConfigFilesMain","_args","flags","results","json","dryRunWithContent","Error","verbose","verboseFormatWriteOutput","formatWriteOutput","clean","silent","noDedupe","writers","dryRun","cleanResults","writeResults","wsDir","writeConfigFiles","dedupe","split","aspectsWritersResults","map","s","omit","totalWrittenFiles","WsConfigCleanCmd","formatCleanOutput","cleanConfigFiles","WsConfigListCmd","formatListOutput","listConfigWriters"],"sources":["ws-config.cmd.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\n\nimport { omit } from 'lodash';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { WorkspaceConfigFilesMain, WriteConfigFilesResult } from './workspace-config-files.main.runtime';\nimport { formatCleanOutput, formatListOutput, formatWriteOutput, verboseFormatWriteOutput } from './outputs';\n\nexport type CleanConfigCmdFlags = {\n dryRun?: boolean;\n silent?: boolean;\n};\n\nexport type WriteConfigCmdFlags = {\n dryRun?: boolean;\n writers?: string;\n noDedupe?: boolean;\n dryRunWithContent?: boolean;\n clean?: boolean;\n silent?: boolean;\n verbose?: boolean;\n};\n\nconst COMMAND_NAME = 'ws-config';\n\nexport class WsConfigCmd implements Command {\n name = `${COMMAND_NAME} <sub-command>`;\n alias = 'workspace-config';\n description = 'manage workspace config files';\n options = [];\n group = 'development';\n commands: Command[] = [];\n // helpUrl = '';\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"ws-config\", please run \"bit ws-config --help\" to list the subcommands`\n );\n }\n}\n\nexport class WsConfigWriteCmd implements Command {\n name = 'write';\n description = 'EXPERIMENTAL. write config files in the workspace. useful for IDEs';\n alias = '';\n group = 'development';\n options = [\n [\n 'c',\n 'clean',\n 'delete existing config files from the workspace. highly recommended to run it with \"--dry-run\" first',\n ],\n [\n 'w',\n 'writers <writers>',\n `only write config files for the given writers. use comma to separate multiple writers. use ${COMMAND_NAME} list to see all writers`,\n ],\n ['s', 'silent', 'do not prompt for confirmation'],\n ['', 'no-dedupe', \"write configs inside each one of the component's dir, avoid deduping\"],\n ['', 'dry-run', 'show the paths that configs will be written per env'],\n [\n '',\n 'dry-run-with-content',\n 'use with --json flag. show the config content and the paths it will be written per env',\n ],\n ['v', 'verbose', 'showing verbose output for writing'],\n ['j', 'json', 'json format'],\n ] as CommandOptions;\n\n constructor(private workspaceConfigFilesMain: WorkspaceConfigFilesMain) {}\n\n async report(_args, flags: WriteConfigCmdFlags) {\n const results = (await this.json(_args, flags)) as WriteConfigFilesResult;\n if (flags.dryRunWithContent) {\n throw new Error(`use --json flag along with --dry-run-with-content`);\n }\n if (flags.verbose) return verboseFormatWriteOutput(results, flags);\n return formatWriteOutput(results, flags);\n }\n\n async json(_args, flags: WriteConfigCmdFlags) {\n const { clean, silent, noDedupe, dryRunWithContent, writers } = flags;\n const dryRun = dryRunWithContent ? true : !!flags.dryRun;\n const { cleanResults, writeResults, wsDir } = await this.workspaceConfigFilesMain.writeConfigFiles({\n clean,\n dedupe: !noDedupe,\n dryRun,\n silent,\n writers: writers?.split(','),\n });\n\n if (dryRun) {\n const aspectsWritersResults = dryRunWithContent\n ? writeResults.aspectsWritersResults\n : writeResults.aspectsWritersResults.map((s) => omit(s, ['content']));\n // return JSON.stringify({ cleanResults, writeResults: writeJson }, undefined, 2);\n return {\n wsDir,\n cleanResults,\n writeResults: { totalWrittenFiles: writeResults.totalWrittenFiles, aspectsWritersResults },\n };\n }\n return { wsDir, cleanResults, writeResults };\n }\n}\n\nexport class WsConfigCleanCmd implements Command {\n name = 'clean';\n description = 'EXPERIMENTAL. clean (delete) written config files in the workspace. useful for IDEs';\n alias = '';\n group = 'development';\n options = [\n ['s', 'silent', 'do not prompt for confirmation'],\n [\n 'w',\n 'writers <writers>',\n `only write config files for the given writers. use comma to separate multiple writers. use ${COMMAND_NAME} list to see all writers`,\n ],\n ['', 'dry-run', 'show the paths that configs will be written per env'],\n ['j', 'json', 'json format'],\n ] as CommandOptions;\n\n constructor(private workspaceConfigFilesMain: WorkspaceConfigFilesMain) {}\n\n async report(_args, flags: CleanConfigCmdFlags) {\n const results = await this.json(_args, flags);\n return formatCleanOutput(results, flags);\n }\n\n async json(_args, flags: WriteConfigCmdFlags) {\n const { silent, dryRun } = flags;\n const cleanResults = await this.workspaceConfigFilesMain.cleanConfigFiles({\n dryRun,\n silent,\n writers: flags.writers?.split(','),\n });\n return cleanResults;\n }\n}\n\nexport class WsConfigListCmd implements Command {\n name = 'list';\n description = 'EXPERIMENTAL. list config writers';\n alias = '';\n group = 'development';\n options = [['j', 'json', 'json format']] as CommandOptions;\n\n constructor(private workspaceConfigFilesMain: WorkspaceConfigFilesMain) {}\n\n async report() {\n const results = await this.json();\n return formatListOutput(results);\n }\n\n async json() {\n const cleanResults = await this.workspaceConfigFilesMain.listConfigWriters();\n return cleanResults;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import chalk from 'chalk';
2
+ import type { CleanConfigCmdFlags } from '../ws-config.cmd';
3
+
4
+ export function formatCleanOutput(cleanResults: string[] = [], flags: CleanConfigCmdFlags): string {
5
+ const isDryRun = !!flags.dryRun;
6
+ const cleanResultsOutput = getCleanResultsOutput(cleanResults, isDryRun);
7
+
8
+ return `${cleanResultsOutput}`;
9
+ }
10
+
11
+ function getCleanResultsOutput(cleanResults: string[] | undefined, isDryRun: boolean) {
12
+ const cleanResultsOutput = cleanResults
13
+ ? `${chalk.green(
14
+ `${cleanResults.length} config files ${isDryRun ? 'will be' : 'were'} deleted`
15
+ )}\n ${cleanResults.join('\n ')}\n`
16
+ : '';
17
+ return cleanResultsOutput;
18
+ }
@@ -0,0 +1,13 @@
1
+ import Table from 'cli-table';
2
+ import { ConfigWritersList } from '../workspace-config-files.main.runtime';
3
+
4
+ export function formatListOutput(result: ConfigWritersList): string {
5
+ const head = ['Aspect ID', 'name', 'CLI name'];
6
+
7
+ const rows = result.map((entry) => {
8
+ return [entry.aspectId, entry.configWriter.name, entry.configWriter.cliName];
9
+ });
10
+ const table = new Table({ head, style: { head: ['cyan'] } });
11
+ table.push(...rows);
12
+ return table.toString();
13
+ }
@@ -0,0 +1,67 @@
1
+ import chalk from 'chalk';
2
+ import { relative } from 'path';
3
+ import {
4
+ AspectWritersResults,
5
+ EnvsWrittenExtendingConfigFile,
6
+ EnvsWrittenExtendingConfigFiles,
7
+ OneConfigFileWriterResult,
8
+ WriteConfigFilesResult,
9
+ } from '../workspace-config-files.main.runtime';
10
+ import type { WriteConfigCmdFlags } from '../ws-config.cmd';
11
+ import { formatCleanOutput } from './format-clean-output';
12
+ import { SUMMARY, WRITE_TITLE } from './write-outputs-texts';
13
+
14
+ export function formatWriteOutput(writeConfigFilesResult: WriteConfigFilesResult, flags: WriteConfigCmdFlags): string {
15
+ const { cleanResults, writeResults, wsDir } = writeConfigFilesResult;
16
+ const isDryRun = !!(flags.dryRun || flags.dryRunWithContent);
17
+ const cleanResultsOutput = cleanResults?.length ? formatCleanOutput(cleanResults, { dryRun: isDryRun }) : undefined;
18
+ const writeResultsOutput = getWriteResultsOutput(writeResults, wsDir, isDryRun);
19
+
20
+ const cleanWriteOutput = cleanResultsOutput ? `${cleanResultsOutput}\n${writeResultsOutput}` : writeResultsOutput;
21
+
22
+ return `${cleanWriteOutput}\n\n${SUMMARY}`;
23
+ }
24
+
25
+ function getWriteResultsOutput(writeResults: WriteConfigFilesResult['writeResults'], wsDir: string, isDryRun: boolean) {
26
+ const totalExtendingConfigFiles = writeResults.totalExtendingConfigFiles;
27
+
28
+ const writeTitle = isDryRun
29
+ ? chalk.green(`${totalExtendingConfigFiles} files will be written`)
30
+ : chalk.green(WRITE_TITLE(totalExtendingConfigFiles));
31
+ const writeOutput = writeResults.aspectsWritersResults
32
+ .map((aspectWritersResults) => getOneAspectOutput(aspectWritersResults, wsDir))
33
+ .join('\n\n');
34
+ return `${writeTitle}\n${writeOutput}`;
35
+ }
36
+ function getOneAspectOutput(aspectWritersResults: AspectWritersResults, wsDir: string): string {
37
+ const title = chalk.blue(
38
+ `${aspectWritersResults.totalExtendingConfigFiles} ${chalk.bold(
39
+ aspectWritersResults.aspectId.toString()
40
+ )} configurations added`
41
+ );
42
+ const writersOutput = aspectWritersResults.writersResult
43
+ .map((oneWritersResults) => getOneWriterOutput(oneWritersResults, wsDir))
44
+ .join('\n\n');
45
+ return `${title}\n${writersOutput}`;
46
+ }
47
+ function getOneWriterOutput(oneWritersResults: OneConfigFileWriterResult, wsDir: string): string {
48
+ const extendingConfigFilesOutput = getExtendingConfigFilesOutput(oneWritersResults.extendingConfigFiles, wsDir);
49
+ return `${extendingConfigFilesOutput}`;
50
+ }
51
+
52
+ function getExtendingConfigFilesOutput(extendingConfigFiles: EnvsWrittenExtendingConfigFiles, wsDir: string): string {
53
+ const extendingConfigFilesOutput = extendingConfigFiles
54
+ .map((envsWrittenExtendingConfigFile) =>
55
+ getEnvGroupExtendingConfigFilesOutput(envsWrittenExtendingConfigFile, wsDir)
56
+ )
57
+ .join('\n');
58
+ return `${extendingConfigFilesOutput}`;
59
+ }
60
+ function getEnvGroupExtendingConfigFilesOutput(
61
+ envsWrittenExtendingConfigFile: EnvsWrittenExtendingConfigFile,
62
+ wsDir: string
63
+ ): string {
64
+ const extendingConfigFile = envsWrittenExtendingConfigFile.extendingConfigFile;
65
+ const paths = extendingConfigFile.filePaths.map((p) => ` ${relative(wsDir, p)}`).join('\n');
66
+ return `${paths}`;
67
+ }
@@ -0,0 +1,4 @@
1
+ export { formatCleanOutput } from './format-clean-output';
2
+ export { formatListOutput } from './format-list-output';
3
+ export { formatWriteOutput } from './format-write-output';
4
+ export { verboseFormatWriteOutput } from './verbose-format-write-output';
@@ -0,0 +1,91 @@
1
+ import chalk from 'chalk';
2
+ import { relative } from 'path';
3
+ import {
4
+ AspectWritersResults,
5
+ EnvsWrittenConfigFile,
6
+ EnvsWrittenConfigFiles,
7
+ EnvsWrittenExtendingConfigFile,
8
+ EnvsWrittenExtendingConfigFiles,
9
+ OneConfigFileWriterResult,
10
+ WriteConfigFilesResult,
11
+ } from '../workspace-config-files.main.runtime';
12
+ import type { WriteConfigCmdFlags } from '../ws-config.cmd';
13
+ import { formatCleanOutput } from './format-clean-output';
14
+ import { SUMMARY, WRITE_TITLE } from './write-outputs-texts';
15
+
16
+ export function verboseFormatWriteOutput(
17
+ writeConfigFilesResult: WriteConfigFilesResult,
18
+ flags: WriteConfigCmdFlags
19
+ ): string {
20
+ const { cleanResults, writeResults, wsDir } = writeConfigFilesResult;
21
+ const isDryRun = !!(flags.dryRun || flags.dryRunWithContent);
22
+ const cleanResultsOutput = formatCleanOutput(cleanResults, { dryRun: isDryRun });
23
+ const writeResultsOutput = getWriteResultsOutput(writeResults, wsDir, isDryRun);
24
+
25
+ return `${cleanResultsOutput}\n${writeResultsOutput}\n\n${SUMMARY}`;
26
+ }
27
+
28
+ function getWriteResultsOutput(writeResults: WriteConfigFilesResult['writeResults'], wsDir: string, isDryRun: boolean) {
29
+ const totalFiles = writeResults.totalWrittenFiles;
30
+
31
+ const writeTitle = isDryRun
32
+ ? chalk.green(`${totalFiles} files will be written`)
33
+ : chalk.green(WRITE_TITLE(totalFiles));
34
+ const writeOutput = writeResults.aspectsWritersResults
35
+ .map((aspectWritersResults) => getOneAspectOutput(aspectWritersResults, wsDir))
36
+ .join('\n\n');
37
+ return `${writeTitle}\n${writeOutput}`;
38
+ }
39
+ function getOneAspectOutput(aspectWritersResults: AspectWritersResults, wsDir: string): string {
40
+ const title = chalk.blue(
41
+ `The following paths are according to aspect ${chalk.bold(aspectWritersResults.aspectId.toString())}`
42
+ );
43
+ const writersOutput = aspectWritersResults.writersResult
44
+ .map((oneWritersResults) => getOneWriterOutput(oneWritersResults, wsDir))
45
+ .join('\n\n');
46
+ return `${title}\n${writersOutput}`;
47
+ }
48
+ function getOneWriterOutput(oneWritersResults: OneConfigFileWriterResult, wsDir: string): string {
49
+ const title = chalk.cyan(` The following paths are according to writer ${chalk.bold(oneWritersResults.name)}`);
50
+ const realConfigFilesOutput = getRealConfigFilesOutput(oneWritersResults.configFiles, wsDir);
51
+ const extendingConfigFilesOutput = getExtendingConfigFilesOutput(oneWritersResults.extendingConfigFiles, wsDir);
52
+ return `${title}\n${realConfigFilesOutput}\n\n${extendingConfigFilesOutput}`;
53
+ }
54
+
55
+ function getRealConfigFilesOutput(envsWrittenConfigFiles: EnvsWrittenConfigFiles, wsDir: string): string {
56
+ const title = chalk.magenta(` Real config files`);
57
+ const writtenConfigFilesOutput = envsWrittenConfigFiles
58
+ .map((envsWrittenConfigFile) => getEnvGroupConfigFilesOutput(envsWrittenConfigFile, wsDir))
59
+ .join('\n\n');
60
+ return `${title}\n${writtenConfigFilesOutput}`;
61
+ }
62
+ function getEnvGroupConfigFilesOutput(envsWrittenConfigFile: EnvsWrittenConfigFile, wsDir: string): string {
63
+ const title = ` The following paths are according to env(s) ${chalk.bold(
64
+ envsWrittenConfigFile.envIds.join(', ')
65
+ )}`;
66
+ const filePath = relative(wsDir, envsWrittenConfigFile.configFile.filePath);
67
+ return `${title}\n ${filePath}`;
68
+ }
69
+ function getExtendingConfigFilesOutput(extendingConfigFiles: EnvsWrittenExtendingConfigFiles, wsDir: string): string {
70
+ const title = chalk.magenta(` Extending config files`);
71
+
72
+ const extendingConfigFilesOutput = extendingConfigFiles
73
+ .map((envsWrittenExtendingConfigFile) =>
74
+ getEnvGroupExtendingConfigFilesOutput(envsWrittenExtendingConfigFile, wsDir)
75
+ )
76
+ .join('\n\n');
77
+ return `${title}\n${extendingConfigFilesOutput}`;
78
+ }
79
+ function getEnvGroupExtendingConfigFilesOutput(
80
+ envsWrittenExtendingConfigFile: EnvsWrittenExtendingConfigFile,
81
+ wsDir: string
82
+ ): string {
83
+ const title = ` The following paths are according to env(s) ${chalk.bold(
84
+ envsWrittenExtendingConfigFile.envIds.join(', ')
85
+ )}`;
86
+ const extendingConfigFile = envsWrittenExtendingConfigFile.extendingConfigFile;
87
+ const paths = extendingConfigFile.filePaths
88
+ .map((p) => ` ${relative(wsDir, p)} --> ${relative(wsDir, extendingConfigFile.extendingTarget.filePath)}`)
89
+ .join('\n ');
90
+ return `${title}\n ${paths}`;
91
+ }
@@ -0,0 +1,4 @@
1
+ export const WRITE_TITLE = (total: number) => `${total} config files added to workspace`;
2
+
3
+ export const SUMMARY = `bit writes configuration files in different nested locations in your workspace to meet the configuration needs of different components.
4
+ IDE is now in-sync with component configuration`;
package/package.json CHANGED
@@ -1,37 +1,37 @@
1
1
  {
2
2
  "name": "@teambit/workspace-config-files",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "homepage": "https://bit.cloud/teambit/workspace/workspace-config-files",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.workspace",
8
8
  "name": "workspace-config-files",
9
- "version": "0.0.21"
9
+ "version": "0.0.23"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
13
13
  "chalk": "2.4.2",
14
- "cli-table": "0.3.6",
15
14
  "fs-extra": "10.0.0",
16
15
  "globby": "11.0.1",
17
16
  "p-map-series": "2.1.0",
18
17
  "string-format": "0.5.0",
19
18
  "yesno": "0.4.0",
19
+ "cli-table": "0.3.6",
20
20
  "core-js": "^3.0.0",
21
21
  "@babel/runtime": "7.20.0",
22
22
  "@teambit/harmony": "0.4.6",
23
- "@teambit/envs": "0.0.1041",
24
- "@teambit/cli": "0.0.701",
25
- "@teambit/logger": "0.0.794",
26
- "@teambit/workspace": "0.0.1041",
23
+ "@teambit/envs": "0.0.1043",
24
+ "@teambit/cli": "0.0.703",
25
+ "@teambit/logger": "0.0.796",
26
+ "@teambit/workspace": "0.0.1043",
27
27
  "@teambit/bit-error": "0.0.402"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/chai": "4.2.15",
31
31
  "chai": "4.3.0",
32
32
  "@types/lodash": "4.14.165",
33
- "@types/cli-table": "^0.3.0",
34
33
  "@types/fs-extra": "9.0.7",
34
+ "@types/cli-table": "^0.3.0",
35
35
  "@types/mocha": "9.1.0",
36
36
  "@types/node": "12.20.4",
37
37
  "@types/react": "^17.0.8",
@@ -40,7 +40,7 @@
40
40
  "@types/testing-library__jest-dom": "5.9.5"
41
41
  },
42
42
  "peerDependencies": {
43
- "@teambit/legacy": "1.0.480",
43
+ "@teambit/legacy": "1.0.482",
44
44
  "react": "^16.8.0 || ^17.0.0",
45
45
  "react-dom": "^16.8.0 || ^17.0.0"
46
46
  },
@@ -1,5 +0,0 @@
1
- import { ConfigWritersList, WriteConfigFilesResult } from './workspace-config-files.main.runtime';
2
- import type { CleanConfigCmdFlags, WriteConfigCmdFlags } from './ws-config.cmd';
3
- export declare function formatListOutput(result: ConfigWritersList): string;
4
- export declare function formatWriteOutput(writeConfigFilesResult: WriteConfigFilesResult, flags: WriteConfigCmdFlags): string;
5
- export declare function formatCleanOutput(cleanResults: string[] | undefined, flags: CleanConfigCmdFlags): string;
@@ -1 +0,0 @@
1
- {"version":3,"names":["formatListOutput","result","head","rows","map","entry","aspectId","configWriter","name","cliName","table","Table","style","push","toString","formatWriteOutput","writeConfigFilesResult","flags","cleanResults","writeResults","wsDir","isDryRun","dryRun","dryRunWithContent","cleanResultsOutput","getCleanResultsOutput","writeResultsOutput","getWriteResultsOutput","formatCleanOutput","chalk","green","length","join","totalFiles","totalWrittenFiles","writeTitle","writeOutput","aspectsWritersResults","aspectWritersResults","getOneAspectOutput","title","blue","bold","writersOutput","writersResult","oneWritersResults","getOneWriterOutput","cyan","realConfigFilesOutput","getRealConfigFilesOutput","configFiles","extendingConfigFilesOutput","getExtendingConfigFilesOutput","extendingConfigFiles","envsWrittenConfigFiles","magenta","writtenConfigFilesOutput","envsWrittenConfigFile","getEnvGroupConfigFilesOutput","envIds","filePath","relative","configFile","envsWrittenExtendingConfigFile","getEnvGroupExtendingConfigFilesOutput","extendingConfigFile","paths","filePaths","p","extendingTarget"],"sources":["format-outputs.ts"],"sourcesContent":["import Table from 'cli-table';\nimport chalk from 'chalk';\nimport { relative } from 'path';\nimport {\n AspectWritersResults,\n ConfigWritersList,\n EnvsWrittenConfigFile,\n EnvsWrittenConfigFiles,\n EnvsWrittenExtendingConfigFile,\n EnvsWrittenExtendingConfigFiles,\n OneConfigFileWriterResult,\n WriteConfigFilesResult,\n} from './workspace-config-files.main.runtime';\nimport type { CleanConfigCmdFlags, WriteConfigCmdFlags } from './ws-config.cmd';\n\nexport function formatListOutput(result: ConfigWritersList): string {\n const head = ['Aspect ID', 'name', 'CLI name'];\n\n const rows = result.map((entry) => {\n return [entry.aspectId, entry.configWriter.name, entry.configWriter.cliName];\n });\n const table = new Table({ head, style: { head: ['cyan'] } });\n table.push(...rows);\n return table.toString();\n}\nexport function formatWriteOutput(writeConfigFilesResult: WriteConfigFilesResult, flags: WriteConfigCmdFlags): string {\n const { cleanResults, writeResults, wsDir } = writeConfigFilesResult;\n const isDryRun = !!(flags.dryRun || flags.dryRunWithContent);\n const cleanResultsOutput = getCleanResultsOutput(cleanResults, isDryRun);\n const writeResultsOutput = getWriteResultsOutput(writeResults, wsDir, isDryRun);\n\n return `${cleanResultsOutput}${writeResultsOutput}`;\n}\n\nexport function formatCleanOutput(cleanResults: string[] = [], flags: CleanConfigCmdFlags): string {\n const isDryRun = !!flags.dryRun;\n const cleanResultsOutput = getCleanResultsOutput(cleanResults, isDryRun);\n\n return `${cleanResultsOutput}`;\n}\n\nfunction getCleanResultsOutput(cleanResults: string[] | undefined, isDryRun: boolean) {\n const cleanResultsOutput = cleanResults\n ? `${chalk.green(\n `the following ${cleanResults.length} paths ${isDryRun ? 'will be' : 'were'} deleted:`\n )}\\n ${cleanResults.join('\\n ')}\\n`\n : '';\n return cleanResultsOutput;\n}\nfunction getWriteResultsOutput(writeResults: WriteConfigFilesResult['writeResults'], wsDir: string, isDryRun: boolean) {\n const totalFiles = writeResults.totalWrittenFiles;\n\n const writeTitle = isDryRun\n ? chalk.green(`${totalFiles} files will be written`)\n : chalk.green(`${totalFiles} files have been written successfully`);\n const writeOutput = writeResults.aspectsWritersResults\n .map((aspectWritersResults) => getOneAspectOutput(aspectWritersResults, wsDir))\n .join('\\n\\n');\n return `${writeTitle}\\n${writeOutput}`;\n}\nfunction getOneAspectOutput(aspectWritersResults: AspectWritersResults, wsDir: string): string {\n const title = chalk.blue(\n `The following paths are according to aspect ${chalk.bold(aspectWritersResults.aspectId.toString())}`\n );\n const writersOutput = aspectWritersResults.writersResult\n .map((oneWritersResults) => getOneWriterOutput(oneWritersResults, wsDir))\n .join('\\n\\n');\n return `${title}\\n${writersOutput}`;\n}\nfunction getOneWriterOutput(oneWritersResults: OneConfigFileWriterResult, wsDir: string): string {\n const title = chalk.cyan(` The following paths are according to writer ${chalk.bold(oneWritersResults.name)}`);\n const realConfigFilesOutput = getRealConfigFilesOutput(oneWritersResults.configFiles, wsDir);\n const extendingConfigFilesOutput = getExtendingConfigFilesOutput(oneWritersResults.extendingConfigFiles, wsDir);\n return `${title}\\n${realConfigFilesOutput}\\n\\n${extendingConfigFilesOutput}`;\n}\n\nfunction getRealConfigFilesOutput(envsWrittenConfigFiles: EnvsWrittenConfigFiles, wsDir: string): string {\n const title = chalk.magenta(` Real config files`);\n const writtenConfigFilesOutput = envsWrittenConfigFiles\n .map((envsWrittenConfigFile) => getEnvGroupConfigFilesOutput(envsWrittenConfigFile, wsDir))\n .join('\\n\\n');\n return `${title}\\n${writtenConfigFilesOutput}`;\n}\nfunction getEnvGroupConfigFilesOutput(envsWrittenConfigFile: EnvsWrittenConfigFile, wsDir: string): string {\n const title = ` The following paths are according to env(s) ${chalk.bold(\n envsWrittenConfigFile.envIds.join(', ')\n )}`;\n const filePath = relative(wsDir, envsWrittenConfigFile.configFile.filePath);\n return `${title}\\n ${filePath}`;\n}\nfunction getExtendingConfigFilesOutput(extendingConfigFiles: EnvsWrittenExtendingConfigFiles, wsDir: string): string {\n const title = chalk.magenta(` Extending config files`);\n\n const extendingConfigFilesOutput = extendingConfigFiles\n .map((envsWrittenExtendingConfigFile) =>\n getEnvGroupExtendingConfigFilesOutput(envsWrittenExtendingConfigFile, wsDir)\n )\n .join('\\n\\n');\n return `${title}\\n${extendingConfigFilesOutput}`;\n}\nfunction getEnvGroupExtendingConfigFilesOutput(\n envsWrittenExtendingConfigFile: EnvsWrittenExtendingConfigFile,\n wsDir: string\n): string {\n const title = ` The following paths are according to env(s) ${chalk.bold(\n envsWrittenExtendingConfigFile.envIds.join(', ')\n )}`;\n const extendingConfigFile = envsWrittenExtendingConfigFile.extendingConfigFile;\n const paths = extendingConfigFile.filePaths\n .map((p) => ` ${relative(wsDir, p)} --> ${relative(wsDir, extendingConfigFile.extendingTarget.filePath)}`)\n .join('\\n ');\n return `${title}\\n ${paths}`;\n}\n"],"mappings":"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"}