@teambit/watcher 1.0.203 → 1.0.205

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.
@@ -1,4 +1,4 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <testsuites tests="0" failures="0" errors="0" skipped="0">
3
- <testsuite name="teambit.workspace/watcher@1.0.203" tests="0" failures="0" errors="0" skipped="0"/>
3
+ <testsuite name="teambit.workspace/watcher@1.0.205" tests="0" failures="0" errors="0" skipped="0"/>
4
4
  </testsuites>
@@ -1486,11 +1486,74 @@
1486
1486
  ]
1487
1487
  }
1488
1488
  },
1489
+ {
1490
+ "__schema": "TypeSchema",
1491
+ "location": {
1492
+ "filePath": "watcher.ts",
1493
+ "line": 61,
1494
+ "character": 1
1495
+ },
1496
+ "signature": "type RootDirs = {\n [dir: string]: ComponentID;\n}",
1497
+ "name": "RootDirs",
1498
+ "type": {
1499
+ "__schema": "TypeLiteralSchema",
1500
+ "location": {
1501
+ "filePath": "watcher.ts",
1502
+ "line": 61,
1503
+ "character": 24
1504
+ },
1505
+ "members": [
1506
+ {
1507
+ "__schema": "IndexSignatureSchema",
1508
+ "location": {
1509
+ "filePath": "watcher.ts",
1510
+ "line": 61,
1511
+ "character": 26
1512
+ },
1513
+ "keyType": {
1514
+ "__schema": "ParameterSchema",
1515
+ "location": {
1516
+ "filePath": "watcher.ts",
1517
+ "line": 61,
1518
+ "character": 27
1519
+ },
1520
+ "name": "dir",
1521
+ "type": {
1522
+ "__schema": "TypeRefSchema",
1523
+ "location": {
1524
+ "filePath": "watcher.ts",
1525
+ "line": 61,
1526
+ "character": 32
1527
+ },
1528
+ "name": "PathLinux",
1529
+ "internalFilePath": "watcher.ts"
1530
+ },
1531
+ "isOptional": false,
1532
+ "isSpread": false
1533
+ },
1534
+ "valueType": {
1535
+ "__schema": "TypeRefSchema",
1536
+ "location": {
1537
+ "filePath": "watcher.ts",
1538
+ "line": 61,
1539
+ "character": 44
1540
+ },
1541
+ "name": "ComponentID",
1542
+ "componentId": {
1543
+ "scope": "teambit.component",
1544
+ "name": "component-id",
1545
+ "version": "1.2.0"
1546
+ }
1547
+ }
1548
+ }
1549
+ ]
1550
+ }
1551
+ },
1489
1552
  {
1490
1553
  "__schema": "ClassSchema",
1491
1554
  "location": {
1492
1555
  "filePath": "watcher.ts",
1493
- "line": 64,
1556
+ "line": 66,
1494
1557
  "character": 1
1495
1558
  },
1496
1559
  "signature": "class Watcher",
@@ -1500,7 +1563,7 @@
1500
1563
  "__schema": "ConstructorSchema",
1501
1564
  "location": {
1502
1565
  "filePath": "watcher.ts",
1503
- "line": 73,
1566
+ "line": 75,
1504
1567
  "character": 3
1505
1568
  },
1506
1569
  "signature": "constructor Watcher(workspace: Workspace, pubsub: PubsubMain, watcherMain: WatcherMain, options: WatchOptions): Watcher",
@@ -1510,7 +1573,7 @@
1510
1573
  "__schema": "ParameterSchema",
1511
1574
  "location": {
1512
1575
  "filePath": "watcher.ts",
1513
- "line": 74,
1576
+ "line": 76,
1514
1577
  "character": 5
1515
1578
  },
1516
1579
  "name": "workspace",
@@ -1518,7 +1581,7 @@
1518
1581
  "__schema": "TypeRefSchema",
1519
1582
  "location": {
1520
1583
  "filePath": "watcher.ts",
1521
- "line": 74,
1584
+ "line": 76,
1522
1585
  "character": 24
1523
1586
  },
1524
1587
  "name": "Workspace",
@@ -1534,7 +1597,7 @@
1534
1597
  "__schema": "ParameterSchema",
1535
1598
  "location": {
1536
1599
  "filePath": "watcher.ts",
1537
- "line": 75,
1600
+ "line": 77,
1538
1601
  "character": 5
1539
1602
  },
1540
1603
  "name": "pubsub",
@@ -1542,7 +1605,7 @@
1542
1605
  "__schema": "TypeRefSchema",
1543
1606
  "location": {
1544
1607
  "filePath": "watcher.ts",
1545
- "line": 75,
1608
+ "line": 77,
1546
1609
  "character": 21
1547
1610
  },
1548
1611
  "name": "PubsubMain",
@@ -1558,7 +1621,7 @@
1558
1621
  "__schema": "ParameterSchema",
1559
1622
  "location": {
1560
1623
  "filePath": "watcher.ts",
1561
- "line": 76,
1624
+ "line": 78,
1562
1625
  "character": 5
1563
1626
  },
1564
1627
  "name": "watcherMain",
@@ -1566,7 +1629,7 @@
1566
1629
  "__schema": "TypeRefSchema",
1567
1630
  "location": {
1568
1631
  "filePath": "watcher.ts",
1569
- "line": 76,
1632
+ "line": 78,
1570
1633
  "character": 26
1571
1634
  },
1572
1635
  "name": "WatcherMain"
@@ -1578,7 +1641,7 @@
1578
1641
  "__schema": "ParameterSchema",
1579
1642
  "location": {
1580
1643
  "filePath": "watcher.ts",
1581
- "line": 77,
1644
+ "line": 79,
1582
1645
  "character": 5
1583
1646
  },
1584
1647
  "name": "options",
@@ -1586,7 +1649,7 @@
1586
1649
  "__schema": "TypeRefSchema",
1587
1650
  "location": {
1588
1651
  "filePath": "watcher.ts",
1589
- "line": 77,
1652
+ "line": 79,
1590
1653
  "character": 22
1591
1654
  },
1592
1655
  "name": "WatchOptions"
@@ -1599,7 +1662,7 @@
1599
1662
  "__schema": "ThisTypeSchema",
1600
1663
  "location": {
1601
1664
  "filePath": "watcher.ts",
1602
- "line": 64,
1665
+ "line": 66,
1603
1666
  "character": 1
1604
1667
  },
1605
1668
  "name": "Watcher"
@@ -1610,7 +1673,7 @@
1610
1673
  "__schema": "GetAccessorSchema",
1611
1674
  "location": {
1612
1675
  "filePath": "watcher.ts",
1613
- "line": 83,
1676
+ "line": 85,
1614
1677
  "character": 3
1615
1678
  },
1616
1679
  "signature": "(getter) Watcher.consumer: Consumer",
@@ -1619,7 +1682,7 @@
1619
1682
  "__schema": "TypeRefSchema",
1620
1683
  "location": {
1621
1684
  "filePath": "watcher.ts",
1622
- "line": 83,
1685
+ "line": 85,
1623
1686
  "character": 3
1624
1687
  },
1625
1688
  "name": "Consumer",
@@ -1630,7 +1693,7 @@
1630
1693
  "__schema": "FunctionLikeSchema",
1631
1694
  "location": {
1632
1695
  "filePath": "watcher.ts",
1633
- "line": 87,
1696
+ "line": 89,
1634
1697
  "character": 3
1635
1698
  },
1636
1699
  "signature": "(method) Watcher.watch(): Promise<unknown>",
@@ -1640,7 +1703,7 @@
1640
1703
  "__schema": "InferenceTypeSchema",
1641
1704
  "location": {
1642
1705
  "filePath": "watcher.ts",
1643
- "line": 87,
1706
+ "line": 89,
1644
1707
  "character": 3
1645
1708
  },
1646
1709
  "type": "Promise<unknown>"
@@ -1659,7 +1722,7 @@
1659
1722
  "__schema": "ModuleSchema",
1660
1723
  "location": {
1661
1724
  "filePath": "watcher.ts",
1662
- "line": 61,
1725
+ "line": 63,
1663
1726
  "character": 1
1664
1727
  },
1665
1728
  "exports": [
@@ -1667,7 +1730,7 @@
1667
1730
  "__schema": "VariableLikeSchema",
1668
1731
  "location": {
1669
1732
  "filePath": "watcher.ts",
1670
- "line": 61,
1733
+ "line": 63,
1671
1734
  "character": 7
1672
1735
  },
1673
1736
  "signature": "const DEBOUNCE_WAIT_MS: 100",
@@ -1676,7 +1739,7 @@
1676
1739
  "__schema": "InferenceTypeSchema",
1677
1740
  "location": {
1678
1741
  "filePath": "watcher.ts",
1679
- "line": 61,
1742
+ "line": 63,
1680
1743
  "character": 7
1681
1744
  },
1682
1745
  "type": "100"
@@ -1691,7 +1754,7 @@
1691
1754
  "__schema": "TypeSchema",
1692
1755
  "location": {
1693
1756
  "filePath": "watcher.ts",
1694
- "line": 62,
1757
+ "line": 64,
1695
1758
  "character": 1
1696
1759
  },
1697
1760
  "signature": "type PathLinux = string",
@@ -1700,7 +1763,7 @@
1700
1763
  "__schema": "KeywordTypeSchema",
1701
1764
  "location": {
1702
1765
  "filePath": "watcher.ts",
1703
- "line": 62,
1766
+ "line": 64,
1704
1767
  "character": 18
1705
1768
  },
1706
1769
  "name": "string"
@@ -2552,7 +2615,7 @@
2552
2615
  "componentId": {
2553
2616
  "scope": "teambit.workspace",
2554
2617
  "name": "watcher",
2555
- "version": "1.0.203"
2618
+ "version": "1.0.205"
2556
2619
  },
2557
2620
  "taggedModuleExports": []
2558
2621
  }
@@ -1,9 +1,4 @@
1
1
  import { OnComponentEventResult } from '@teambit/workspace';
2
- export declare const formatWatchPathsSortByComponent: (trackDirs: any) => string;
3
- /**
4
- * todo: this was implemented incorrectly.
5
- * the original idea of `SerializableResults` was to have each one of the aspects registered to the slot, the
6
- * ability to have their own formatting to their results, and then `toString()` method to print them.
7
- * Here, the printing is specifically to the Compiler aspect. It should move to where it belongs.
8
- */
9
- export declare function formatCompileResults(compileResults: OnComponentEventResult[], verbose: boolean): string;
2
+ import { RootDirs } from './watcher';
3
+ export declare function formatWatchPathsSortByComponent(trackDirs: RootDirs): string;
4
+ export declare function formatCompileResults(compileResults: OnComponentEventResult[]): string;
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.formatCompileResults = formatCompileResults;
7
- exports.formatWatchPathsSortByComponent = void 0;
7
+ exports.formatWatchPathsSortByComponent = formatWatchPathsSortByComponent;
8
8
  function _logger() {
9
9
  const data = require("@teambit/logger");
10
10
  _logger = function () {
@@ -12,6 +12,13 @@ function _logger() {
12
12
  };
13
13
  return data;
14
14
  }
15
+ function _compiler() {
16
+ const data = require("@teambit/compiler");
17
+ _compiler = function () {
18
+ return data;
19
+ };
20
+ return data;
21
+ }
15
22
  function _chalk() {
16
23
  const data = _interopRequireDefault(require("chalk"));
17
24
  _chalk = function () {
@@ -19,37 +26,27 @@ function _chalk() {
19
26
  };
20
27
  return data;
21
28
  }
29
+ function _lodash() {
30
+ const data = require("lodash");
31
+ _lodash = function () {
32
+ return data;
33
+ };
34
+ return data;
35
+ }
22
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
- const verboseComponentFilesArrayToString = (componentFiles = []) => {
24
- return componentFiles.reduce((outputString, filePath) => `${outputString} \t - ${filePath}\n`, ``);
25
- };
26
- const resultsForExtensionArrayToString = (resultsForExtension, verbose) => {
27
- return resultsForExtension.reduce((outputString, resultForExtension) => `${outputString}${_logger().Logger.successSymbol()}SUCCESS\t${resultForExtension.component}\n
28
- ${verbose ? resultForExtension.componentFilesAsString : ''}\n`, '');
29
- };
30
- const formatWatchPathsSortByComponent = trackDirs => {
31
- return Object.keys(trackDirs).reduce((outputString, watchPath) => `${outputString}
32
- ${_logger().Logger.successSymbol()} SUCCESS\t${trackDirs[watchPath]}\n
33
- \t - ${watchPath}\n\n`, ` ${_chalk().default.underline('STATUS\t\tCOMPONENT ID')}\n`);
34
- };
35
-
36
- /**
37
- * todo: this was implemented incorrectly.
38
- * the original idea of `SerializableResults` was to have each one of the aspects registered to the slot, the
39
- * ability to have their own formatting to their results, and then `toString()` method to print them.
40
- * Here, the printing is specifically to the Compiler aspect. It should move to where it belongs.
41
- */
42
- exports.formatWatchPathsSortByComponent = formatWatchPathsSortByComponent;
43
- function formatCompileResults(compileResults, verbose) {
44
- if (!compileResults.length || !Array.isArray(compileResults)) return '';
45
- return compileResults.filter(compileResult => compileResult.results?.results && Array.isArray(compileResult.results?.results)).map(compileResult => ({
46
- extensionId: compileResult.extensionId,
47
- resultsForExtension: compileResult.results?.results?.map(resultForExtension => ({
48
- component: resultForExtension.component,
49
- componentFilesAsString: verboseComponentFilesArrayToString(resultForExtension.buildResults)
50
- }))
51
- })).reduce((outputString, compileResult) => `${outputString}
52
- ${resultsForExtensionArrayToString(compileResult.resultsForExtension, verbose)}`, ` ${_chalk().default.underline('STATUS\tCOMPONENT ID')}`);
37
+ function formatWatchPathsSortByComponent(trackDirs) {
38
+ const title = ` ${_chalk().default.underline('STATUS\tCOMPONENT ID')}\n`;
39
+ return Object.keys(trackDirs).reduce((outputString, watchPath) => {
40
+ const componentId = trackDirs[watchPath];
41
+ const formattedWatchPath = `\t\t - ${watchPath}\n`;
42
+ return `${outputString}${_logger().Logger.successSymbol()} SUCCESS\t${componentId}\n${formattedWatchPath}`;
43
+ }, title);
44
+ }
45
+ function formatCompileResults(compileResults) {
46
+ if (!compileResults.length) return '';
47
+ return (0, _lodash().compact)(compileResults
48
+ // currently, we are interested only in the compiler results
49
+ .filter(compileResult => compileResult.extensionId === _compiler().CompilerAspect.id).map(compileResult => compileResult.results.toString())).join('\n');
53
50
  }
54
51
 
55
52
  //# sourceMappingURL=output-formatter.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_logger","data","require","_chalk","_interopRequireDefault","obj","__esModule","default","verboseComponentFilesArrayToString","componentFiles","reduce","outputString","filePath","resultsForExtensionArrayToString","resultsForExtension","verbose","resultForExtension","Logger","successSymbol","component","componentFilesAsString","formatWatchPathsSortByComponent","trackDirs","Object","keys","watchPath","chalk","underline","exports","formatCompileResults","compileResults","length","Array","isArray","filter","compileResult","results","map","extensionId","buildResults"],"sources":["output-formatter.ts"],"sourcesContent":["import { Logger } from '@teambit/logger';\nimport { OnComponentEventResult } from '@teambit/workspace';\nimport chalk from 'chalk';\n\nconst verboseComponentFilesArrayToString = (componentFiles = []) => {\n return componentFiles.reduce((outputString, filePath) => `${outputString} \\t - ${filePath}\\n`, ``);\n};\n\nconst resultsForExtensionArrayToString = (resultsForExtension, verbose) => {\n return resultsForExtension.reduce(\n (outputString, resultForExtension) =>\n `${outputString}${Logger.successSymbol()}SUCCESS\\t${resultForExtension.component}\\n\n ${verbose ? resultForExtension.componentFilesAsString : ''}\\n`,\n ''\n );\n};\n\nexport const formatWatchPathsSortByComponent = (trackDirs) => {\n return Object.keys(trackDirs).reduce(\n (outputString, watchPath) =>\n `${outputString}\n ${Logger.successSymbol()} SUCCESS\\t${trackDirs[watchPath]}\\n\n \\t - ${watchPath}\\n\\n`,\n ` ${chalk.underline('STATUS\\t\\tCOMPONENT ID')}\\n`\n );\n};\n\n/**\n * todo: this was implemented incorrectly.\n * the original idea of `SerializableResults` was to have each one of the aspects registered to the slot, the\n * ability to have their own formatting to their results, and then `toString()` method to print them.\n * Here, the printing is specifically to the Compiler aspect. It should move to where it belongs.\n */\nexport function formatCompileResults(compileResults: OnComponentEventResult[], verbose: boolean) {\n if (!compileResults.length || !Array.isArray(compileResults)) return '';\n return compileResults\n .filter((compileResult) => compileResult.results?.results && Array.isArray(compileResult.results?.results))\n .map((compileResult) => ({\n extensionId: compileResult.extensionId,\n resultsForExtension: compileResult.results?.results?.map((resultForExtension) => ({\n component: resultForExtension.component,\n componentFilesAsString: verboseComponentFilesArrayToString(resultForExtension.buildResults),\n })),\n }))\n .reduce(\n (outputString, compileResult) =>\n `${outputString}\n ${resultsForExtensionArrayToString(compileResult.resultsForExtension, verbose)}`,\n ` ${chalk.underline('STATUS\\tCOMPONENT ID')}`\n );\n}\n"],"mappings":";;;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,OAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,MAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAG,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE1B,MAAMG,kCAAkC,GAAGA,CAACC,cAAc,GAAG,EAAE,KAAK;EAClE,OAAOA,cAAc,CAACC,MAAM,CAAC,CAACC,YAAY,EAAEC,QAAQ,KAAM,GAAED,YAAa,SAAQC,QAAS,IAAG,EAAG,EAAC,CAAC;AACpG,CAAC;AAED,MAAMC,gCAAgC,GAAGA,CAACC,mBAAmB,EAAEC,OAAO,KAAK;EACzE,OAAOD,mBAAmB,CAACJ,MAAM,CAC/B,CAACC,YAAY,EAAEK,kBAAkB,KAC9B,GAAEL,YAAa,GAAEM,gBAAM,CAACC,aAAa,CAAC,CAAE,YAAWF,kBAAkB,CAACG,SAAU;AACvF,OAAOJ,OAAO,GAAGC,kBAAkB,CAACI,sBAAsB,GAAG,EAAG,IAAG,EAC/D,EACF,CAAC;AACH,CAAC;AAEM,MAAMC,+BAA+B,GAAIC,SAAS,IAAK;EAC5D,OAAOC,MAAM,CAACC,IAAI,CAACF,SAAS,CAAC,CAACZ,MAAM,CAClC,CAACC,YAAY,EAAEc,SAAS,KACrB,GAAEd,YAAa;AACtB,MAAMM,gBAAM,CAACC,aAAa,CAAC,CAAE,aAAYI,SAAS,CAACG,SAAS,CAAE;AAC9D,WAAWA,SAAU,MAAK,EACrB,IAAGC,gBAAK,CAACC,SAAS,CAAC,wBAAwB,CAAE,IAChD,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALAC,OAAA,CAAAP,+BAAA,GAAAA,+BAAA;AAMO,SAASQ,oBAAoBA,CAACC,cAAwC,EAAEf,OAAgB,EAAE;EAC/F,IAAI,CAACe,cAAc,CAACC,MAAM,IAAI,CAACC,KAAK,CAACC,OAAO,CAACH,cAAc,CAAC,EAAE,OAAO,EAAE;EACvE,OAAOA,cAAc,CAClBI,MAAM,CAAEC,aAAa,IAAKA,aAAa,CAACC,OAAO,EAAEA,OAAO,IAAIJ,KAAK,CAACC,OAAO,CAACE,aAAa,CAACC,OAAO,EAAEA,OAAO,CAAC,CAAC,CAC1GC,GAAG,CAAEF,aAAa,KAAM;IACvBG,WAAW,EAAEH,aAAa,CAACG,WAAW;IACtCxB,mBAAmB,EAAEqB,aAAa,CAACC,OAAO,EAAEA,OAAO,EAAEC,GAAG,CAAErB,kBAAkB,KAAM;MAChFG,SAAS,EAAEH,kBAAkB,CAACG,SAAS;MACvCC,sBAAsB,EAAEZ,kCAAkC,CAACQ,kBAAkB,CAACuB,YAAY;IAC5F,CAAC,CAAC;EACJ,CAAC,CAAC,CAAC,CACF7B,MAAM,CACL,CAACC,YAAY,EAAEwB,aAAa,KACzB,GAAExB,YAAa;AACxB,IAAIE,gCAAgC,CAACsB,aAAa,CAACrB,mBAAmB,EAAEC,OAAO,CAAE,EAAC,EAC3E,IAAGW,gBAAK,CAACC,SAAS,CAAC,sBAAsB,CAAE,EAC9C,CAAC;AACL","ignoreList":[]}
1
+ {"version":3,"names":["_logger","data","require","_compiler","_chalk","_interopRequireDefault","_lodash","obj","__esModule","default","formatWatchPathsSortByComponent","trackDirs","title","chalk","underline","Object","keys","reduce","outputString","watchPath","componentId","formattedWatchPath","Logger","successSymbol","formatCompileResults","compileResults","length","compact","filter","compileResult","extensionId","CompilerAspect","id","map","results","toString","join"],"sources":["output-formatter.ts"],"sourcesContent":["import { Logger } from '@teambit/logger';\nimport { CompilerAspect } from '@teambit/compiler';\nimport { OnComponentEventResult } from '@teambit/workspace';\nimport chalk from 'chalk';\nimport { RootDirs } from './watcher';\nimport { compact } from 'lodash';\n\nexport function formatWatchPathsSortByComponent(trackDirs: RootDirs) {\n const title = ` ${chalk.underline('STATUS\\tCOMPONENT ID')}\\n`;\n return Object.keys(trackDirs).reduce((outputString, watchPath) => {\n const componentId = trackDirs[watchPath];\n const formattedWatchPath = `\\t\\t - ${watchPath}\\n`;\n return `${outputString}${Logger.successSymbol()} SUCCESS\\t${componentId}\\n${formattedWatchPath}`;\n }, title);\n}\n\nexport function formatCompileResults(compileResults: OnComponentEventResult[]) {\n if (!compileResults.length) return '';\n return compact(\n compileResults\n // currently, we are interested only in the compiler results\n .filter((compileResult) => compileResult.extensionId === CompilerAspect.id)\n .map((compileResult) => compileResult.results.toString())\n ).join('\\n');\n}\n"],"mappings":";;;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,UAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,SAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,OAAA;EAAA,MAAAH,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAE,MAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAiC,SAAAI,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE1B,SAASG,+BAA+BA,CAACC,SAAmB,EAAE;EACnE,MAAMC,KAAK,GAAI,IAAGC,gBAAK,CAACC,SAAS,CAAC,sBAAsB,CAAE,IAAG;EAC7D,OAAOC,MAAM,CAACC,IAAI,CAACL,SAAS,CAAC,CAACM,MAAM,CAAC,CAACC,YAAY,EAAEC,SAAS,KAAK;IAChE,MAAMC,WAAW,GAAGT,SAAS,CAACQ,SAAS,CAAC;IACxC,MAAME,kBAAkB,GAAI,UAASF,SAAU,IAAG;IAClD,OAAQ,GAAED,YAAa,GAAEI,gBAAM,CAACC,aAAa,CAAC,CAAE,aAAYH,WAAY,KAAIC,kBAAmB,EAAC;EAClG,CAAC,EAAET,KAAK,CAAC;AACX;AAEO,SAASY,oBAAoBA,CAACC,cAAwC,EAAE;EAC7E,IAAI,CAACA,cAAc,CAACC,MAAM,EAAE,OAAO,EAAE;EACrC,OAAO,IAAAC,iBAAO,EACZF;EACE;EAAA,CACCG,MAAM,CAAEC,aAAa,IAAKA,aAAa,CAACC,WAAW,KAAKC,0BAAc,CAACC,EAAE,CAAC,CAC1EC,GAAG,CAAEJ,aAAa,IAAKA,aAAa,CAACK,OAAO,CAACC,QAAQ,CAAC,CAAC,CAC5D,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AACd","ignoreList":[]}
package/dist/watch.cmd.js CHANGED
@@ -124,7 +124,7 @@ function getMessages(logger) {
124
124
  if (verbose) {
125
125
  logger.console((0, _outputFormatter().formatWatchPathsSortByComponent)(watchPathsSortByComponent));
126
126
  }
127
- logger.console(_chalk().default.yellow(`Watching for component changes in workspace ${workspace.config.name} (${(0, _moment().default)().format('HH:mm:ss')})...\n`));
127
+ logger.console(_chalk().default.yellow(`Watching for component changes in workspace ${workspace.name} (${(0, _moment().default)().format('HH:mm:ss')})...\n`));
128
128
  },
129
129
  onChange: (...args) => {
130
130
  printOnFileEvent(logger, 'changed', ...args);
@@ -150,9 +150,9 @@ function printOnFileEvent(logger, eventMsgPlaceholder, filePaths, buildResults,
150
150
  logger.console(`${failureMsg}\n\n`);
151
151
  return;
152
152
  }
153
- logger.console(`The file(s) ${files} have been ${eventMsgPlaceholder}.\n\n`);
154
- logger.console((0, _outputFormatter().formatCompileResults)(buildResults, verbose));
155
- logger.console(`Finished. (${duration}ms)`);
153
+ logger.console(`The file(s) ${files} have been ${eventMsgPlaceholder}.\n`);
154
+ logger.console((0, _outputFormatter().formatCompileResults)(buildResults));
155
+ logger.console(`Finished (${duration}ms).`);
156
156
  logger.console(_chalk().default.yellow(`Watching for component changes (${(0, _moment().default)().format('HH:mm:ss')})...`));
157
157
  }
158
158
 
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_moment","_compiler","_outputFormatter","_checkTypes","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","WatchCommand","constructor","pubsub","logger","watcher","event","type","CompilerErrorEvent","TYPE","console","error","registerToEvents","sub","CompilerAspect","id","eventsListener","report","cliArgs","watchCmdOpts","verbose","checkTypes","getCheckTypesEnum","undefined","CheckTypes","None","EntireProject","ChangedFile","Error","watchOpts","msgs","getMessages","compile","preCompile","skipPreCompilation","spawnTSServer","Boolean","watch","exports","onAll","path","onStart","onReady","workspace","watchPathsSortByComponent","clearOutdatedData","formatWatchPathsSortByComponent","chalk","yellow","config","name","moment","format","onChange","args","printOnFileEvent","onAdd","onUnlink","onError","err","eventMsgPlaceholder","filePaths","buildResults","duration","failureMsg","files","join","length","formatCompileResults","process","stdout","write"],"sources":["watch.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport moment from 'moment';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport type { Logger } from '@teambit/logger';\nimport type { BitBaseEvent, PubsubMain } from '@teambit/pubsub';\nimport { OnComponentEventResult } from '@teambit/workspace';\n\n// import IDs and events\nimport { CompilerAspect, CompilerErrorEvent } from '@teambit/compiler';\n\nimport { EventMessages, WatchOptions } from './watcher';\nimport { formatCompileResults, formatWatchPathsSortByComponent } from './output-formatter';\nimport { CheckTypes } from './check-types';\nimport { WatcherMain } from './watcher.main.runtime';\n\nexport type WatchCmdOpts = {\n verbose?: boolean;\n skipPreCompilation?: boolean;\n checkTypes?: string | boolean;\n};\n\nexport class WatchCommand implements Command {\n name = 'watch';\n description = 'automatically recompile modified components (on save)';\n extendedDescription = `by default, the watcher doesn't use polling, to keep the CPU idle.\nif this doesn't work well for you, run \"bit config set watch_use_polling true\" to use polling.`;\n helpUrl = 'reference/compiling/compiler-overview';\n alias = '';\n group = 'development';\n options = [\n ['v', 'verbose', 'show all watch events and compiler verbose output'],\n ['', 'skip-pre-compilation', 'skip compilation step before starting to watch'],\n [\n 't',\n 'check-types [string]',\n 'EXPERIMENTAL. show errors/warnings for types. options are [file, project] to investigate only changed file or entire project. defaults to project',\n ],\n ] as CommandOptions;\n\n constructor(\n /**\n * logger extension.\n */\n private pubsub: PubsubMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * watcher extension.\n */\n private watcher: WatcherMain\n ) {\n this.registerToEvents();\n }\n\n private registerToEvents() {\n this.pubsub.sub(CompilerAspect.id, this.eventsListener);\n }\n\n private eventsListener = (event: BitBaseEvent<any>) => {\n switch (event.type) {\n case CompilerErrorEvent.TYPE:\n this.logger.console(`Watcher error ${event.data.error}, 'error'`);\n break;\n default:\n }\n };\n\n async report(cliArgs: [], watchCmdOpts: WatchCmdOpts) {\n const { verbose, checkTypes } = watchCmdOpts;\n const getCheckTypesEnum = () => {\n switch (checkTypes) {\n case undefined:\n case false:\n return CheckTypes.None;\n case 'project':\n case true: // project is the default\n return CheckTypes.EntireProject;\n case 'file':\n return CheckTypes.ChangedFile;\n default:\n throw new Error(`check-types can be either \"file\" or \"project\". got \"${checkTypes}\"`);\n }\n };\n const watchOpts: WatchOptions = {\n msgs: getMessages(this.logger),\n verbose,\n compile: true,\n preCompile: !watchCmdOpts.skipPreCompilation,\n spawnTSServer: Boolean(checkTypes), // if check-types is enabled, it must spawn the tsserver.\n checkTypes: getCheckTypesEnum(),\n };\n await this.watcher.watch(watchOpts);\n return 'watcher terminated';\n }\n}\n\nfunction getMessages(logger: Logger): EventMessages {\n return {\n onAll: (event: string, path: string) => logger.console(`Event: \"${event}\". Path: ${path}`),\n onStart: () => {},\n onReady: (workspace, watchPathsSortByComponent, verbose?: boolean) => {\n clearOutdatedData();\n if (verbose) {\n logger.console(formatWatchPathsSortByComponent(watchPathsSortByComponent));\n }\n logger.console(\n chalk.yellow(\n `Watching for component changes in workspace ${workspace.config.name} (${moment().format('HH:mm:ss')})...\\n`\n )\n );\n },\n onChange: (...args) => {\n printOnFileEvent(logger, 'changed', ...args);\n },\n onAdd: (...args) => {\n printOnFileEvent(logger, 'added', ...args);\n },\n onUnlink: (...args) => {\n printOnFileEvent(logger, 'removed', ...args);\n },\n onError: (err) => {\n logger.console(`Watcher error ${err}`);\n },\n };\n}\n\nfunction printOnFileEvent(\n logger: Logger,\n eventMsgPlaceholder: 'changed' | 'added' | 'removed',\n filePaths: string[],\n buildResults: OnComponentEventResult[],\n verbose: boolean,\n duration: number,\n failureMsg?: string\n) {\n const files = filePaths.join(', ');\n if (!buildResults.length) {\n if (!failureMsg) {\n if (verbose) logger.console(`The files ${files} have been ${eventMsgPlaceholder}, but nothing to compile\\n\\n`);\n return;\n }\n logger.console(`${failureMsg}\\n\\n`);\n return;\n }\n logger.console(`The file(s) ${files} have been ${eventMsgPlaceholder}.\\n\\n`);\n logger.console(formatCompileResults(buildResults, verbose));\n logger.console(`Finished. (${duration}ms)`);\n logger.console(chalk.yellow(`Watching for component changes (${moment().format('HH:mm:ss')})...`));\n}\n\n/**\n * with console.clear() all history is deleted from the console. this function preserver the history.\n */\nfunction clearOutdatedData() {\n process.stdout.write('\\x1Bc');\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_moment","_compiler","_outputFormatter","_checkTypes","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","WatchCommand","constructor","pubsub","logger","watcher","event","type","CompilerErrorEvent","TYPE","console","error","registerToEvents","sub","CompilerAspect","id","eventsListener","report","cliArgs","watchCmdOpts","verbose","checkTypes","getCheckTypesEnum","undefined","CheckTypes","None","EntireProject","ChangedFile","Error","watchOpts","msgs","getMessages","compile","preCompile","skipPreCompilation","spawnTSServer","Boolean","watch","exports","onAll","path","onStart","onReady","workspace","watchPathsSortByComponent","clearOutdatedData","formatWatchPathsSortByComponent","chalk","yellow","name","moment","format","onChange","args","printOnFileEvent","onAdd","onUnlink","onError","err","eventMsgPlaceholder","filePaths","buildResults","duration","failureMsg","files","join","length","formatCompileResults","process","stdout","write"],"sources":["watch.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport moment from 'moment';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport type { Logger } from '@teambit/logger';\nimport type { BitBaseEvent, PubsubMain } from '@teambit/pubsub';\nimport { OnComponentEventResult, Workspace } from '@teambit/workspace';\n\n// import IDs and events\nimport { CompilerAspect, CompilerErrorEvent } from '@teambit/compiler';\n\nimport { EventMessages, RootDirs, WatchOptions } from './watcher';\nimport { formatCompileResults, formatWatchPathsSortByComponent } from './output-formatter';\nimport { CheckTypes } from './check-types';\nimport { WatcherMain } from './watcher.main.runtime';\n\nexport type WatchCmdOpts = {\n verbose?: boolean;\n skipPreCompilation?: boolean;\n checkTypes?: string | boolean;\n};\n\nexport class WatchCommand implements Command {\n name = 'watch';\n description = 'automatically recompile modified components (on save)';\n extendedDescription = `by default, the watcher doesn't use polling, to keep the CPU idle.\nif this doesn't work well for you, run \"bit config set watch_use_polling true\" to use polling.`;\n helpUrl = 'reference/compiling/compiler-overview';\n alias = '';\n group = 'development';\n options = [\n ['v', 'verbose', 'show all watch events and compiler verbose output'],\n ['', 'skip-pre-compilation', 'skip compilation step before starting to watch'],\n [\n 't',\n 'check-types [string]',\n 'EXPERIMENTAL. show errors/warnings for types. options are [file, project] to investigate only changed file or entire project. defaults to project',\n ],\n ] as CommandOptions;\n\n constructor(\n /**\n * logger extension.\n */\n private pubsub: PubsubMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * watcher extension.\n */\n private watcher: WatcherMain\n ) {\n this.registerToEvents();\n }\n\n private registerToEvents() {\n this.pubsub.sub(CompilerAspect.id, this.eventsListener);\n }\n\n private eventsListener = (event: BitBaseEvent<any>) => {\n switch (event.type) {\n case CompilerErrorEvent.TYPE:\n this.logger.console(`Watcher error ${event.data.error}, 'error'`);\n break;\n default:\n }\n };\n\n async report(cliArgs: [], watchCmdOpts: WatchCmdOpts) {\n const { verbose, checkTypes } = watchCmdOpts;\n const getCheckTypesEnum = () => {\n switch (checkTypes) {\n case undefined:\n case false:\n return CheckTypes.None;\n case 'project':\n case true: // project is the default\n return CheckTypes.EntireProject;\n case 'file':\n return CheckTypes.ChangedFile;\n default:\n throw new Error(`check-types can be either \"file\" or \"project\". got \"${checkTypes}\"`);\n }\n };\n const watchOpts: WatchOptions = {\n msgs: getMessages(this.logger),\n verbose,\n compile: true,\n preCompile: !watchCmdOpts.skipPreCompilation,\n spawnTSServer: Boolean(checkTypes), // if check-types is enabled, it must spawn the tsserver.\n checkTypes: getCheckTypesEnum(),\n };\n await this.watcher.watch(watchOpts);\n return 'watcher terminated';\n }\n}\n\nfunction getMessages(logger: Logger): EventMessages {\n return {\n onAll: (event: string, path: string) => logger.console(`Event: \"${event}\". Path: ${path}`),\n onStart: () => {},\n onReady: (workspace: Workspace, watchPathsSortByComponent: RootDirs, verbose?: boolean) => {\n clearOutdatedData();\n if (verbose) {\n logger.console(formatWatchPathsSortByComponent(watchPathsSortByComponent));\n }\n logger.console(\n chalk.yellow(\n `Watching for component changes in workspace ${workspace.name} (${moment().format('HH:mm:ss')})...\\n`\n )\n );\n },\n onChange: (...args) => {\n printOnFileEvent(logger, 'changed', ...args);\n },\n onAdd: (...args) => {\n printOnFileEvent(logger, 'added', ...args);\n },\n onUnlink: (...args) => {\n printOnFileEvent(logger, 'removed', ...args);\n },\n onError: (err) => {\n logger.console(`Watcher error ${err}`);\n },\n };\n}\n\nfunction printOnFileEvent(\n logger: Logger,\n eventMsgPlaceholder: 'changed' | 'added' | 'removed',\n filePaths: string[],\n buildResults: OnComponentEventResult[],\n verbose: boolean,\n duration: number,\n failureMsg?: string\n) {\n const files = filePaths.join(', ');\n if (!buildResults.length) {\n if (!failureMsg) {\n if (verbose) logger.console(`The files ${files} have been ${eventMsgPlaceholder}, but nothing to compile\\n\\n`);\n return;\n }\n logger.console(`${failureMsg}\\n\\n`);\n return;\n }\n logger.console(`The file(s) ${files} have been ${eventMsgPlaceholder}.\\n`);\n logger.console(formatCompileResults(buildResults));\n logger.console(`Finished (${duration}ms).`);\n logger.console(chalk.yellow(`Watching for component changes (${moment().format('HH:mm:ss')})...`));\n}\n\n/**\n * with console.clear() all history is deleted from the console. this function preserver the history.\n */\nfunction clearOutdatedData() {\n process.stdout.write('\\x1Bc');\n}\n"],"mappings":"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","ignoreList":[]}
package/dist/watcher.d.ts CHANGED
@@ -31,6 +31,10 @@ export type WatchOptions = {
31
31
  preCompile?: boolean;
32
32
  compile?: boolean;
33
33
  };
34
+ export type RootDirs = {
35
+ [dir: PathLinux]: ComponentID;
36
+ };
37
+ type PathLinux = string;
34
38
  export declare class Watcher {
35
39
  private workspace;
36
40
  private pubsub;
@@ -41,7 +45,7 @@ export declare class Watcher {
41
45
  private watchQueue;
42
46
  private bitMapChangesInProgress;
43
47
  private ipcEventsDir;
44
- private trackDirs;
48
+ private rootDirs;
45
49
  private verbose;
46
50
  private multipleWatchers;
47
51
  constructor(workspace: Workspace, pubsub: PubsubMain, watcherMain: WatcherMain, options: WatchOptions);
@@ -97,7 +101,8 @@ export declare class Watcher {
97
101
  private isComponentWatchedExternally;
98
102
  private getComponentIdByPath;
99
103
  private getRelativePathLinux;
100
- private findTrackDirByFilePathRecursively;
104
+ private findRootDirByFilePathRecursively;
101
105
  private createWatcher;
102
- private setTrackDirs;
106
+ private setRootDirs;
103
107
  }
108
+ export {};
package/dist/watcher.js CHANGED
@@ -118,7 +118,7 @@ class Watcher {
118
118
  _defineProperty(this, "watchQueue", new (_watchQueue().WatchQueue)());
119
119
  _defineProperty(this, "bitMapChangesInProgress", false);
120
120
  _defineProperty(this, "ipcEventsDir", void 0);
121
- _defineProperty(this, "trackDirs", {});
121
+ _defineProperty(this, "rootDirs", {});
122
122
  _defineProperty(this, "verbose", false);
123
123
  _defineProperty(this, "multipleWatchers", []);
124
124
  this.ipcEventsDir = this.watcherMain.ipcEvents.eventsDir;
@@ -133,8 +133,8 @@ class Watcher {
133
133
  msgs
134
134
  } = _this$options,
135
135
  watchOpts = _objectWithoutProperties(_this$options, _excluded);
136
- await this.setTrackDirs();
137
- const componentIds = Object.values(this.trackDirs);
136
+ await this.setRootDirs();
137
+ const componentIds = Object.values(this.rootDirs);
138
138
  await this.watcherMain.triggerOnPreWatch(componentIds, watchOpts);
139
139
  await this.createWatcher();
140
140
  const watcher = this.fsWatcher;
@@ -146,7 +146,7 @@ class Watcher {
146
146
  if (msgs?.onAll) watcher.on('all', msgs?.onAll);
147
147
  }
148
148
  watcher.on('ready', () => {
149
- msgs?.onReady(this.workspace, this.trackDirs, this.verbose);
149
+ msgs?.onReady(this.workspace, this.rootDirs, this.verbose);
150
150
  // console.log(this.fsWatcher.getWatched());
151
151
  _loader().default.stop();
152
152
  });
@@ -336,19 +336,19 @@ class Watcher {
336
336
  * if .bitmap changed, it's possible that a new component has been added. trigger onComponentAdd.
337
337
  */
338
338
  async handleBitmapChanges() {
339
- const previewsTrackDirs = _objectSpread({}, this.trackDirs);
339
+ const previewsRootDirs = _objectSpread({}, this.rootDirs);
340
340
  await this.workspace._reloadConsumer();
341
- await this.setTrackDirs();
341
+ await this.setRootDirs();
342
342
  await this.workspace.triggerOnBitmapChange();
343
- const newDirs = (0, _lodash().difference)(Object.keys(this.trackDirs), Object.keys(previewsTrackDirs));
344
- const removedDirs = (0, _lodash().difference)(Object.keys(previewsTrackDirs), Object.keys(this.trackDirs));
343
+ const newDirs = (0, _lodash().difference)(Object.keys(this.rootDirs), Object.keys(previewsRootDirs));
344
+ const removedDirs = (0, _lodash().difference)(Object.keys(previewsRootDirs), Object.keys(this.rootDirs));
345
345
  const results = [];
346
346
  if (newDirs.length) {
347
- const addResults = await (0, _pMapSeries().default)(newDirs, async dir => this.executeWatchOperationsOnComponent(this.trackDirs[dir], [], [], false));
347
+ const addResults = await (0, _pMapSeries().default)(newDirs, async dir => this.executeWatchOperationsOnComponent(this.rootDirs[dir], [], [], false));
348
348
  results.push(...addResults.flat());
349
349
  }
350
350
  if (removedDirs.length) {
351
- await (0, _pMapSeries().default)(removedDirs, dir => this.executeWatchOperationsOnRemove(previewsTrackDirs[dir]));
351
+ await (0, _pMapSeries().default)(removedDirs, dir => this.executeWatchOperationsOnRemove(previewsRootDirs[dir]));
352
352
  }
353
353
  return results;
354
354
  }
@@ -393,22 +393,22 @@ class Watcher {
393
393
  }
394
394
  getComponentIdByPath(filePath) {
395
395
  const relativeFile = this.getRelativePathLinux(filePath);
396
- const trackDir = this.findTrackDirByFilePathRecursively(relativeFile);
397
- if (!trackDir) {
396
+ const rootDir = this.findRootDirByFilePathRecursively(relativeFile);
397
+ if (!rootDir) {
398
398
  // the file is not part of any component. If it was a new component, or a new file of
399
399
  // existing component, then, handleBitmapChanges() should deal with it.
400
400
  return null;
401
401
  }
402
- return this.trackDirs[trackDir];
402
+ return this.rootDirs[rootDir];
403
403
  }
404
404
  getRelativePathLinux(filePath) {
405
405
  return (0, _utils().pathNormalizeToLinux)(this.consumer.getPathRelativeToConsumer(filePath));
406
406
  }
407
- findTrackDirByFilePathRecursively(filePath) {
408
- if (this.trackDirs[filePath]) return filePath;
407
+ findRootDirByFilePathRecursively(filePath) {
408
+ if (this.rootDirs[filePath]) return filePath;
409
409
  const parentDir = (0, _path().dirname)(filePath);
410
410
  if (parentDir === filePath) return null;
411
- return this.findTrackDirByFilePathRecursively(parentDir);
411
+ return this.findRootDirByFilePathRecursively(parentDir);
412
412
  }
413
413
  async createWatcher() {
414
414
  const usePollingConf = await this.watcherMain.globalConfig.get(_constants().CFG_WATCH_USE_POLLING);
@@ -438,13 +438,13 @@ class Watcher {
438
438
  _logger().default.console(`chokidar.options ${JSON.stringify(this.fsWatcher.options, undefined, 2)}`);
439
439
  }
440
440
  }
441
- async setTrackDirs() {
442
- this.trackDirs = {};
441
+ async setRootDirs() {
442
+ this.rootDirs = {};
443
443
  const componentsFromBitMap = this.consumer.bitMap.getAllComponents();
444
444
  componentsFromBitMap.map(componentMap => {
445
445
  const componentId = componentMap.id;
446
446
  const rootDir = componentMap.getRootDir();
447
- this.trackDirs[rootDir] = componentId;
447
+ this.rootDirs[rootDir] = componentId;
448
448
  });
449
449
  }
450
450
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_lodash","_loader","_constants","_logger","_utils","_pMapSeries","_chalk","_unmergedComponents","_chokidar","_workspace","_watchQueue","_excluded","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","key","i","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","call","sourceKeys","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","DEBOUNCE_WAIT_MS","Watcher","constructor","workspace","pubsub","watcherMain","options","WatchQueue","ipcEventsDir","ipcEvents","eventsDir","verbose","consumer","watch","_this$options","msgs","watchOpts","setTrackDirs","componentIds","values","trackDirs","triggerOnPreWatch","createWatcher","watcher","fsWatcher","onStart","scope","watchScopeInternalFiles","Promise","resolve","reject","onAll","on","onReady","loader","stop","event","filePath","startTime","Date","getTime","files","results","debounced","irrelevant","failureMsg","handleChange","duration","onChange","err","onError","endsWith","BIT_MAP","bitMapChangesInProgress","buildResults","watchQueue","add","handleBitmapChanges","onIdle","dirname","eventName","basename","logger","warn","triggerGotEvent","WORKSPACE_JSONC","triggerOnWorkspaceConfigChange","UNMERGED_FILENAME","clearCache","componentId","getComponentIdByPath","compIdStr","toString","changedFilesPerComponent","sleep","triggerCompChanges","undefined","join","msg","error","console","message","ms","setTimeout","updatedComponentId","hasId","ids","listIds","find","id","isEqual","ignoreVersion","debug","clearComponentCache","component","get","componentMap","state","_consumer","Error","compFilesRelativeToWorkspace","getFilesRelativeToConsumer","compFiles","nonCompFiles","partition","relativeFile","getRelativePathLinux","Boolean","p","removedFiles","compact","all","map","fs","pathExists","toStringWithoutVersion","bitMap","updateComponentPaths","f","getPathRelativeToConsumer","executeWatchOperationsOnComponent","previewsTrackDirs","_reloadConsumer","triggerOnBitmapChange","newDirs","difference","removedDirs","addResults","mapSeries","dir","flat","executeWatchOperationsOnRemove","chalk","bold","pub","WorkspaceAspect","createOnComponentRemovedEvent","triggerOnComponentRemove","isChange","isComponentWatchedExternally","idStr","createOnComponentChangeEvent","createOnComponentAddEvent","triggerOnComponentChange","triggerOnComponentAdd","OnComponentRemovedEvent","now","hook","OnComponentChangeEvent","OnComponentAddEvent","watcherData","multipleWatchers","m","compilerId","trackDir","findTrackDirByFilePathRecursively","pathNormalizeToLinux","parentDir","usePollingConf","globalConfig","CFG_WATCH_USE_POLLING","usePolling","ignoreLocalScope","pathToCheck","startsWith","path","chokidar","ignoreInitial","ignored","persistent","JSON","stringify","componentsFromBitMap","getAllComponents","rootDir","getRootDir","exports"],"sources":["watcher.ts"],"sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport fs from 'fs-extra';\nimport { dirname, basename } from 'path';\nimport { compact, difference, partition } from 'lodash';\nimport { ComponentID } from '@teambit/component-id';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { BIT_MAP, CFG_WATCH_USE_POLLING, WORKSPACE_JSONC } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport mapSeries from 'p-map-series';\nimport chalk from 'chalk';\nimport { ChildProcess } from 'child_process';\nimport { UNMERGED_FILENAME } from '@teambit/legacy/dist/scope/lanes/unmerged-components';\nimport chokidar, { FSWatcher } from '@teambit/chokidar';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport { PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport {\n WorkspaceAspect,\n Workspace,\n OnComponentEventResult,\n OnComponentChangeEvent,\n OnComponentAddEvent,\n OnComponentRemovedEvent,\n} from '@teambit/workspace';\nimport { CheckTypes } from './check-types';\nimport { WatcherMain } from './watcher.main.runtime';\nimport { WatchQueue } from './watch-queue';\n\nexport type WatcherProcessData = { watchProcess: ChildProcess; compilerId: ComponentID; componentIds: ComponentID[] };\n\nexport type EventMessages = {\n onAll: Function;\n onStart: Function;\n onReady: Function;\n onChange: OnFileEventFunc;\n onAdd: OnFileEventFunc;\n onUnlink: OnFileEventFunc;\n onError: Function;\n};\n\nexport type OnFileEventFunc = (\n filePaths: string[],\n buildResults: OnComponentEventResult[],\n verbose: boolean,\n duration: number,\n failureMsg?: string\n) => void;\n\nexport type WatchOptions = {\n msgs?: EventMessages;\n initiator?: CompilationInitiator;\n verbose?: boolean; // print watch events to the console. (also ts-server events if spawnTSServer is true)\n spawnTSServer?: boolean; // needed for check types and extract API/docs.\n checkTypes?: CheckTypes; // if enabled, the spawnTSServer becomes true.\n preCompile?: boolean; // whether compile all components before start watching\n compile?: boolean; // whether compile modified/added components during watch process\n};\n\nconst DEBOUNCE_WAIT_MS = 100;\ntype PathLinux = string; // ts fails when importing it from @teambit/legacy/dist/utils/path.\n\nexport class Watcher {\n private fsWatcher: FSWatcher;\n private changedFilesPerComponent: { [componentId: string]: string[] } = {};\n private watchQueue = new WatchQueue();\n private bitMapChangesInProgress = false;\n private ipcEventsDir: string;\n private trackDirs: { [dir: PathLinux]: ComponentID } = {};\n private verbose = false;\n private multipleWatchers: WatcherProcessData[] = [];\n constructor(\n private workspace: Workspace,\n private pubsub: PubsubMain,\n private watcherMain: WatcherMain,\n private options: WatchOptions\n ) {\n this.ipcEventsDir = this.watcherMain.ipcEvents.eventsDir;\n this.verbose = this.options.verbose || false;\n }\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n async watch() {\n const { msgs, ...watchOpts } = this.options;\n await this.setTrackDirs();\n const componentIds = Object.values(this.trackDirs);\n await this.watcherMain.triggerOnPreWatch(componentIds, watchOpts);\n await this.createWatcher();\n const watcher = this.fsWatcher;\n msgs?.onStart(this.workspace);\n\n await this.workspace.scope.watchScopeInternalFiles();\n\n return new Promise((resolve, reject) => {\n if (this.verbose) {\n // @ts-ignore\n if (msgs?.onAll) watcher.on('all', msgs?.onAll);\n }\n watcher.on('ready', () => {\n msgs?.onReady(this.workspace, this.trackDirs, this.verbose);\n // console.log(this.fsWatcher.getWatched());\n loader.stop();\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('all', async (event, filePath) => {\n if (event !== 'change' && event !== 'add' && event !== 'unlink') return;\n const startTime = new Date().getTime();\n const { files, results, debounced, irrelevant, failureMsg } = await this.handleChange(filePath);\n if (debounced || irrelevant) {\n return;\n }\n const duration = new Date().getTime() - startTime;\n msgs?.onChange(files, results, this.verbose, duration, failureMsg);\n });\n watcher.on('error', (err) => {\n msgs?.onError(err);\n reject(err);\n });\n });\n }\n\n /**\n * *** DEBOUNCING ***\n * some actions trigger multiple files changes at (almost) the same time. e.g. \"git pull\".\n * this causes some performance and instability issues. a debouncing mechanism was implemented to help with this.\n * the way how it works is that the first file of the same component starts the execution with a delay (e.g. 200ms).\n * if, in the meanwhile, another file of the same component was changed, it won't start a new execution, instead,\n * it'll only add the file to `this.changedFilesPerComponent` prop.\n * once the execution starts, it'll delete this component-id from the `this.changedFilesPerComponent` array,\n * indicating the next file-change to start a new execution.\n *\n * implementation wise, `lodash.debounce` doesn't help here, because:\n * A) it doesn't return the results, unless \"leading\" option is true. here, it must be false, otherwise, it'll start\n * the execution immediately.\n * B) it debounces the method regardless the param passes to it. so it'll disregard the component-id and will delay\n * other components undesirably.\n *\n * *** QUEUE ***\n * the debouncing helps to not execute the same component multiple times concurrently. however, multiple components\n * and .bitmap changes execution can still be processed concurrently.\n * the following example explains why this is an issue.\n * compA is changed in the .bitmap file from version 0.0.1 to 0.0.2. its files were changed as well.\n * all these changes get pulled at the same time by \"git pull\", as a result, the execution of compA and the .bitmap\n * happen at the same time.\n * during the execution of compA, the component id is parsed as compA@0.0.1, later, it asks for the Workspace for this\n * id. while the workspace is looking for this id, the .bitmap execution reloaded the consumer and changed all versions.\n * after this change, the workspace doesn't have this id anymore, which will trigger an error.\n * to ensure this won't happen, we keep a flag to indicate whether the .bitmap execution is running, and if so, all\n * other executions are paused until the queue is empty (this is done by awaiting for queue.onIdle).\n * once the queue is empty, we know the .bitmap process was done and the workspace has all new ids.\n * in the example above, at this stage, the id will be resolved to compA@0.0.2.\n * one more thing, the queue is configured to have concurrency of 1. to make sure two components are not processed at\n * the same time. (the same way is done when loading all components from the filesystem/scope).\n * this way we can also ensure that if compA was started before the .bitmap execution, it will complete before the\n * .bitmap execution starts.\n */\n private async handleChange(filePath: string): Promise<{\n results: OnComponentEventResult[];\n files: string[];\n failureMsg?: string;\n debounced?: boolean;\n irrelevant?: boolean; // file/dir is not part of any component\n }> {\n try {\n if (filePath.endsWith(BIT_MAP)) {\n this.bitMapChangesInProgress = true;\n const buildResults = await this.watchQueue.add(() => this.handleBitmapChanges());\n this.bitMapChangesInProgress = false;\n loader.stop();\n return { results: buildResults, files: [filePath] };\n }\n if (this.bitMapChangesInProgress) {\n await this.watchQueue.onIdle();\n }\n if (dirname(filePath) === this.ipcEventsDir) {\n const eventName = basename(filePath);\n if (eventName !== 'onPostInstall') {\n this.watcherMain.logger.warn(`eventName ${eventName} is not recognized, please handle it`);\n }\n await this.watcherMain.ipcEvents.triggerGotEvent(eventName as 'onPostInstall');\n return { results: [], files: [filePath] };\n }\n if (filePath.endsWith(WORKSPACE_JSONC)) {\n await this.workspace.triggerOnWorkspaceConfigChange();\n return { results: [], files: [filePath] };\n }\n if (filePath.endsWith(UNMERGED_FILENAME)) {\n await this.workspace.clearCache();\n return { results: [], files: [filePath] };\n }\n const componentId = this.getComponentIdByPath(filePath);\n if (!componentId) {\n loader.stop();\n return { results: [], files: [], irrelevant: true };\n }\n const compIdStr = componentId.toString();\n if (this.changedFilesPerComponent[compIdStr]) {\n this.changedFilesPerComponent[compIdStr].push(filePath);\n loader.stop();\n return { results: [], files: [], debounced: true };\n }\n this.changedFilesPerComponent[compIdStr] = [filePath];\n await this.sleep(DEBOUNCE_WAIT_MS);\n const files = this.changedFilesPerComponent[compIdStr];\n delete this.changedFilesPerComponent[compIdStr];\n\n const buildResults = await this.watchQueue.add(() => this.triggerCompChanges(componentId, files));\n const failureMsg = buildResults.length\n ? undefined\n : `files ${files.join(', ')} are inside the component ${compIdStr} but configured to be ignored`;\n loader.stop();\n return { results: buildResults, files, failureMsg };\n } catch (err: any) {\n const msg = `watcher found an error while handling ${filePath}`;\n logger.error(msg, err);\n logger.console(`${msg}, ${err.message}`);\n loader.stop();\n return { results: [], files: [filePath], failureMsg: err.message };\n }\n }\n\n private async sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n private async triggerCompChanges(\n componentId: ComponentID,\n files: PathOsBasedAbsolute[]\n ): Promise<OnComponentEventResult[]> {\n let updatedComponentId: ComponentID | undefined = componentId;\n if (!(await this.workspace.hasId(componentId))) {\n // bitmap has changed meanwhile, which triggered `handleBitmapChanges`, which re-loaded consumer and updated versions\n // so the original componentId might not be in the workspace now, and we need to find the updated one\n const ids = this.workspace.listIds();\n updatedComponentId = ids.find((id) => id.isEqual(componentId, { ignoreVersion: true }));\n if (!updatedComponentId) {\n logger.debug(`triggerCompChanges, the component ${componentId.toString()} was probably removed from .bitmap`);\n return [];\n }\n }\n this.workspace.clearComponentCache(updatedComponentId);\n const component = await this.workspace.get(updatedComponentId);\n const componentMap: ComponentMap = component.state._consumer.componentMap;\n if (!componentMap) {\n throw new Error(\n `unable to find componentMap for ${updatedComponentId.toString()}, make sure this component is in .bitmap`\n );\n }\n const compFilesRelativeToWorkspace = componentMap.getFilesRelativeToConsumer();\n const [compFiles, nonCompFiles] = partition(files, (filePath) => {\n const relativeFile = this.getRelativePathLinux(filePath);\n return Boolean(compFilesRelativeToWorkspace.find((p) => p === relativeFile));\n });\n // nonCompFiles are either, files that were removed from the filesystem or existing files that are ignored.\n // the compiler takes care of removedFiles differently, e.g. removes dists dir and old symlinks.\n const removedFiles = compact(\n await Promise.all(nonCompFiles.map(async (filePath) => ((await fs.pathExists(filePath)) ? null : filePath)))\n );\n\n if (!compFiles.length && !removedFiles.length) {\n logger.debug(\n `the following files are part of the component ${componentId.toStringWithoutVersion()} but configured to be ignored:\\n${files.join(\n '\\n'\n )}'`\n );\n return [];\n }\n this.consumer.bitMap.updateComponentPaths(\n componentId,\n compFiles.map((f) => this.consumer.getPathRelativeToConsumer(f)),\n removedFiles.map((f) => this.consumer.getPathRelativeToConsumer(f))\n );\n const buildResults = await this.executeWatchOperationsOnComponent(\n updatedComponentId,\n compFiles,\n removedFiles,\n true\n );\n return buildResults;\n }\n\n /**\n * if .bitmap changed, it's possible that a new component has been added. trigger onComponentAdd.\n */\n private async handleBitmapChanges(): Promise<OnComponentEventResult[]> {\n const previewsTrackDirs = { ...this.trackDirs };\n await this.workspace._reloadConsumer();\n await this.setTrackDirs();\n await this.workspace.triggerOnBitmapChange();\n const newDirs: string[] = difference(Object.keys(this.trackDirs), Object.keys(previewsTrackDirs));\n const removedDirs: string[] = difference(Object.keys(previewsTrackDirs), Object.keys(this.trackDirs));\n const results: OnComponentEventResult[] = [];\n if (newDirs.length) {\n const addResults = await mapSeries(newDirs, async (dir) =>\n this.executeWatchOperationsOnComponent(this.trackDirs[dir], [], [], false)\n );\n results.push(...addResults.flat());\n }\n if (removedDirs.length) {\n await mapSeries(removedDirs, (dir) => this.executeWatchOperationsOnRemove(previewsTrackDirs[dir]));\n }\n\n return results;\n }\n\n private async executeWatchOperationsOnRemove(componentId: ComponentID) {\n logger.debug(`running OnComponentRemove hook for ${chalk.bold(componentId.toString())}`);\n this.pubsub.pub(WorkspaceAspect.id, this.createOnComponentRemovedEvent(componentId.toString()));\n await this.workspace.triggerOnComponentRemove(componentId);\n }\n\n private async executeWatchOperationsOnComponent(\n componentId: ComponentID,\n files: PathOsBasedAbsolute[],\n removedFiles: PathOsBasedAbsolute[] = [],\n isChange = true\n ): Promise<OnComponentEventResult[]> {\n if (this.isComponentWatchedExternally(componentId)) {\n // update capsule, once done, it automatically triggers the external watcher\n await this.workspace.get(componentId);\n return [];\n }\n const idStr = componentId.toString();\n\n if (isChange) {\n logger.debug(`running OnComponentChange hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.createOnComponentChangeEvent(idStr, 'OnComponentChange'));\n } else {\n logger.debug(`running OnComponentAdd hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.createOnComponentAddEvent(idStr, 'OnComponentAdd'));\n }\n\n const buildResults = isChange\n ? await this.workspace.triggerOnComponentChange(componentId, files, removedFiles, this.options)\n : await this.workspace.triggerOnComponentAdd(componentId, this.options);\n\n return buildResults;\n }\n\n private createOnComponentRemovedEvent(idStr) {\n return new OnComponentRemovedEvent(Date.now(), idStr);\n }\n\n private createOnComponentChangeEvent(idStr, hook) {\n return new OnComponentChangeEvent(Date.now(), idStr, hook);\n }\n\n private createOnComponentAddEvent(idStr, hook) {\n return new OnComponentAddEvent(Date.now(), idStr, hook);\n }\n\n private isComponentWatchedExternally(componentId: ComponentID) {\n const watcherData = this.multipleWatchers.find((m) => m.componentIds.find((id) => id.isEqual(componentId)));\n if (watcherData) {\n logger.debug(`${componentId.toString()} is watched by ${watcherData.compilerId.toString()}`);\n return true;\n }\n return false;\n }\n\n private getComponentIdByPath(filePath: string): ComponentID | null {\n const relativeFile = this.getRelativePathLinux(filePath);\n const trackDir = this.findTrackDirByFilePathRecursively(relativeFile);\n if (!trackDir) {\n // the file is not part of any component. If it was a new component, or a new file of\n // existing component, then, handleBitmapChanges() should deal with it.\n return null;\n }\n return this.trackDirs[trackDir];\n }\n\n private getRelativePathLinux(filePath: string) {\n return pathNormalizeToLinux(this.consumer.getPathRelativeToConsumer(filePath));\n }\n\n private findTrackDirByFilePathRecursively(filePath: string): string | null {\n if (this.trackDirs[filePath]) return filePath;\n const parentDir = dirname(filePath);\n if (parentDir === filePath) return null;\n return this.findTrackDirByFilePathRecursively(parentDir);\n }\n\n private async createWatcher() {\n const usePollingConf = await this.watcherMain.globalConfig.get(CFG_WATCH_USE_POLLING);\n const usePolling = usePollingConf === 'true';\n // const useFsEventsConf = await this.watcherMain.globalConfig.get(CFG_WATCH_USE_FS_EVENTS);\n // const useFsEvents = useFsEventsConf === 'true';\n const ignoreLocalScope = (pathToCheck: string) => {\n if (pathToCheck.startsWith(this.ipcEventsDir) || pathToCheck.endsWith(UNMERGED_FILENAME)) return false;\n return (\n pathToCheck.startsWith(`${this.workspace.path}/.git/`) || pathToCheck.startsWith(`${this.workspace.path}/.bit/`)\n );\n };\n this.fsWatcher = chokidar.watch(this.workspace.path, {\n ignoreInitial: true,\n // `chokidar` matchers have Bash-parity, so Windows-style backslashes are not supported as separators.\n // (windows-style backslashes are converted to forward slashes)\n ignored: ['**/node_modules/**', '**/package.json', ignoreLocalScope],\n /**\n * default to false, although it causes high CPU usage.\n * see: https://github.com/paulmillr/chokidar/issues/1196#issuecomment-1711033539\n * there is a fix for this in master. once a new version of Chokidar is released, we can upgrade it and then\n * default to true.\n */\n usePolling,\n // useFsEvents,\n persistent: true,\n });\n if (this.verbose) {\n logger.console(`chokidar.options ${JSON.stringify(this.fsWatcher.options, undefined, 2)}`);\n }\n }\n\n private async setTrackDirs() {\n this.trackDirs = {};\n const componentsFromBitMap = this.consumer.bitMap.getAllComponents();\n componentsFromBitMap.map((componentMap) => {\n const componentId = componentMap.id;\n const rootDir = componentMap.getRootDir();\n this.trackDirs[rootDir] = componentId;\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_lodash","_loader","_constants","_logger","_utils","_pMapSeries","_chalk","_unmergedComponents","_chokidar","_workspace","_watchQueue","_excluded","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","key","i","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","call","sourceKeys","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","DEBOUNCE_WAIT_MS","Watcher","constructor","workspace","pubsub","watcherMain","options","WatchQueue","ipcEventsDir","ipcEvents","eventsDir","verbose","consumer","watch","_this$options","msgs","watchOpts","setRootDirs","componentIds","values","rootDirs","triggerOnPreWatch","createWatcher","watcher","fsWatcher","onStart","scope","watchScopeInternalFiles","Promise","resolve","reject","onAll","on","onReady","loader","stop","event","filePath","startTime","Date","getTime","files","results","debounced","irrelevant","failureMsg","handleChange","duration","onChange","err","onError","endsWith","BIT_MAP","bitMapChangesInProgress","buildResults","watchQueue","add","handleBitmapChanges","onIdle","dirname","eventName","basename","logger","warn","triggerGotEvent","WORKSPACE_JSONC","triggerOnWorkspaceConfigChange","UNMERGED_FILENAME","clearCache","componentId","getComponentIdByPath","compIdStr","toString","changedFilesPerComponent","sleep","triggerCompChanges","undefined","join","msg","error","console","message","ms","setTimeout","updatedComponentId","hasId","ids","listIds","find","id","isEqual","ignoreVersion","debug","clearComponentCache","component","get","componentMap","state","_consumer","Error","compFilesRelativeToWorkspace","getFilesRelativeToConsumer","compFiles","nonCompFiles","partition","relativeFile","getRelativePathLinux","Boolean","p","removedFiles","compact","all","map","fs","pathExists","toStringWithoutVersion","bitMap","updateComponentPaths","f","getPathRelativeToConsumer","executeWatchOperationsOnComponent","previewsRootDirs","_reloadConsumer","triggerOnBitmapChange","newDirs","difference","removedDirs","addResults","mapSeries","dir","flat","executeWatchOperationsOnRemove","chalk","bold","pub","WorkspaceAspect","createOnComponentRemovedEvent","triggerOnComponentRemove","isChange","isComponentWatchedExternally","idStr","createOnComponentChangeEvent","createOnComponentAddEvent","triggerOnComponentChange","triggerOnComponentAdd","OnComponentRemovedEvent","now","hook","OnComponentChangeEvent","OnComponentAddEvent","watcherData","multipleWatchers","m","compilerId","rootDir","findRootDirByFilePathRecursively","pathNormalizeToLinux","parentDir","usePollingConf","globalConfig","CFG_WATCH_USE_POLLING","usePolling","ignoreLocalScope","pathToCheck","startsWith","path","chokidar","ignoreInitial","ignored","persistent","JSON","stringify","componentsFromBitMap","getAllComponents","getRootDir","exports"],"sources":["watcher.ts"],"sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport fs from 'fs-extra';\nimport { dirname, basename } from 'path';\nimport { compact, difference, partition } from 'lodash';\nimport { ComponentID } from '@teambit/component-id';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { BIT_MAP, CFG_WATCH_USE_POLLING, WORKSPACE_JSONC } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport mapSeries from 'p-map-series';\nimport chalk from 'chalk';\nimport { ChildProcess } from 'child_process';\nimport { UNMERGED_FILENAME } from '@teambit/legacy/dist/scope/lanes/unmerged-components';\nimport chokidar, { FSWatcher } from '@teambit/chokidar';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport { PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport {\n WorkspaceAspect,\n Workspace,\n OnComponentEventResult,\n OnComponentChangeEvent,\n OnComponentAddEvent,\n OnComponentRemovedEvent,\n} from '@teambit/workspace';\nimport { CheckTypes } from './check-types';\nimport { WatcherMain } from './watcher.main.runtime';\nimport { WatchQueue } from './watch-queue';\n\nexport type WatcherProcessData = { watchProcess: ChildProcess; compilerId: ComponentID; componentIds: ComponentID[] };\n\nexport type EventMessages = {\n onAll: Function;\n onStart: Function;\n onReady: Function;\n onChange: OnFileEventFunc;\n onAdd: OnFileEventFunc;\n onUnlink: OnFileEventFunc;\n onError: Function;\n};\n\nexport type OnFileEventFunc = (\n filePaths: string[],\n buildResults: OnComponentEventResult[],\n verbose: boolean,\n duration: number,\n failureMsg?: string\n) => void;\n\nexport type WatchOptions = {\n msgs?: EventMessages;\n initiator?: CompilationInitiator;\n verbose?: boolean; // print watch events to the console. (also ts-server events if spawnTSServer is true)\n spawnTSServer?: boolean; // needed for check types and extract API/docs.\n checkTypes?: CheckTypes; // if enabled, the spawnTSServer becomes true.\n preCompile?: boolean; // whether compile all components before start watching\n compile?: boolean; // whether compile modified/added components during watch process\n};\n\nexport type RootDirs = { [dir: PathLinux]: ComponentID };\n\nconst DEBOUNCE_WAIT_MS = 100;\ntype PathLinux = string; // ts fails when importing it from @teambit/legacy/dist/utils/path.\n\nexport class Watcher {\n private fsWatcher: FSWatcher;\n private changedFilesPerComponent: { [componentId: string]: string[] } = {};\n private watchQueue = new WatchQueue();\n private bitMapChangesInProgress = false;\n private ipcEventsDir: string;\n private rootDirs: RootDirs = {};\n private verbose = false;\n private multipleWatchers: WatcherProcessData[] = [];\n constructor(\n private workspace: Workspace,\n private pubsub: PubsubMain,\n private watcherMain: WatcherMain,\n private options: WatchOptions\n ) {\n this.ipcEventsDir = this.watcherMain.ipcEvents.eventsDir;\n this.verbose = this.options.verbose || false;\n }\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n async watch() {\n const { msgs, ...watchOpts } = this.options;\n await this.setRootDirs();\n const componentIds = Object.values(this.rootDirs);\n await this.watcherMain.triggerOnPreWatch(componentIds, watchOpts);\n await this.createWatcher();\n const watcher = this.fsWatcher;\n msgs?.onStart(this.workspace);\n\n await this.workspace.scope.watchScopeInternalFiles();\n\n return new Promise((resolve, reject) => {\n if (this.verbose) {\n // @ts-ignore\n if (msgs?.onAll) watcher.on('all', msgs?.onAll);\n }\n watcher.on('ready', () => {\n msgs?.onReady(this.workspace, this.rootDirs, this.verbose);\n // console.log(this.fsWatcher.getWatched());\n loader.stop();\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('all', async (event, filePath) => {\n if (event !== 'change' && event !== 'add' && event !== 'unlink') return;\n const startTime = new Date().getTime();\n const { files, results, debounced, irrelevant, failureMsg } = await this.handleChange(filePath);\n if (debounced || irrelevant) {\n return;\n }\n const duration = new Date().getTime() - startTime;\n msgs?.onChange(files, results, this.verbose, duration, failureMsg);\n });\n watcher.on('error', (err) => {\n msgs?.onError(err);\n reject(err);\n });\n });\n }\n\n /**\n * *** DEBOUNCING ***\n * some actions trigger multiple files changes at (almost) the same time. e.g. \"git pull\".\n * this causes some performance and instability issues. a debouncing mechanism was implemented to help with this.\n * the way how it works is that the first file of the same component starts the execution with a delay (e.g. 200ms).\n * if, in the meanwhile, another file of the same component was changed, it won't start a new execution, instead,\n * it'll only add the file to `this.changedFilesPerComponent` prop.\n * once the execution starts, it'll delete this component-id from the `this.changedFilesPerComponent` array,\n * indicating the next file-change to start a new execution.\n *\n * implementation wise, `lodash.debounce` doesn't help here, because:\n * A) it doesn't return the results, unless \"leading\" option is true. here, it must be false, otherwise, it'll start\n * the execution immediately.\n * B) it debounces the method regardless the param passes to it. so it'll disregard the component-id and will delay\n * other components undesirably.\n *\n * *** QUEUE ***\n * the debouncing helps to not execute the same component multiple times concurrently. however, multiple components\n * and .bitmap changes execution can still be processed concurrently.\n * the following example explains why this is an issue.\n * compA is changed in the .bitmap file from version 0.0.1 to 0.0.2. its files were changed as well.\n * all these changes get pulled at the same time by \"git pull\", as a result, the execution of compA and the .bitmap\n * happen at the same time.\n * during the execution of compA, the component id is parsed as compA@0.0.1, later, it asks for the Workspace for this\n * id. while the workspace is looking for this id, the .bitmap execution reloaded the consumer and changed all versions.\n * after this change, the workspace doesn't have this id anymore, which will trigger an error.\n * to ensure this won't happen, we keep a flag to indicate whether the .bitmap execution is running, and if so, all\n * other executions are paused until the queue is empty (this is done by awaiting for queue.onIdle).\n * once the queue is empty, we know the .bitmap process was done and the workspace has all new ids.\n * in the example above, at this stage, the id will be resolved to compA@0.0.2.\n * one more thing, the queue is configured to have concurrency of 1. to make sure two components are not processed at\n * the same time. (the same way is done when loading all components from the filesystem/scope).\n * this way we can also ensure that if compA was started before the .bitmap execution, it will complete before the\n * .bitmap execution starts.\n */\n private async handleChange(filePath: string): Promise<{\n results: OnComponentEventResult[];\n files: string[];\n failureMsg?: string;\n debounced?: boolean;\n irrelevant?: boolean; // file/dir is not part of any component\n }> {\n try {\n if (filePath.endsWith(BIT_MAP)) {\n this.bitMapChangesInProgress = true;\n const buildResults = await this.watchQueue.add(() => this.handleBitmapChanges());\n this.bitMapChangesInProgress = false;\n loader.stop();\n return { results: buildResults, files: [filePath] };\n }\n if (this.bitMapChangesInProgress) {\n await this.watchQueue.onIdle();\n }\n if (dirname(filePath) === this.ipcEventsDir) {\n const eventName = basename(filePath);\n if (eventName !== 'onPostInstall') {\n this.watcherMain.logger.warn(`eventName ${eventName} is not recognized, please handle it`);\n }\n await this.watcherMain.ipcEvents.triggerGotEvent(eventName as 'onPostInstall');\n return { results: [], files: [filePath] };\n }\n if (filePath.endsWith(WORKSPACE_JSONC)) {\n await this.workspace.triggerOnWorkspaceConfigChange();\n return { results: [], files: [filePath] };\n }\n if (filePath.endsWith(UNMERGED_FILENAME)) {\n await this.workspace.clearCache();\n return { results: [], files: [filePath] };\n }\n const componentId = this.getComponentIdByPath(filePath);\n if (!componentId) {\n loader.stop();\n return { results: [], files: [], irrelevant: true };\n }\n const compIdStr = componentId.toString();\n if (this.changedFilesPerComponent[compIdStr]) {\n this.changedFilesPerComponent[compIdStr].push(filePath);\n loader.stop();\n return { results: [], files: [], debounced: true };\n }\n this.changedFilesPerComponent[compIdStr] = [filePath];\n await this.sleep(DEBOUNCE_WAIT_MS);\n const files = this.changedFilesPerComponent[compIdStr];\n delete this.changedFilesPerComponent[compIdStr];\n\n const buildResults = await this.watchQueue.add(() => this.triggerCompChanges(componentId, files));\n const failureMsg = buildResults.length\n ? undefined\n : `files ${files.join(', ')} are inside the component ${compIdStr} but configured to be ignored`;\n loader.stop();\n return { results: buildResults, files, failureMsg };\n } catch (err: any) {\n const msg = `watcher found an error while handling ${filePath}`;\n logger.error(msg, err);\n logger.console(`${msg}, ${err.message}`);\n loader.stop();\n return { results: [], files: [filePath], failureMsg: err.message };\n }\n }\n\n private async sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n private async triggerCompChanges(\n componentId: ComponentID,\n files: PathOsBasedAbsolute[]\n ): Promise<OnComponentEventResult[]> {\n let updatedComponentId: ComponentID | undefined = componentId;\n if (!(await this.workspace.hasId(componentId))) {\n // bitmap has changed meanwhile, which triggered `handleBitmapChanges`, which re-loaded consumer and updated versions\n // so the original componentId might not be in the workspace now, and we need to find the updated one\n const ids = this.workspace.listIds();\n updatedComponentId = ids.find((id) => id.isEqual(componentId, { ignoreVersion: true }));\n if (!updatedComponentId) {\n logger.debug(`triggerCompChanges, the component ${componentId.toString()} was probably removed from .bitmap`);\n return [];\n }\n }\n this.workspace.clearComponentCache(updatedComponentId);\n const component = await this.workspace.get(updatedComponentId);\n const componentMap: ComponentMap = component.state._consumer.componentMap;\n if (!componentMap) {\n throw new Error(\n `unable to find componentMap for ${updatedComponentId.toString()}, make sure this component is in .bitmap`\n );\n }\n const compFilesRelativeToWorkspace = componentMap.getFilesRelativeToConsumer();\n const [compFiles, nonCompFiles] = partition(files, (filePath) => {\n const relativeFile = this.getRelativePathLinux(filePath);\n return Boolean(compFilesRelativeToWorkspace.find((p) => p === relativeFile));\n });\n // nonCompFiles are either, files that were removed from the filesystem or existing files that are ignored.\n // the compiler takes care of removedFiles differently, e.g. removes dists dir and old symlinks.\n const removedFiles = compact(\n await Promise.all(nonCompFiles.map(async (filePath) => ((await fs.pathExists(filePath)) ? null : filePath)))\n );\n\n if (!compFiles.length && !removedFiles.length) {\n logger.debug(\n `the following files are part of the component ${componentId.toStringWithoutVersion()} but configured to be ignored:\\n${files.join(\n '\\n'\n )}'`\n );\n return [];\n }\n this.consumer.bitMap.updateComponentPaths(\n componentId,\n compFiles.map((f) => this.consumer.getPathRelativeToConsumer(f)),\n removedFiles.map((f) => this.consumer.getPathRelativeToConsumer(f))\n );\n const buildResults = await this.executeWatchOperationsOnComponent(\n updatedComponentId,\n compFiles,\n removedFiles,\n true\n );\n return buildResults;\n }\n\n /**\n * if .bitmap changed, it's possible that a new component has been added. trigger onComponentAdd.\n */\n private async handleBitmapChanges(): Promise<OnComponentEventResult[]> {\n const previewsRootDirs = { ...this.rootDirs };\n await this.workspace._reloadConsumer();\n await this.setRootDirs();\n await this.workspace.triggerOnBitmapChange();\n const newDirs: string[] = difference(Object.keys(this.rootDirs), Object.keys(previewsRootDirs));\n const removedDirs: string[] = difference(Object.keys(previewsRootDirs), Object.keys(this.rootDirs));\n const results: OnComponentEventResult[] = [];\n if (newDirs.length) {\n const addResults = await mapSeries(newDirs, async (dir) =>\n this.executeWatchOperationsOnComponent(this.rootDirs[dir], [], [], false)\n );\n results.push(...addResults.flat());\n }\n if (removedDirs.length) {\n await mapSeries(removedDirs, (dir) => this.executeWatchOperationsOnRemove(previewsRootDirs[dir]));\n }\n\n return results;\n }\n\n private async executeWatchOperationsOnRemove(componentId: ComponentID) {\n logger.debug(`running OnComponentRemove hook for ${chalk.bold(componentId.toString())}`);\n this.pubsub.pub(WorkspaceAspect.id, this.createOnComponentRemovedEvent(componentId.toString()));\n await this.workspace.triggerOnComponentRemove(componentId);\n }\n\n private async executeWatchOperationsOnComponent(\n componentId: ComponentID,\n files: PathOsBasedAbsolute[],\n removedFiles: PathOsBasedAbsolute[] = [],\n isChange = true\n ): Promise<OnComponentEventResult[]> {\n if (this.isComponentWatchedExternally(componentId)) {\n // update capsule, once done, it automatically triggers the external watcher\n await this.workspace.get(componentId);\n return [];\n }\n const idStr = componentId.toString();\n\n if (isChange) {\n logger.debug(`running OnComponentChange hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.createOnComponentChangeEvent(idStr, 'OnComponentChange'));\n } else {\n logger.debug(`running OnComponentAdd hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.createOnComponentAddEvent(idStr, 'OnComponentAdd'));\n }\n\n const buildResults = isChange\n ? await this.workspace.triggerOnComponentChange(componentId, files, removedFiles, this.options)\n : await this.workspace.triggerOnComponentAdd(componentId, this.options);\n\n return buildResults;\n }\n\n private createOnComponentRemovedEvent(idStr) {\n return new OnComponentRemovedEvent(Date.now(), idStr);\n }\n\n private createOnComponentChangeEvent(idStr, hook) {\n return new OnComponentChangeEvent(Date.now(), idStr, hook);\n }\n\n private createOnComponentAddEvent(idStr, hook) {\n return new OnComponentAddEvent(Date.now(), idStr, hook);\n }\n\n private isComponentWatchedExternally(componentId: ComponentID) {\n const watcherData = this.multipleWatchers.find((m) => m.componentIds.find((id) => id.isEqual(componentId)));\n if (watcherData) {\n logger.debug(`${componentId.toString()} is watched by ${watcherData.compilerId.toString()}`);\n return true;\n }\n return false;\n }\n\n private getComponentIdByPath(filePath: string): ComponentID | null {\n const relativeFile = this.getRelativePathLinux(filePath);\n const rootDir = this.findRootDirByFilePathRecursively(relativeFile);\n if (!rootDir) {\n // the file is not part of any component. If it was a new component, or a new file of\n // existing component, then, handleBitmapChanges() should deal with it.\n return null;\n }\n return this.rootDirs[rootDir];\n }\n\n private getRelativePathLinux(filePath: string) {\n return pathNormalizeToLinux(this.consumer.getPathRelativeToConsumer(filePath));\n }\n\n private findRootDirByFilePathRecursively(filePath: string): string | null {\n if (this.rootDirs[filePath]) return filePath;\n const parentDir = dirname(filePath);\n if (parentDir === filePath) return null;\n return this.findRootDirByFilePathRecursively(parentDir);\n }\n\n private async createWatcher() {\n const usePollingConf = await this.watcherMain.globalConfig.get(CFG_WATCH_USE_POLLING);\n const usePolling = usePollingConf === 'true';\n // const useFsEventsConf = await this.watcherMain.globalConfig.get(CFG_WATCH_USE_FS_EVENTS);\n // const useFsEvents = useFsEventsConf === 'true';\n const ignoreLocalScope = (pathToCheck: string) => {\n if (pathToCheck.startsWith(this.ipcEventsDir) || pathToCheck.endsWith(UNMERGED_FILENAME)) return false;\n return (\n pathToCheck.startsWith(`${this.workspace.path}/.git/`) || pathToCheck.startsWith(`${this.workspace.path}/.bit/`)\n );\n };\n this.fsWatcher = chokidar.watch(this.workspace.path, {\n ignoreInitial: true,\n // `chokidar` matchers have Bash-parity, so Windows-style backslashes are not supported as separators.\n // (windows-style backslashes are converted to forward slashes)\n ignored: ['**/node_modules/**', '**/package.json', ignoreLocalScope],\n /**\n * default to false, although it causes high CPU usage.\n * see: https://github.com/paulmillr/chokidar/issues/1196#issuecomment-1711033539\n * there is a fix for this in master. once a new version of Chokidar is released, we can upgrade it and then\n * default to true.\n */\n usePolling,\n // useFsEvents,\n persistent: true,\n });\n if (this.verbose) {\n logger.console(`chokidar.options ${JSON.stringify(this.fsWatcher.options, undefined, 2)}`);\n }\n }\n\n private async setRootDirs() {\n this.rootDirs = {};\n const componentsFromBitMap = this.consumer.bitMap.getAllComponents();\n componentsFromBitMap.map((componentMap) => {\n const componentId = componentMap.id;\n const rootDir = componentMap.getRootDir();\n this.rootDirs[rootDir] = componentId;\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,35 +1,35 @@
1
1
  {
2
2
  "name": "@teambit/watcher",
3
- "version": "1.0.203",
3
+ "version": "1.0.205",
4
4
  "homepage": "https://bit.cloud/teambit/workspace/watcher",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.workspace",
8
8
  "name": "watcher",
9
- "version": "1.0.203"
9
+ "version": "1.0.205"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
13
+ "lodash": "4.17.21",
13
14
  "p-queue": "6.6.2",
14
15
  "moment": "2.29.4",
15
16
  "p-map-series": "2.1.0",
16
17
  "@teambit/chokidar": "3.5.6",
17
18
  "fs-extra": "10.0.0",
18
- "lodash": "4.17.21",
19
19
  "@teambit/harmony": "0.4.6",
20
20
  "@teambit/component-id": "1.2.0",
21
+ "@teambit/compiler": "1.0.205",
21
22
  "@teambit/logger": "0.0.951",
22
- "@teambit/workspace": "1.0.203",
23
+ "@teambit/workspace": "1.0.205",
23
24
  "@teambit/cli": "0.0.858",
24
- "@teambit/compiler": "1.0.203",
25
- "@teambit/pubsub": "1.0.203",
25
+ "@teambit/pubsub": "1.0.205",
26
26
  "@teambit/global-config": "0.0.861",
27
- "@teambit/ipc-events": "1.0.203",
28
- "@teambit/scope": "1.0.203"
27
+ "@teambit/ipc-events": "1.0.205",
28
+ "@teambit/scope": "1.0.205"
29
29
  },
30
30
  "devDependencies": {
31
- "@types/fs-extra": "9.0.7",
32
31
  "@types/lodash": "4.14.165",
32
+ "@types/fs-extra": "9.0.7",
33
33
  "@types/mocha": "9.1.0",
34
34
  "chai": "4.3.0",
35
35
  "@teambit/harmony.envs.core-aspect-env": "0.0.27"