@teambit/watcher 1.0.468 → 1.0.469

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.468" tests="0" failures="0" errors="0" skipped="0"/>
3
+ <testsuite name="teambit.workspace/watcher@1.0.469" tests="0" failures="0" errors="0" skipped="0"/>
4
4
  </testsuites>
@@ -20,7 +20,7 @@
20
20
  "line": 3,
21
21
  "character": 15
22
22
  },
23
- "signature": "type WatchOptions = {\n msgs?: EventMessages | undefined;\n initiator?: CompilationInitiator | undefined;\n verbose?: boolean | undefined;\n spawnTSServer?: boolean | undefined;\n ... 4 more ...;\n trigger?: ComponentID | undefined;\n}",
23
+ "signature": "type WatchOptions = {\n msgs?: EventMessages | undefined;\n initiator?: CompilationInitiator | undefined;\n verbose?: boolean | undefined;\n spawnTSServer?: boolean | undefined;\n ... 5 more ...;\n trigger?: ComponentID | undefined;\n}",
24
24
  "name": "WatchOptions",
25
25
  "exportNode": {
26
26
  "__schema": "TypeSchema",
@@ -29,7 +29,7 @@
29
29
  "line": 50,
30
30
  "character": 1
31
31
  },
32
- "signature": "type WatchOptions = {\n msgs?: EventMessages | undefined;\n initiator?: CompilationInitiator | undefined;\n verbose?: boolean | undefined;\n spawnTSServer?: boolean | undefined;\n ... 4 more ...;\n trigger?: ComponentID | undefined;\n}",
32
+ "signature": "type WatchOptions = {\n msgs?: EventMessages | undefined;\n initiator?: CompilationInitiator | undefined;\n verbose?: boolean | undefined;\n spawnTSServer?: boolean | undefined;\n ... 5 more ...;\n trigger?: ComponentID | undefined;\n}",
33
33
  "name": "WatchOptions",
34
34
  "type": {
35
35
  "__schema": "TypeLiteralSchema",
@@ -211,13 +211,33 @@
211
211
  "line": 59,
212
212
  "character": 3
213
213
  },
214
+ "signature": "(property) generateTypes?: boolean | undefined",
215
+ "name": "generateTypes",
216
+ "type": {
217
+ "__schema": "KeywordTypeSchema",
218
+ "location": {
219
+ "filePath": "watcher.ts",
220
+ "line": 59,
221
+ "character": 19
222
+ },
223
+ "name": "boolean"
224
+ },
225
+ "isOptional": true
226
+ },
227
+ {
228
+ "__schema": "VariableLikeSchema",
229
+ "location": {
230
+ "filePath": "watcher.ts",
231
+ "line": 60,
232
+ "character": 3
233
+ },
214
234
  "signature": "(property) trigger?: ComponentID | undefined",
215
235
  "name": "trigger",
216
236
  "type": {
217
237
  "__schema": "TypeRefSchema",
218
238
  "location": {
219
239
  "filePath": "watcher.ts",
220
- "line": 59,
240
+ "line": 60,
221
241
  "character": 13
222
242
  },
223
243
  "name": "ComponentID",
@@ -1413,7 +1433,7 @@
1413
1433
  "line": 50,
1414
1434
  "character": 1
1415
1435
  },
1416
- "signature": "type WatchOptions = {\n msgs?: EventMessages | undefined;\n initiator?: CompilationInitiator | undefined;\n verbose?: boolean | undefined;\n spawnTSServer?: boolean | undefined;\n ... 4 more ...;\n trigger?: ComponentID | undefined;\n}",
1436
+ "signature": "type WatchOptions = {\n msgs?: EventMessages | undefined;\n initiator?: CompilationInitiator | undefined;\n verbose?: boolean | undefined;\n spawnTSServer?: boolean | undefined;\n ... 5 more ...;\n trigger?: ComponentID | undefined;\n}",
1417
1437
  "name": "WatchOptions",
1418
1438
  "type": {
1419
1439
  "__schema": "TypeLiteralSchema",
@@ -1595,13 +1615,33 @@
1595
1615
  "line": 59,
1596
1616
  "character": 3
1597
1617
  },
1618
+ "signature": "(property) generateTypes?: boolean | undefined",
1619
+ "name": "generateTypes",
1620
+ "type": {
1621
+ "__schema": "KeywordTypeSchema",
1622
+ "location": {
1623
+ "filePath": "watcher.ts",
1624
+ "line": 59,
1625
+ "character": 19
1626
+ },
1627
+ "name": "boolean"
1628
+ },
1629
+ "isOptional": true
1630
+ },
1631
+ {
1632
+ "__schema": "VariableLikeSchema",
1633
+ "location": {
1634
+ "filePath": "watcher.ts",
1635
+ "line": 60,
1636
+ "character": 3
1637
+ },
1598
1638
  "signature": "(property) trigger?: ComponentID | undefined",
1599
1639
  "name": "trigger",
1600
1640
  "type": {
1601
1641
  "__schema": "TypeRefSchema",
1602
1642
  "location": {
1603
1643
  "filePath": "watcher.ts",
1604
- "line": 59,
1644
+ "line": 60,
1605
1645
  "character": 13
1606
1646
  },
1607
1647
  "name": "ComponentID",
@@ -1620,7 +1660,7 @@
1620
1660
  "__schema": "TypeSchema",
1621
1661
  "location": {
1622
1662
  "filePath": "watcher.ts",
1623
- "line": 62,
1663
+ "line": 63,
1624
1664
  "character": 1
1625
1665
  },
1626
1666
  "signature": "type RootDirs = {\n [dir: string]: ComponentID;\n}",
@@ -1629,7 +1669,7 @@
1629
1669
  "__schema": "TypeLiteralSchema",
1630
1670
  "location": {
1631
1671
  "filePath": "watcher.ts",
1632
- "line": 62,
1672
+ "line": 63,
1633
1673
  "character": 24
1634
1674
  },
1635
1675
  "members": [
@@ -1637,14 +1677,14 @@
1637
1677
  "__schema": "IndexSignatureSchema",
1638
1678
  "location": {
1639
1679
  "filePath": "watcher.ts",
1640
- "line": 62,
1680
+ "line": 63,
1641
1681
  "character": 26
1642
1682
  },
1643
1683
  "keyType": {
1644
1684
  "__schema": "ParameterSchema",
1645
1685
  "location": {
1646
1686
  "filePath": "watcher.ts",
1647
- "line": 62,
1687
+ "line": 63,
1648
1688
  "character": 27
1649
1689
  },
1650
1690
  "name": "dir",
@@ -1652,7 +1692,7 @@
1652
1692
  "__schema": "TypeRefSchema",
1653
1693
  "location": {
1654
1694
  "filePath": "watcher.ts",
1655
- "line": 62,
1695
+ "line": 63,
1656
1696
  "character": 32
1657
1697
  },
1658
1698
  "name": "PathLinux",
@@ -1665,7 +1705,7 @@
1665
1705
  "__schema": "TypeRefSchema",
1666
1706
  "location": {
1667
1707
  "filePath": "watcher.ts",
1668
- "line": 62,
1708
+ "line": 63,
1669
1709
  "character": 44
1670
1710
  },
1671
1711
  "name": "ComponentID",
@@ -1683,7 +1723,7 @@
1683
1723
  "__schema": "ClassSchema",
1684
1724
  "location": {
1685
1725
  "filePath": "watcher.ts",
1686
- "line": 67,
1726
+ "line": 68,
1687
1727
  "character": 1
1688
1728
  },
1689
1729
  "signature": "class Watcher",
@@ -1693,7 +1733,7 @@
1693
1733
  "__schema": "ConstructorSchema",
1694
1734
  "location": {
1695
1735
  "filePath": "watcher.ts",
1696
- "line": 76,
1736
+ "line": 77,
1697
1737
  "character": 3
1698
1738
  },
1699
1739
  "signature": "constructor Watcher(workspace: Workspace, pubsub: PubsubMain, watcherMain: WatcherMain, options: WatchOptions): Watcher",
@@ -1703,7 +1743,7 @@
1703
1743
  "__schema": "ParameterSchema",
1704
1744
  "location": {
1705
1745
  "filePath": "watcher.ts",
1706
- "line": 77,
1746
+ "line": 78,
1707
1747
  "character": 5
1708
1748
  },
1709
1749
  "name": "workspace",
@@ -1711,7 +1751,7 @@
1711
1751
  "__schema": "TypeRefSchema",
1712
1752
  "location": {
1713
1753
  "filePath": "watcher.ts",
1714
- "line": 77,
1754
+ "line": 78,
1715
1755
  "character": 24
1716
1756
  },
1717
1757
  "name": "Workspace",
@@ -1727,7 +1767,7 @@
1727
1767
  "__schema": "ParameterSchema",
1728
1768
  "location": {
1729
1769
  "filePath": "watcher.ts",
1730
- "line": 78,
1770
+ "line": 79,
1731
1771
  "character": 5
1732
1772
  },
1733
1773
  "name": "pubsub",
@@ -1735,7 +1775,7 @@
1735
1775
  "__schema": "TypeRefSchema",
1736
1776
  "location": {
1737
1777
  "filePath": "watcher.ts",
1738
- "line": 78,
1778
+ "line": 79,
1739
1779
  "character": 21
1740
1780
  },
1741
1781
  "name": "PubsubMain",
@@ -1751,7 +1791,7 @@
1751
1791
  "__schema": "ParameterSchema",
1752
1792
  "location": {
1753
1793
  "filePath": "watcher.ts",
1754
- "line": 79,
1794
+ "line": 80,
1755
1795
  "character": 5
1756
1796
  },
1757
1797
  "name": "watcherMain",
@@ -1759,7 +1799,7 @@
1759
1799
  "__schema": "TypeRefSchema",
1760
1800
  "location": {
1761
1801
  "filePath": "watcher.ts",
1762
- "line": 79,
1802
+ "line": 80,
1763
1803
  "character": 26
1764
1804
  },
1765
1805
  "name": "WatcherMain"
@@ -1771,7 +1811,7 @@
1771
1811
  "__schema": "ParameterSchema",
1772
1812
  "location": {
1773
1813
  "filePath": "watcher.ts",
1774
- "line": 80,
1814
+ "line": 81,
1775
1815
  "character": 5
1776
1816
  },
1777
1817
  "name": "options",
@@ -1779,7 +1819,7 @@
1779
1819
  "__schema": "TypeRefSchema",
1780
1820
  "location": {
1781
1821
  "filePath": "watcher.ts",
1782
- "line": 80,
1822
+ "line": 81,
1783
1823
  "character": 22
1784
1824
  },
1785
1825
  "name": "WatchOptions"
@@ -1792,7 +1832,7 @@
1792
1832
  "__schema": "ThisTypeSchema",
1793
1833
  "location": {
1794
1834
  "filePath": "watcher.ts",
1795
- "line": 67,
1835
+ "line": 68,
1796
1836
  "character": 1
1797
1837
  },
1798
1838
  "name": "Watcher"
@@ -1803,7 +1843,7 @@
1803
1843
  "__schema": "GetAccessorSchema",
1804
1844
  "location": {
1805
1845
  "filePath": "watcher.ts",
1806
- "line": 86,
1846
+ "line": 87,
1807
1847
  "character": 3
1808
1848
  },
1809
1849
  "signature": "(getter) Watcher.consumer: Consumer",
@@ -1812,7 +1852,7 @@
1812
1852
  "__schema": "TypeRefSchema",
1813
1853
  "location": {
1814
1854
  "filePath": "watcher.ts",
1815
- "line": 86,
1855
+ "line": 87,
1816
1856
  "character": 3
1817
1857
  },
1818
1858
  "name": "Consumer",
@@ -1823,7 +1863,7 @@
1823
1863
  "__schema": "FunctionLikeSchema",
1824
1864
  "location": {
1825
1865
  "filePath": "watcher.ts",
1826
- "line": 90,
1866
+ "line": 91,
1827
1867
  "character": 3
1828
1868
  },
1829
1869
  "signature": "(method) Watcher.watch(): Promise<unknown>",
@@ -1833,7 +1873,7 @@
1833
1873
  "__schema": "InferenceTypeSchema",
1834
1874
  "location": {
1835
1875
  "filePath": "watcher.ts",
1836
- "line": 90,
1876
+ "line": 91,
1837
1877
  "character": 3
1838
1878
  },
1839
1879
  "type": "Promise<unknown>"
@@ -1852,7 +1892,7 @@
1852
1892
  "__schema": "ModuleSchema",
1853
1893
  "location": {
1854
1894
  "filePath": "watcher.ts",
1855
- "line": 64,
1895
+ "line": 65,
1856
1896
  "character": 1
1857
1897
  },
1858
1898
  "exports": [
@@ -1860,7 +1900,7 @@
1860
1900
  "__schema": "VariableLikeSchema",
1861
1901
  "location": {
1862
1902
  "filePath": "watcher.ts",
1863
- "line": 64,
1903
+ "line": 65,
1864
1904
  "character": 7
1865
1905
  },
1866
1906
  "signature": "const DEBOUNCE_WAIT_MS: 100",
@@ -1869,7 +1909,7 @@
1869
1909
  "__schema": "InferenceTypeSchema",
1870
1910
  "location": {
1871
1911
  "filePath": "watcher.ts",
1872
- "line": 64,
1912
+ "line": 65,
1873
1913
  "character": 7
1874
1914
  },
1875
1915
  "type": "100"
@@ -1884,7 +1924,7 @@
1884
1924
  "__schema": "TypeSchema",
1885
1925
  "location": {
1886
1926
  "filePath": "watcher.ts",
1887
- "line": 65,
1927
+ "line": 66,
1888
1928
  "character": 1
1889
1929
  },
1890
1930
  "signature": "type PathLinux = string",
@@ -1893,7 +1933,7 @@
1893
1933
  "__schema": "KeywordTypeSchema",
1894
1934
  "location": {
1895
1935
  "filePath": "watcher.ts",
1896
- "line": 65,
1936
+ "line": 66,
1897
1937
  "character": 18
1898
1938
  },
1899
1939
  "name": "string"
@@ -2745,7 +2785,7 @@
2745
2785
  "componentId": {
2746
2786
  "scope": "teambit.workspace",
2747
2787
  "name": "watcher",
2748
- "version": "1.0.468"
2788
+ "version": "1.0.469"
2749
2789
  },
2750
2790
  "taggedModuleExports": []
2751
2791
  }
@@ -8,6 +8,7 @@ type WatchCmdOpts = {
8
8
  checkTypes?: string | boolean;
9
9
  import?: boolean;
10
10
  skipImport?: boolean;
11
+ generateTypes?: boolean;
11
12
  trigger?: string;
12
13
  };
13
14
  export declare class WatchCommand implements Command {
package/dist/watch.cmd.js CHANGED
@@ -74,7 +74,7 @@ if this doesn't work well for you, run "bit config set watch_use_polling true" t
74
74
  _defineProperty(this, "helpUrl", 'reference/compiling/compiler-overview');
75
75
  _defineProperty(this, "alias", '');
76
76
  _defineProperty(this, "group", 'development');
77
- _defineProperty(this, "options", [['v', 'verbose', 'show all watch events and compiler verbose output'], ['', 'skip-pre-compilation', 'skip compilation step before starting to watch'], ['t', 'check-types [string]', 'show errors/warnings for types. options are [file, project] to investigate only changed file or entire project. defaults to project'], ['i', 'import', 'DEPRECATED. it is now the default. helpful when using git. import component objects if .bitmap changed not by bit'], ['', 'skip-import', 'do not import component objects if .bitmap changed not by bit'], ['', 'trigger <comp-id>', 'trigger recompilation of the specified component regardless of what changed. helpful when this comp-id must be a bundle']]);
77
+ _defineProperty(this, "options", [['v', 'verbose', 'show all watch events and compiler verbose output'], ['', 'skip-pre-compilation', 'skip compilation step before starting to watch'], ['t', 'check-types [string]', 'show errors/warnings for types. options are [file, project] to investigate only changed file or entire project. defaults to project'], ['i', 'import', 'DEPRECATED. it is now the default. helpful when using git. import component objects if .bitmap changed not by bit'], ['', 'skip-import', 'do not import component objects if .bitmap changed not by bit'], ['', 'generate-types', 'EXPERIMENTAL. generate d.ts files for typescript components (hurts performance)'], ['', 'trigger <comp-id>', 'trigger recompilation of the specified component regardless of what changed. helpful when this comp-id must be a bundle']]);
78
78
  _defineProperty(this, "eventsListener", event => {
79
79
  switch (event.type) {
80
80
  case _compiler().CompilerErrorEvent.TYPE:
@@ -123,7 +123,8 @@ if this doesn't work well for you, run "bit config set watch_use_polling true" t
123
123
  // if check-types is enabled, it must spawn the tsserver.
124
124
  checkTypes: getCheckTypesEnum(),
125
125
  import: !skipImport,
126
- trigger: trigger ? _componentId().ComponentID.fromString(trigger) : undefined
126
+ trigger: trigger ? _componentId().ComponentID.fromString(trigger) : undefined,
127
+ generateTypes: watchCmdOpts.generateTypes
127
128
  };
128
129
  await this.watcher.watch(watchOpts);
129
130
  return 'watcher terminated';
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_moment","_componentId","_compiler","_outputFormatter","_checkTypes","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","WatchCommand","constructor","pubsub","logger","watcher","event","type","CompilerErrorEvent","TYPE","console","error","registerToEvents","sub","CompilerAspect","id","eventsListener","report","cliArgs","watchCmdOpts","verbose","checkTypes","import","importIfNeeded","skipImport","trigger","consoleWarning","getCheckTypesEnum","undefined","CheckTypes","None","EntireProject","ChangedFile","Error","watchOpts","msgs","getMessages","compile","preCompile","skipPreCompilation","spawnTSServer","Boolean","ComponentID","fromString","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';\nimport { ComponentID } from '@teambit/component-id';\nimport { CompilerAspect, CompilerErrorEvent } from '@teambit/compiler';\nimport { EventMessages, RootDirs, WatchOptions } from './watcher';\nimport { formatCompileResults, formatWatchPathsSortByComponent } from './output-formatter';\nimport { CheckTypes } from './check-types';\nimport { WatcherMain } from './watcher.main.runtime';\n\ntype WatchCmdOpts = {\n verbose?: boolean;\n skipPreCompilation?: boolean;\n checkTypes?: string | boolean;\n import?: boolean;\n skipImport?: boolean;\n trigger?: string;\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 'show errors/warnings for types. options are [file, project] to investigate only changed file or entire project. defaults to project',\n ],\n [\n 'i',\n 'import',\n 'DEPRECATED. it is now the default. helpful when using git. import component objects if .bitmap changed not by bit',\n ],\n ['', 'skip-import', 'do not import component objects if .bitmap changed not by bit'],\n [\n '',\n 'trigger <comp-id>',\n 'trigger recompilation of the specified component regardless of what changed. helpful when this comp-id must be a bundle',\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, import: importIfNeeded, skipImport, trigger } = watchCmdOpts;\n if (importIfNeeded) {\n this.logger.consoleWarning('the \"--import\" flag is deprecated and is now the default behavior');\n }\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 import: !skipImport,\n trigger: trigger ? ComponentID.fromString(trigger) : undefined,\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":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_moment","_componentId","_compiler","_outputFormatter","_checkTypes","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","WatchCommand","constructor","pubsub","logger","watcher","event","type","CompilerErrorEvent","TYPE","console","error","registerToEvents","sub","CompilerAspect","id","eventsListener","report","cliArgs","watchCmdOpts","verbose","checkTypes","import","importIfNeeded","skipImport","trigger","consoleWarning","getCheckTypesEnum","undefined","CheckTypes","None","EntireProject","ChangedFile","Error","watchOpts","msgs","getMessages","compile","preCompile","skipPreCompilation","spawnTSServer","Boolean","ComponentID","fromString","generateTypes","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';\nimport { ComponentID } from '@teambit/component-id';\nimport { CompilerAspect, CompilerErrorEvent } from '@teambit/compiler';\nimport { EventMessages, RootDirs, WatchOptions } from './watcher';\nimport { formatCompileResults, formatWatchPathsSortByComponent } from './output-formatter';\nimport { CheckTypes } from './check-types';\nimport { WatcherMain } from './watcher.main.runtime';\n\ntype WatchCmdOpts = {\n verbose?: boolean;\n skipPreCompilation?: boolean;\n checkTypes?: string | boolean;\n import?: boolean;\n skipImport?: boolean;\n generateTypes?: boolean;\n trigger?: string;\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 'show errors/warnings for types. options are [file, project] to investigate only changed file or entire project. defaults to project',\n ],\n [\n 'i',\n 'import',\n 'DEPRECATED. it is now the default. helpful when using git. import component objects if .bitmap changed not by bit',\n ],\n ['', 'skip-import', 'do not import component objects if .bitmap changed not by bit'],\n ['', 'generate-types', 'EXPERIMENTAL. generate d.ts files for typescript components (hurts performance)'],\n [\n '',\n 'trigger <comp-id>',\n 'trigger recompilation of the specified component regardless of what changed. helpful when this comp-id must be a bundle',\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, import: importIfNeeded, skipImport, trigger } = watchCmdOpts;\n if (importIfNeeded) {\n this.logger.consoleWarning('the \"--import\" flag is deprecated and is now the default behavior');\n }\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 import: !skipImport,\n trigger: trigger ? ComponentID.fromString(trigger) : undefined,\n generateTypes: watchCmdOpts.generateTypes,\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
@@ -30,6 +30,7 @@ export type WatchOptions = {
30
30
  preCompile?: boolean;
31
31
  compile?: boolean;
32
32
  import?: boolean;
33
+ generateTypes?: boolean;
33
34
  trigger?: ComponentID;
34
35
  };
35
36
  export type RootDirs = {
@@ -1 +1 @@
1
- {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_lodash","_loader","_constants","_logger","_legacy","_pMapSeries","_chalk","_unmergedComponents","_chokidar","_workspace","_watchQueue","_excluded","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","i","_objectWithoutPropertiesLoose","s","includes","propertyIsEnumerable","call","n","hasOwnProperty","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","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","watched","getWatched","totalWatched","flat","logger","console","chalk","bold","JSON","stringify","toString","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","warn","triggerGotEvent","WORKSPACE_JSONC","triggerOnWorkspaceConfigChange","UNMERGED_FILENAME","clearCache","componentId","getComponentIdByPath","compIdStr","changedFilesPerComponent","sleep","triggerCompChanges","undefined","join","msg","error","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","trigger","triggerOnComponentChange","previewsRootDirs","previewsIds","getAllBitIds","_reloadConsumer","importObjectsIfNeeded","triggerOnBitmapChange","newDirs","difference","removedDirs","addResults","mapSeries","dir","executeWatchOperationsOnRemove","import","currentIds","hasVersionChanges","prevId","searchWithoutVersion","version","existsInScope","isComponentInScope","useCache","lane","getCurrentLaneObject","pub","WorkspaceAspect","createOnComponentRemovedEvent","triggerOnComponentRemove","isChange","isComponentWatchedExternally","idStr","createOnComponentChangeEvent","createOnComponentAddEvent","triggerOnComponentAdd","OnComponentRemovedEvent","now","hook","OnComponentChangeEvent","OnComponentAddEvent","watcherData","multipleWatchers","m","compilerId","rootDir","findRootDirByFilePathRecursively","pathNormalizeToLinux","parentDir","usePollingConf","globalConfig","CFG_WATCH_USE_POLLING","usePolling","workspacePathLinux","path","ignoreLocalScope","pathToCheck","startsWith","chokidar","ignoreInitial","ignored","persistent","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, ComponentIdList } 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, PathOsBasedAbsolute } from '@teambit/legacy.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 'chokidar';\nimport { ComponentMap } from '@teambit/legacy.bit-map';\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 import?: boolean; // whether import objects when .bitmap got version changes\n trigger?: ComponentID; // trigger onComponentChange for the specified component-id. helpful when this comp must be a bundle, and needs to be recompile on any dep change.\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 if (this.verbose) {\n const watched = this.fsWatcher.getWatched();\n const totalWatched = Object.values(watched).flat().length;\n logger.console(\n `${chalk.bold('the following files are being watched:')}\\n${JSON.stringify(watched, null, 2)}`\n );\n logger.console(`\\nTotal files being watched: ${chalk.bold(totalWatched.toString())}`);\n }\n\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 (!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 if (this.options.trigger && !updatedComponentId.isEqual(this.options.trigger)) {\n await this.workspace.triggerOnComponentChange(this.options.trigger, [], [], this.options);\n }\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 const previewsIds = this.consumer.bitMap.getAllBitIds();\n await this.workspace._reloadConsumer();\n await this.setRootDirs();\n await this.importObjectsIfNeeded(previewsIds);\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 /**\n * needed when using git.\n * it resolves the following issue - a user is running `git pull` which updates the components and the .bitmap file.\n * because the objects locally are not updated, the .bitmap has new versions that don't exist in the local scope.\n * as soon as the watcher gets an event about a file change, it loads the component which throws\n * ComponentsPendingImport error.\n * to resolve this, we import the new objects as soon as the .bitmap file changes.\n * for performance reasons, we import only when: 1) the .bitmap file has version changes and 2) this new version is\n * not already in the scope.\n */\n private async importObjectsIfNeeded(previewsIds: ComponentIdList) {\n if (!this.options.import) {\n return;\n }\n const currentIds = this.consumer.bitMap.getAllBitIds();\n const hasVersionChanges = currentIds.find((id) => {\n const prevId = previewsIds.searchWithoutVersion(id);\n return prevId && prevId.version !== id.version;\n });\n if (!hasVersionChanges) {\n return;\n }\n const existsInScope = await this.workspace.scope.isComponentInScope(hasVersionChanges);\n if (existsInScope) {\n // the .bitmap change was probably a result of tag/snap/merge, no need to import.\n return;\n }\n if (this.options.verbose) {\n logger.console(\n `Watcher: .bitmap has changed with new versions which do not exist locally, importing the objects...`\n );\n }\n await this.workspace.scope.import(currentIds, {\n useCache: true,\n lane: await this.workspace.getCurrentLaneObject(),\n });\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 workspacePathLinux = pathNormalizeToLinux(this.workspace.path);\n const ignoreLocalScope = (pathToCheck: string) => {\n if (pathToCheck.startsWith(this.ipcEventsDir) || pathToCheck.endsWith(UNMERGED_FILENAME)) return false;\n return (\n pathToCheck.startsWith(`${workspacePathLinux}/.git/`) || pathToCheck.startsWith(`${workspacePathLinux}/.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 usePolling,\n // useFsEvents,\n persistent: true,\n });\n if (this.verbose) {\n logger.console(`${chalk.bold('chokidar.options:\\n')} ${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":[]}
1
+ {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_lodash","_loader","_constants","_logger","_legacy","_pMapSeries","_chalk","_unmergedComponents","_chokidar","_workspace","_watchQueue","_excluded","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","i","_objectWithoutPropertiesLoose","s","includes","propertyIsEnumerable","call","n","hasOwnProperty","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","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","watched","getWatched","totalWatched","flat","logger","console","chalk","bold","JSON","stringify","toString","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","warn","triggerGotEvent","WORKSPACE_JSONC","triggerOnWorkspaceConfigChange","UNMERGED_FILENAME","clearCache","componentId","getComponentIdByPath","compIdStr","changedFilesPerComponent","sleep","triggerCompChanges","undefined","join","msg","error","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","trigger","triggerOnComponentChange","previewsRootDirs","previewsIds","getAllBitIds","_reloadConsumer","importObjectsIfNeeded","triggerOnBitmapChange","newDirs","difference","removedDirs","addResults","mapSeries","dir","executeWatchOperationsOnRemove","import","currentIds","hasVersionChanges","prevId","searchWithoutVersion","version","existsInScope","isComponentInScope","useCache","lane","getCurrentLaneObject","pub","WorkspaceAspect","createOnComponentRemovedEvent","triggerOnComponentRemove","isChange","isComponentWatchedExternally","idStr","createOnComponentChangeEvent","createOnComponentAddEvent","triggerOnComponentAdd","OnComponentRemovedEvent","now","hook","OnComponentChangeEvent","OnComponentAddEvent","watcherData","multipleWatchers","m","compilerId","rootDir","findRootDirByFilePathRecursively","pathNormalizeToLinux","parentDir","usePollingConf","globalConfig","CFG_WATCH_USE_POLLING","usePolling","workspacePathLinux","path","ignoreLocalScope","pathToCheck","startsWith","chokidar","ignoreInitial","ignored","persistent","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, ComponentIdList } 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, PathOsBasedAbsolute } from '@teambit/legacy.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 'chokidar';\nimport { ComponentMap } from '@teambit/legacy.bit-map';\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 import?: boolean; // whether import objects when .bitmap got version changes\n generateTypes?: boolean; // whether generate d.ts files for typescript files during watch process (hurts performance)\n trigger?: ComponentID; // trigger onComponentChange for the specified component-id. helpful when this comp must be a bundle, and needs to be recompile on any dep change.\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 if (this.verbose) {\n const watched = this.fsWatcher.getWatched();\n const totalWatched = Object.values(watched).flat().length;\n logger.console(\n `${chalk.bold('the following files are being watched:')}\\n${JSON.stringify(watched, null, 2)}`\n );\n logger.console(`\\nTotal files being watched: ${chalk.bold(totalWatched.toString())}`);\n }\n\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 (!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 if (this.options.trigger && !updatedComponentId.isEqual(this.options.trigger)) {\n await this.workspace.triggerOnComponentChange(this.options.trigger, [], [], this.options);\n }\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 const previewsIds = this.consumer.bitMap.getAllBitIds();\n await this.workspace._reloadConsumer();\n await this.setRootDirs();\n await this.importObjectsIfNeeded(previewsIds);\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 /**\n * needed when using git.\n * it resolves the following issue - a user is running `git pull` which updates the components and the .bitmap file.\n * because the objects locally are not updated, the .bitmap has new versions that don't exist in the local scope.\n * as soon as the watcher gets an event about a file change, it loads the component which throws\n * ComponentsPendingImport error.\n * to resolve this, we import the new objects as soon as the .bitmap file changes.\n * for performance reasons, we import only when: 1) the .bitmap file has version changes and 2) this new version is\n * not already in the scope.\n */\n private async importObjectsIfNeeded(previewsIds: ComponentIdList) {\n if (!this.options.import) {\n return;\n }\n const currentIds = this.consumer.bitMap.getAllBitIds();\n const hasVersionChanges = currentIds.find((id) => {\n const prevId = previewsIds.searchWithoutVersion(id);\n return prevId && prevId.version !== id.version;\n });\n if (!hasVersionChanges) {\n return;\n }\n const existsInScope = await this.workspace.scope.isComponentInScope(hasVersionChanges);\n if (existsInScope) {\n // the .bitmap change was probably a result of tag/snap/merge, no need to import.\n return;\n }\n if (this.options.verbose) {\n logger.console(\n `Watcher: .bitmap has changed with new versions which do not exist locally, importing the objects...`\n );\n }\n await this.workspace.scope.import(currentIds, {\n useCache: true,\n lane: await this.workspace.getCurrentLaneObject(),\n });\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 workspacePathLinux = pathNormalizeToLinux(this.workspace.path);\n const ignoreLocalScope = (pathToCheck: string) => {\n if (pathToCheck.startsWith(this.ipcEventsDir) || pathToCheck.endsWith(UNMERGED_FILENAME)) return false;\n return (\n pathToCheck.startsWith(`${workspacePathLinux}/.git/`) || pathToCheck.startsWith(`${workspacePathLinux}/.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 usePolling,\n // useFsEvents,\n persistent: true,\n });\n if (this.verbose) {\n logger.console(`${chalk.bold('chokidar.options:\\n')} ${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,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/watcher",
3
- "version": "1.0.468",
3
+ "version": "1.0.469",
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.468"
9
+ "version": "1.0.469"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -18,14 +18,14 @@
18
18
  "fs-extra": "10.0.0",
19
19
  "@teambit/component-id": "1.2.2",
20
20
  "@teambit/harmony": "0.4.6",
21
- "@teambit/compiler": "1.0.468",
22
- "@teambit/logger": "0.0.1138",
23
- "@teambit/workspace": "1.0.468",
24
- "@teambit/cli": "0.0.1045",
25
- "@teambit/pubsub": "1.0.468",
26
- "@teambit/global-config": "0.0.1048",
27
- "@teambit/ipc-events": "1.0.468",
28
- "@teambit/scope": "1.0.468",
21
+ "@teambit/compiler": "1.0.469",
22
+ "@teambit/logger": "0.0.1139",
23
+ "@teambit/workspace": "1.0.469",
24
+ "@teambit/cli": "0.0.1046",
25
+ "@teambit/pubsub": "1.0.469",
26
+ "@teambit/global-config": "0.0.1049",
27
+ "@teambit/ipc-events": "1.0.469",
28
+ "@teambit/scope": "1.0.469",
29
29
  "@teambit/legacy.bit-map": "0.0.50",
30
30
  "@teambit/legacy.utils": "0.0.6"
31
31
  },