@teambit/watcher 0.0.169 → 0.0.171

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,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -13,6 +12,7 @@ function _chalk() {
13
12
  };
14
13
  return data;
15
14
  }
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
16
  const verboseComponentFilesArrayToString = (componentFiles = []) => {
17
17
  return componentFiles.reduce((outputString, filePath) => `${outputString} \t - ${filePath}\n`, ``);
18
18
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","verboseComponentFilesArrayToString","componentFiles","reduce","outputString","filePath","resultsForExtensionArrayToString","resultsForExtension","verbose","resultForExtension","chalk","green","component","componentFilesAsString","formatWatchPathsSortByComponent","trackDirs","Object","keys","watchPath","underline","exports","formatCompileResults","compileResults","length","Array","isArray","filter","compileResult","_compileResult$result","_compileResult$result2","results","map","_compileResult$result3","_compileResult$result4","extensionId","buildResults"],"sources":["output-formatter.ts"],"sourcesContent":["import { 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}${chalk.green('√')}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 ${chalk.green('√')} 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":";;;;;;;;AACA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,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,gBAAK,CAACC,KAAK,CAAC,GAAG,CAAE,YAAWF,kBAAkB,CAACG,SAAU;AACjF,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,gBAAK,CAACC,KAAK,CAAC,GAAG,CAAE,aAAYI,SAAS,CAACG,SAAS,CAAE;AACxD,WAAWA,SAAU,MAAK,EACrB,IAAGR,gBAAK,CAACS,SAAS,CAAC,wBAAwB,CAAE,IAChD,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALAC,OAAA,CAAAN,+BAAA,GAAAA,+BAAA;AAMO,SAASO,oBAAoBA,CAACC,cAAwC,EAAEd,OAAgB,EAAE;EAC/F,IAAI,CAACc,cAAc,CAACC,MAAM,IAAI,CAACC,KAAK,CAACC,OAAO,CAACH,cAAc,CAAC,EAAE,OAAO,EAAE;EACvE,OAAOA,cAAc,CAClBI,MAAM,CAAEC,aAAa;IAAA,IAAAC,qBAAA,EAAAC,sBAAA;IAAA,OAAK,EAAAD,qBAAA,GAAAD,aAAa,CAACG,OAAO,cAAAF,qBAAA,uBAArBA,qBAAA,CAAuBE,OAAO,KAAIN,KAAK,CAACC,OAAO,EAAAI,sBAAA,GAACF,aAAa,CAACG,OAAO,cAAAD,sBAAA,uBAArBA,sBAAA,CAAuBC,OAAO,CAAC;EAAA,EAAC,CAC1GC,GAAG,CAAEJ,aAAa;IAAA,IAAAK,sBAAA,EAAAC,sBAAA;IAAA,OAAM;MACvBC,WAAW,EAAEP,aAAa,CAACO,WAAW;MACtC3B,mBAAmB,GAAAyB,sBAAA,GAAEL,aAAa,CAACG,OAAO,cAAAE,sBAAA,wBAAAC,sBAAA,GAArBD,sBAAA,CAAuBF,OAAO,cAAAG,sBAAA,uBAA9BA,sBAAA,CAAgCF,GAAG,CAAEtB,kBAAkB,KAAM;QAChFG,SAAS,EAAEH,kBAAkB,CAACG,SAAS;QACvCC,sBAAsB,EAAEZ,kCAAkC,CAACQ,kBAAkB,CAAC0B,YAAY;MAC5F,CAAC,CAAC;IACJ,CAAC;EAAA,CAAC,CAAC,CACFhC,MAAM,CACL,CAACC,YAAY,EAAEuB,aAAa,KACzB,GAAEvB,YAAa;AACxB,IAAIE,gCAAgC,CAACqB,aAAa,CAACpB,mBAAmB,EAAEC,OAAO,CAAE,EAAC,EAC3E,IAAGE,gBAAK,CAACS,SAAS,CAAC,sBAAsB,CAAE,EAC9C,CAAC;AACL"}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","obj","__esModule","default","verboseComponentFilesArrayToString","componentFiles","reduce","outputString","filePath","resultsForExtensionArrayToString","resultsForExtension","verbose","resultForExtension","chalk","green","component","componentFilesAsString","formatWatchPathsSortByComponent","trackDirs","Object","keys","watchPath","underline","exports","formatCompileResults","compileResults","length","Array","isArray","filter","compileResult","_compileResult$result","_compileResult$result2","results","map","_compileResult$result3","_compileResult$result4","extensionId","buildResults"],"sources":["output-formatter.ts"],"sourcesContent":["import { 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}${chalk.green('√')}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 ${chalk.green('√')} 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":";;;;;;;AACA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAC,uBAAAE,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,gBAAK,CAACC,KAAK,CAAC,GAAG,CAAE,YAAWF,kBAAkB,CAACG,SAAU;AACjF,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,gBAAK,CAACC,KAAK,CAAC,GAAG,CAAE,aAAYI,SAAS,CAACG,SAAS,CAAE;AACxD,WAAWA,SAAU,MAAK,EACrB,IAAGR,gBAAK,CAACS,SAAS,CAAC,wBAAwB,CAAE,IAChD,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALAC,OAAA,CAAAN,+BAAA,GAAAA,+BAAA;AAMO,SAASO,oBAAoBA,CAACC,cAAwC,EAAEd,OAAgB,EAAE;EAC/F,IAAI,CAACc,cAAc,CAACC,MAAM,IAAI,CAACC,KAAK,CAACC,OAAO,CAACH,cAAc,CAAC,EAAE,OAAO,EAAE;EACvE,OAAOA,cAAc,CAClBI,MAAM,CAAEC,aAAa;IAAA,IAAAC,qBAAA,EAAAC,sBAAA;IAAA,OAAK,EAAAD,qBAAA,GAAAD,aAAa,CAACG,OAAO,cAAAF,qBAAA,uBAArBA,qBAAA,CAAuBE,OAAO,KAAIN,KAAK,CAACC,OAAO,EAAAI,sBAAA,GAACF,aAAa,CAACG,OAAO,cAAAD,sBAAA,uBAArBA,sBAAA,CAAuBC,OAAO,CAAC;EAAA,EAAC,CAC1GC,GAAG,CAAEJ,aAAa;IAAA,IAAAK,sBAAA,EAAAC,sBAAA;IAAA,OAAM;MACvBC,WAAW,EAAEP,aAAa,CAACO,WAAW;MACtC3B,mBAAmB,GAAAyB,sBAAA,GAAEL,aAAa,CAACG,OAAO,cAAAE,sBAAA,wBAAAC,sBAAA,GAArBD,sBAAA,CAAuBF,OAAO,cAAAG,sBAAA,uBAA9BA,sBAAA,CAAgCF,GAAG,CAAEtB,kBAAkB,KAAM;QAChFG,SAAS,EAAEH,kBAAkB,CAACG,SAAS;QACvCC,sBAAsB,EAAEZ,kCAAkC,CAACQ,kBAAkB,CAAC0B,YAAY;MAC5F,CAAC,CAAC;IACJ,CAAC;EAAA,CAAC,CAAC,CACFhC,MAAM,CACL,CAACC,YAAY,EAAEuB,aAAa,KACzB,GAAEvB,YAAa;AACxB,IAAIE,gCAAgC,CAACqB,aAAa,CAACpB,mBAAmB,EAAEC,OAAO,CAAE,EAAC,EAC3E,IAAGE,gBAAK,CAACS,SAAS,CAAC,sBAAsB,CAAE,EAC9C,CAAC;AACL"}
@@ -1,17 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.WatchQueue = void 0;
8
- function _defineProperty2() {
9
- const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- _defineProperty2 = function () {
11
- return data;
12
- };
13
- return data;
14
- }
15
7
  function _pQueue() {
16
8
  const data = _interopRequireDefault(require("p-queue"));
17
9
  _pQueue = function () {
@@ -19,9 +11,13 @@ function _pQueue() {
19
11
  };
20
12
  return data;
21
13
  }
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
17
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
22
18
  class WatchQueue {
23
19
  constructor(concurrency = 1) {
24
- (0, _defineProperty2().default)(this, "queue", void 0);
20
+ _defineProperty(this, "queue", void 0);
25
21
  this.queue = new (_pQueue().default)({
26
22
  concurrency,
27
23
  autoStart: true
@@ -1 +1 @@
1
- {"version":3,"names":["_pQueue","data","_interopRequireDefault","require","WatchQueue","constructor","concurrency","_defineProperty2","default","queue","PQueue","autoStart","getQueue","add","fn","priority","onIdle","exports"],"sources":["watch-queue.ts"],"sourcesContent":["import PQueue from 'p-queue';\n\nexport class WatchQueue {\n private queue: PQueue;\n constructor(concurrency = 1) {\n this.queue = new PQueue({ concurrency, autoStart: true });\n }\n getQueue() {\n return this.queue;\n }\n add<T>(fn: () => T, priority?: number): Promise<T> {\n return this.queue.add(fn, { priority });\n }\n onIdle(): Promise<void> {\n return this.queue.onIdle();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMG,UAAU,CAAC;EAEtBC,WAAWA,CAACC,WAAW,GAAG,CAAC,EAAE;IAAA,IAAAC,gBAAA,GAAAC,OAAA;IAC3B,IAAI,CAACC,KAAK,GAAG,KAAIC,iBAAM,EAAC;MAAEJ,WAAW;MAAEK,SAAS,EAAE;IAAK,CAAC,CAAC;EAC3D;EACAC,QAAQA,CAAA,EAAG;IACT,OAAO,IAAI,CAACH,KAAK;EACnB;EACAI,GAAGA,CAAIC,EAAW,EAAEC,QAAiB,EAAc;IACjD,OAAO,IAAI,CAACN,KAAK,CAACI,GAAG,CAACC,EAAE,EAAE;MAAEC;IAAS,CAAC,CAAC;EACzC;EACAC,MAAMA,CAAA,EAAkB;IACtB,OAAO,IAAI,CAACP,KAAK,CAACO,MAAM,CAAC,CAAC;EAC5B;AACF;AAACC,OAAA,CAAAb,UAAA,GAAAA,UAAA"}
1
+ {"version":3,"names":["_pQueue","data","_interopRequireDefault","require","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","WatchQueue","constructor","concurrency","queue","PQueue","autoStart","getQueue","add","fn","priority","onIdle","exports"],"sources":["watch-queue.ts"],"sourcesContent":["import PQueue from 'p-queue';\n\nexport class WatchQueue {\n private queue: PQueue;\n constructor(concurrency = 1) {\n this.queue = new PQueue({ concurrency, autoStart: true });\n }\n getQueue() {\n return this.queue;\n }\n add<T>(fn: () => T, priority?: number): Promise<T> {\n return this.queue.add(fn, { priority });\n }\n onIdle(): Promise<void> {\n return this.queue.onIdle();\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA6B,SAAAC,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,eAAAM,GAAA,QAAAR,GAAA,GAAAS,YAAA,CAAAD,GAAA,2BAAAR,GAAA,gBAAAA,GAAA,GAAAU,MAAA,CAAAV,GAAA;AAAA,SAAAS,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAEtB,MAAMU,UAAU,CAAC;EAEtBC,WAAWA,CAACC,WAAW,GAAG,CAAC,EAAE;IAAAxB,eAAA;IAC3B,IAAI,CAACyB,KAAK,GAAG,KAAIC,iBAAM,EAAC;MAAEF,WAAW;MAAEG,SAAS,EAAE;IAAK,CAAC,CAAC;EAC3D;EACAC,QAAQA,CAAA,EAAG;IACT,OAAO,IAAI,CAACH,KAAK;EACnB;EACAI,GAAGA,CAAIC,EAAW,EAAEC,QAAiB,EAAc;IACjD,OAAO,IAAI,CAACN,KAAK,CAACI,GAAG,CAACC,EAAE,EAAE;MAAEC;IAAS,CAAC,CAAC;EACzC;EACAC,MAAMA,CAAA,EAAkB;IACtB,OAAO,IAAI,CAACP,KAAK,CAACO,MAAM,CAAC,CAAC;EAC5B;AACF;AAACC,OAAA,CAAAX,UAAA,GAAAA,UAAA"}
package/dist/watch.cmd.js CHANGED
@@ -1,19 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- require("core-js/modules/es.array.iterator.js");
5
- require("core-js/modules/es.promise.js");
6
3
  Object.defineProperty(exports, "__esModule", {
7
4
  value: true
8
5
  });
9
6
  exports.WatchCommand = void 0;
10
- function _defineProperty2() {
11
- const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
- _defineProperty2 = function () {
13
- return data;
14
- };
15
- return data;
16
- }
17
7
  function _chalk() {
18
8
  const data = _interopRequireDefault(require("chalk"));
19
9
  _chalk = function () {
@@ -49,8 +39,10 @@ function _checkTypes() {
49
39
  };
50
40
  return data;
51
41
  }
52
- // import IDs and events
53
-
42
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
43
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
44
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
45
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // import IDs and events
54
46
  class WatchCommand {
55
47
  constructor(
56
48
  /**
@@ -68,17 +60,17 @@ class WatchCommand {
68
60
  this.pubsub = pubsub;
69
61
  this.logger = logger;
70
62
  this.watcher = watcher;
71
- (0, _defineProperty2().default)(this, "name", 'watch');
72
- (0, _defineProperty2().default)(this, "description", 'automatically recompile modified components (on save)');
73
- (0, _defineProperty2().default)(this, "extendedDescription", `by default, the watcher doesn't use polling, to keep the CPU idle.
74
- in some rare cases, this could result in missing file events (files are not watched).
75
- to fix it, try to stop other watchers on the same machine.
76
- alternatively, to use polling, run "bit config set watch_use_polling true".`);
77
- (0, _defineProperty2().default)(this, "helpUrl", 'reference/compiling/compiler-overview');
78
- (0, _defineProperty2().default)(this, "alias", '');
79
- (0, _defineProperty2().default)(this, "group", 'development');
80
- (0, _defineProperty2().default)(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]', 'EXPERIMENTAL. show errors/warnings for types. options are [file, project] to investigate only changed file or entire project. defaults to project']]);
81
- (0, _defineProperty2().default)(this, "eventsListener", event => {
63
+ _defineProperty(this, "name", 'watch');
64
+ _defineProperty(this, "description", 'automatically recompile modified components (on save)');
65
+ _defineProperty(this, "extendedDescription", `by default, the watcher use polling, although it causes a high CPU usage.
66
+ it's needed due to a bug (fixed in master but not released yet) in Chokidar package, which is used by Bit watcher.
67
+ for small projects though it should be ok to use the fsevents.
68
+ to use fsevents, run "bit config set watch_use_fsevents true".`);
69
+ _defineProperty(this, "helpUrl", 'reference/compiling/compiler-overview');
70
+ _defineProperty(this, "alias", '');
71
+ _defineProperty(this, "group", 'development');
72
+ _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]', 'EXPERIMENTAL. show errors/warnings for types. options are [file, project] to investigate only changed file or entire project. defaults to project']]);
73
+ _defineProperty(this, "eventsListener", event => {
82
74
  switch (event.type) {
83
75
  case _compiler().CompilerErrorEvent.TYPE:
84
76
  this.logger.console(`Watcher error ${event.data.error}, 'error'`);
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_moment","_compiler","_outputFormatter","_checkTypes","WatchCommand","constructor","pubsub","logger","watcher","_defineProperty2","default","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","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.\nin some rare cases, this could result in missing file events (files are not watched).\nto fix it, try to stop other watchers on the same machine.\nalternatively, to use polling, run \"bit config set watch_use_polling true\".`;\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 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 failureMsg = failureMsg || `The files ${files} have been ${eventMsgPlaceholder}, but nothing to compile`;\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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"}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_moment","_compiler","_outputFormatter","_checkTypes","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","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","CheckTypes","None","EntireProject","ChangedFile","Error","watchOpts","msgs","getMessages","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 use polling, although it causes a high CPU usage.\nit's needed due to a bug (fixed in master but not released yet) in Chokidar package, which is used by Bit watcher.\nfor small projects though it should be ok to use the fsevents.\nto use fsevents, run \"bit config set watch_use_fsevents true\".`;\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 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 failureMsg = failureMsg || `The files ${files} have been ${eventMsgPlaceholder}, but nothing to compile`;\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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"}
package/dist/watcher.js CHANGED
@@ -1,28 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- require("core-js/modules/es.array.flat.js");
5
- require("core-js/modules/es.array.iterator.js");
6
- require("core-js/modules/es.array.unscopables.flat.js");
7
- require("core-js/modules/es.promise.js");
8
3
  Object.defineProperty(exports, "__esModule", {
9
4
  value: true
10
5
  });
11
6
  exports.Watcher = void 0;
12
- function _objectWithoutProperties2() {
13
- const data = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
14
- _objectWithoutProperties2 = function () {
15
- return data;
16
- };
17
- return data;
18
- }
19
- function _defineProperty2() {
20
- const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
- _defineProperty2 = function () {
22
- return data;
23
- };
24
- return data;
25
- }
26
7
  function _fsExtra() {
27
8
  const data = _interopRequireDefault(require("fs-extra"));
28
9
  _fsExtra = function () {
@@ -107,22 +88,29 @@ function _watchQueue() {
107
88
  };
108
89
  return data;
109
90
  }
91
+ const _excluded = ["msgs"];
92
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
110
93
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
111
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
94
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
95
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
96
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
97
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
98
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
99
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
112
100
  const DEBOUNCE_WAIT_MS = 100;
113
101
  class Watcher {
114
102
  constructor(workspace, pubsub, watcherMain) {
115
103
  this.workspace = workspace;
116
104
  this.pubsub = pubsub;
117
105
  this.watcherMain = watcherMain;
118
- (0, _defineProperty2().default)(this, "fsWatcher", void 0);
119
- (0, _defineProperty2().default)(this, "changedFilesPerComponent", {});
120
- (0, _defineProperty2().default)(this, "watchQueue", new (_watchQueue().WatchQueue)());
121
- (0, _defineProperty2().default)(this, "bitMapChangesInProgress", false);
122
- (0, _defineProperty2().default)(this, "ipcEventsDir", void 0);
123
- (0, _defineProperty2().default)(this, "trackDirs", {});
124
- (0, _defineProperty2().default)(this, "verbose", false);
125
- (0, _defineProperty2().default)(this, "multipleWatchers", []);
106
+ _defineProperty(this, "fsWatcher", void 0);
107
+ _defineProperty(this, "changedFilesPerComponent", {});
108
+ _defineProperty(this, "watchQueue", new (_watchQueue().WatchQueue)());
109
+ _defineProperty(this, "bitMapChangesInProgress", false);
110
+ _defineProperty(this, "ipcEventsDir", void 0);
111
+ _defineProperty(this, "trackDirs", {});
112
+ _defineProperty(this, "verbose", false);
113
+ _defineProperty(this, "multipleWatchers", []);
126
114
  this.ipcEventsDir = this.watcherMain.ipcEvents.eventsDir;
127
115
  }
128
116
  get consumer() {
@@ -132,7 +120,7 @@ class Watcher {
132
120
  const {
133
121
  msgs
134
122
  } = opts,
135
- watchOpts = (0, _objectWithoutProperties2().default)(opts, ["msgs"]);
123
+ watchOpts = _objectWithoutProperties(opts, _excluded);
136
124
  this.verbose = opts.verbose || false;
137
125
  const componentIds = Object.values(this.trackDirs);
138
126
  await this.watcherMain.triggerOnPreWatch(componentIds, watchOpts);
@@ -398,8 +386,10 @@ class Watcher {
398
386
  return this.findTrackDirByFilePathRecursively(parentDir);
399
387
  }
400
388
  async createWatcher() {
401
- const usePollingConf = await this.watcherMain.globalConfig.get(_constants().CFG_WATCH_USE_POLLING);
402
- const usePolling = usePollingConf === 'true';
389
+ // const usePollingConf = await this.watcherMain.globalConfig.get(CFG_WATCH_USE_POLLING);
390
+ // const usePolling = usePollingConf === 'true';
391
+ const useFsEventsConf = await this.watcherMain.globalConfig.get(_constants().CFG_WATCH_USE_FS_EVENTS);
392
+ const useFsEvents = useFsEventsConf === 'true';
403
393
  const ignoreLocalScope = pathToCheck => {
404
394
  if (pathToCheck.startsWith(this.ipcEventsDir)) return false;
405
395
  return pathToCheck.startsWith(`${this.workspace.path}/.git/`) || pathToCheck.startsWith(`${this.workspace.path}/.bit/`);
@@ -409,7 +399,13 @@ class Watcher {
409
399
  // `chokidar` matchers have Bash-parity, so Windows-style backslashes are not supported as separators.
410
400
  // (windows-style backslashes are converted to forward slashes)
411
401
  ignored: ['**/node_modules/**', '**/package.json', ignoreLocalScope],
412
- usePolling,
402
+ /**
403
+ * default to false, although it causes high CPU usage.
404
+ * see: https://github.com/paulmillr/chokidar/issues/1196#issuecomment-1711033539
405
+ * there is a fix for this in master. once a new version of Chokidar is released, we can upgrade it and then
406
+ * default to true.
407
+ */
408
+ useFsEvents,
413
409
  persistent: true
414
410
  });
415
411
  if (this.verbose) {
@@ -1 +1 @@
1
- {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_lodash","_loader","_constants","_logger","_utils","_pMapSeries","_chalk","_chokidar","_workspace","_watchQueue","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","DEBOUNCE_WAIT_MS","Watcher","constructor","workspace","pubsub","watcherMain","WatchQueue","ipcEventsDir","ipcEvents","eventsDir","consumer","watchAll","opts","msgs","watchOpts","_objectWithoutProperties2","verbose","componentIds","values","trackDirs","triggerOnPreWatch","setTrackDirs","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","initiator","duration","onChange","err","onError","endsWith","BIT_MAP","bitMapChangesInProgress","buildResults","watchQueue","add","handleBitmapChanges","onIdle","dirname","eventName","basename","logger","warn","triggerGotEvent","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","_legacy","f","getPathRelativeToConsumer","executeWatchOperationsOnComponent","previewsTrackDirs","_reloadConsumer","triggerOnBitmapChange","newDirs","difference","removedDirs","addResults","mapSeries","dir","flat","executeWatchOperationsOnRemove","chalk","bold","pub","WorkspaceAspect","creatOnComponentRemovedEvent","triggerOnComponentRemove","isChange","isComponentWatchedExternally","idStr","creatOnComponentChangeEvent","creatOnComponentAddEvent","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","watch","ignoreInitial","ignored","persistent","JSON","stringify","options","componentsFromBitMap","getAllComponents","bitId","rootDir","getRootDir","resolveComponentId","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';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { BIT_MAP, CFG_WATCH_USE_POLLING } 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 chokidar, { FSWatcher } from 'chokidar';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport { PathLinux, 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: BitId; componentIds: BitId[] };\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};\n\nconst DEBOUNCE_WAIT_MS = 100;\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(private workspace: Workspace, private pubsub: PubsubMain, private watcherMain: WatcherMain) {\n this.ipcEventsDir = this.watcherMain.ipcEvents.eventsDir;\n }\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n async watchAll(opts: WatchOptions) {\n const { msgs, ...watchOpts } = opts;\n this.verbose = opts.verbose || false;\n const componentIds = Object.values(this.trackDirs);\n await this.watcherMain.triggerOnPreWatch(componentIds, watchOpts);\n await this.setTrackDirs();\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(\n filePath,\n opts?.initiator\n );\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(\n filePath: string,\n initiator?: CompilationInitiator\n ): 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 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, initiator));\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 initiator?: CompilationInitiator\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 = await 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._legacy,\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 initiator\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.creatOnComponentRemovedEvent(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 initiator?: CompilationInitiator\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.creatOnComponentChangeEvent(idStr, 'OnComponentChange'));\n } else {\n logger.debug(`running OnComponentAdd hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.creatOnComponentAddEvent(idStr, 'OnComponentAdd'));\n }\n\n const buildResults = isChange\n ? await this.workspace.triggerOnComponentChange(componentId, files, removedFiles, initiator)\n : await this.workspace.triggerOnComponentAdd(componentId);\n\n return buildResults;\n }\n\n private creatOnComponentRemovedEvent(idStr) {\n return new OnComponentRemovedEvent(Date.now(), idStr);\n }\n\n private creatOnComponentChangeEvent(idStr, hook) {\n return new OnComponentChangeEvent(Date.now(), idStr, hook);\n }\n\n private creatOnComponentAddEvent(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._legacy)));\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 ignoreLocalScope = (pathToCheck: string) => {\n if (pathToCheck.startsWith(this.ipcEventsDir)) 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 usePolling,\n persistent: true,\n });\n if (this.verbose) {\n logger.console(`chokidar.options ${JSON.stringify(this.fsWatcher.options, undefined, 2)}`);\n }\n }\n\n async setTrackDirs() {\n this.trackDirs = {};\n const componentsFromBitMap = this.consumer.bitMap.getAllComponents();\n await Promise.all(\n componentsFromBitMap.map(async (componentMap) => {\n const bitId = componentMap.id;\n const rootDir = componentMap.getRootDir();\n if (!rootDir) throw new Error(`${bitId.toString()} has no rootDir, which is invalid in Harmony`);\n const componentId = await this.workspace.resolveComponentId(bitId);\n this.trackDirs[rootDir] = componentId;\n })\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_lodash","_loader","_constants","_logger","_utils","_pMapSeries","_chalk","_chokidar","_workspace","_watchQueue","_excluded","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","call","sourceKeys","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","DEBOUNCE_WAIT_MS","Watcher","constructor","workspace","pubsub","watcherMain","WatchQueue","ipcEventsDir","ipcEvents","eventsDir","consumer","watchAll","opts","msgs","watchOpts","verbose","componentIds","values","trackDirs","triggerOnPreWatch","setTrackDirs","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","initiator","duration","onChange","err","onError","endsWith","BIT_MAP","bitMapChangesInProgress","buildResults","watchQueue","add","handleBitmapChanges","onIdle","dirname","eventName","basename","logger","warn","triggerGotEvent","componentId","getComponentIdByPath","compIdStr","toString","changedFilesPerComponent","sleep","triggerCompChanges","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","_legacy","f","getPathRelativeToConsumer","executeWatchOperationsOnComponent","previewsTrackDirs","_reloadConsumer","triggerOnBitmapChange","newDirs","difference","removedDirs","addResults","mapSeries","dir","flat","executeWatchOperationsOnRemove","chalk","bold","pub","WorkspaceAspect","creatOnComponentRemovedEvent","triggerOnComponentRemove","isChange","isComponentWatchedExternally","idStr","creatOnComponentChangeEvent","creatOnComponentAddEvent","triggerOnComponentChange","triggerOnComponentAdd","OnComponentRemovedEvent","now","hook","OnComponentChangeEvent","OnComponentAddEvent","watcherData","multipleWatchers","m","compilerId","trackDir","findTrackDirByFilePathRecursively","pathNormalizeToLinux","parentDir","useFsEventsConf","globalConfig","CFG_WATCH_USE_FS_EVENTS","useFsEvents","ignoreLocalScope","pathToCheck","startsWith","path","chokidar","watch","ignoreInitial","ignored","persistent","JSON","stringify","options","componentsFromBitMap","getAllComponents","bitId","rootDir","getRootDir","resolveComponentId","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';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { BIT_MAP, CFG_WATCH_USE_FS_EVENTS } 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 chokidar, { FSWatcher } from 'chokidar';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport { PathLinux, 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: BitId; componentIds: BitId[] };\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};\n\nconst DEBOUNCE_WAIT_MS = 100;\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(private workspace: Workspace, private pubsub: PubsubMain, private watcherMain: WatcherMain) {\n this.ipcEventsDir = this.watcherMain.ipcEvents.eventsDir;\n }\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n async watchAll(opts: WatchOptions) {\n const { msgs, ...watchOpts } = opts;\n this.verbose = opts.verbose || false;\n const componentIds = Object.values(this.trackDirs);\n await this.watcherMain.triggerOnPreWatch(componentIds, watchOpts);\n await this.setTrackDirs();\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(\n filePath,\n opts?.initiator\n );\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(\n filePath: string,\n initiator?: CompilationInitiator\n ): 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 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, initiator));\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 initiator?: CompilationInitiator\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 = await 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._legacy,\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 initiator\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.creatOnComponentRemovedEvent(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 initiator?: CompilationInitiator\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.creatOnComponentChangeEvent(idStr, 'OnComponentChange'));\n } else {\n logger.debug(`running OnComponentAdd hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.creatOnComponentAddEvent(idStr, 'OnComponentAdd'));\n }\n\n const buildResults = isChange\n ? await this.workspace.triggerOnComponentChange(componentId, files, removedFiles, initiator)\n : await this.workspace.triggerOnComponentAdd(componentId);\n\n return buildResults;\n }\n\n private creatOnComponentRemovedEvent(idStr) {\n return new OnComponentRemovedEvent(Date.now(), idStr);\n }\n\n private creatOnComponentChangeEvent(idStr, hook) {\n return new OnComponentChangeEvent(Date.now(), idStr, hook);\n }\n\n private creatOnComponentAddEvent(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._legacy)));\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)) 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 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 async setTrackDirs() {\n this.trackDirs = {};\n const componentsFromBitMap = this.consumer.bitMap.getAllComponents();\n await Promise.all(\n componentsFromBitMap.map(async (componentMap) => {\n const bitId = componentMap.id;\n const rootDir = componentMap.getRootDir();\n if (!rootDir) throw new Error(`${bitId.toString()} has no rootDir, which is invalid in Harmony`);\n const componentId = await this.workspace.resolveComponentId(bitId);\n this.trackDirs[rootDir] = componentId;\n })\n );\n }\n}\n"],"mappings":"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"}
@@ -1,19 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- require("core-js/modules/es.array.iterator.js");
5
- require("core-js/modules/es.promise.js");
6
3
  Object.defineProperty(exports, "__esModule", {
7
4
  value: true
8
5
  });
9
6
  exports.default = exports.WatcherMain = void 0;
10
- function _defineProperty2() {
11
- const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
- _defineProperty2 = function () {
13
- return data;
14
- };
15
- return data;
16
- }
17
7
  function _cli() {
18
8
  const data = require("@teambit/cli");
19
9
  _cli = function () {
@@ -98,6 +88,10 @@ function _watcher2() {
98
88
  };
99
89
  return data;
100
90
  }
91
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
92
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
93
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
94
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
101
95
  class WatcherMain {
102
96
  constructor(workspace, scope, pubsub, onPreWatchSlot, ipcEvents, logger, globalConfig) {
103
97
  this.workspace = workspace;
@@ -134,9 +128,9 @@ class WatcherMain {
134
128
  }
135
129
  }
136
130
  exports.WatcherMain = WatcherMain;
137
- (0, _defineProperty2().default)(WatcherMain, "slots", [_harmony().Slot.withType()]);
138
- (0, _defineProperty2().default)(WatcherMain, "dependencies", [_cli().CLIAspect, _workspace().default, _scope().default, _pubsub().PubsubAspect, _logger().LoggerAspect, _ipcEvents().default, _globalConfig().default]);
139
- (0, _defineProperty2().default)(WatcherMain, "runtime", _cli().MainRuntime);
131
+ _defineProperty(WatcherMain, "slots", [_harmony().Slot.withType()]);
132
+ _defineProperty(WatcherMain, "dependencies", [_cli().CLIAspect, _workspace().default, _scope().default, _pubsub().PubsubAspect, _logger().LoggerAspect, _ipcEvents().default, _globalConfig().default]);
133
+ _defineProperty(WatcherMain, "runtime", _cli().MainRuntime);
140
134
  _watcher2().WatcherAspect.addRuntime(WatcherMain);
141
135
  var _default = WatcherMain;
142
136
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_harmony","_globalConfig","_interopRequireDefault","_scope","_ipcEvents","_logger","_pubsub","_workspace","_pMapSeries","_watch","_watcher","_watcher2","WatcherMain","constructor","workspace","scope","pubsub","onPreWatchSlot","ipcEvents","logger","globalConfig","watch","opts","watcher","Watcher","watchAll","watchScopeInternalFiles","triggerOnPreWatch","componentIds","watchOpts","preWatchFunctions","values","pMapSeries","func","registerOnPreWatch","onPreWatchFunc","register","provider","cli","loggerMain","_","createLogger","WatcherAspect","id","watcherMain","watchCmd","WatchCommand","exports","_defineProperty2","default","Slot","withType","CLIAspect","WorkspaceAspect","ScopeAspect","PubsubAspect","LoggerAspect","IpcEventsAspect","GlobalConfigAspect","MainRuntime","addRuntime","_default"],"sources":["watcher.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { SlotRegistry, Slot } from '@teambit/harmony';\nimport GlobalConfigAspect, { GlobalConfigMain } from '@teambit/global-config';\nimport ScopeAspect, { ScopeMain } from '@teambit/scope';\nimport { ComponentID } from '@teambit/component-id';\nimport IpcEventsAspect, { IpcEventsMain } from '@teambit/ipc-events';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { PubsubAspect, PubsubMain } from '@teambit/pubsub';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport pMapSeries from 'p-map-series';\nimport { WatchCommand } from './watch.cmd';\nimport { Watcher, WatchOptions } from './watcher';\nimport { WatcherAspect } from './watcher.aspect';\n\nexport type OnPreWatch = (componentIds: ComponentID[], watchOpts: WatchOptions) => Promise<void>;\nexport type OnPreWatchSlot = SlotRegistry<OnPreWatch>;\n\nexport class WatcherMain {\n constructor(\n private workspace: Workspace,\n private scope: ScopeMain,\n private pubsub: PubsubMain,\n private onPreWatchSlot: OnPreWatchSlot,\n readonly ipcEvents: IpcEventsMain,\n readonly logger: Logger,\n readonly globalConfig: GlobalConfigMain\n ) {}\n\n async watch(opts: WatchOptions) {\n const watcher = new Watcher(this.workspace, this.pubsub, this);\n await watcher.watchAll(opts);\n }\n\n async watchScopeInternalFiles() {\n await this.scope.watchScopeInternalFiles();\n }\n\n async triggerOnPreWatch(componentIds: ComponentID[], watchOpts: WatchOptions) {\n const preWatchFunctions = this.onPreWatchSlot.values();\n await pMapSeries(preWatchFunctions, async (func) => {\n await func(componentIds, watchOpts);\n });\n }\n\n registerOnPreWatch(onPreWatchFunc: OnPreWatch) {\n this.onPreWatchSlot.register(onPreWatchFunc);\n return this;\n }\n\n static slots = [Slot.withType<OnPreWatch>()];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n ScopeAspect,\n PubsubAspect,\n LoggerAspect,\n IpcEventsAspect,\n GlobalConfigAspect,\n ];\n static runtime = MainRuntime;\n\n static async provider(\n [cli, workspace, scope, pubsub, loggerMain, ipcEvents, globalConfig]: [\n CLIMain,\n Workspace,\n ScopeMain,\n PubsubMain,\n LoggerMain,\n IpcEventsMain,\n GlobalConfigMain\n ],\n _,\n [onPreWatchSlot]: [OnPreWatchSlot]\n ) {\n const logger = loggerMain.createLogger(WatcherAspect.id);\n const watcherMain = new WatcherMain(workspace, scope, pubsub, onPreWatchSlot, ipcEvents, logger, globalConfig);\n const watchCmd = new WatchCommand(pubsub, logger, watcherMain);\n cli.register(watchCmd);\n return watcherMain;\n }\n}\n\nWatcherAspect.addRuntime(WatcherMain);\n\nexport default WatcherMain;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_cli","data","require","_harmony","_globalConfig","_interopRequireDefault","_scope","_ipcEvents","_logger","_pubsub","_workspace","_pMapSeries","_watch","_watcher","_watcher2","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","WatcherMain","constructor","workspace","scope","pubsub","onPreWatchSlot","ipcEvents","logger","globalConfig","watch","opts","watcher","Watcher","watchAll","watchScopeInternalFiles","triggerOnPreWatch","componentIds","watchOpts","preWatchFunctions","values","pMapSeries","func","registerOnPreWatch","onPreWatchFunc","register","provider","cli","loggerMain","_","createLogger","WatcherAspect","id","watcherMain","watchCmd","WatchCommand","exports","Slot","withType","CLIAspect","WorkspaceAspect","ScopeAspect","PubsubAspect","LoggerAspect","IpcEventsAspect","GlobalConfigAspect","MainRuntime","addRuntime","_default"],"sources":["watcher.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { SlotRegistry, Slot } from '@teambit/harmony';\nimport GlobalConfigAspect, { GlobalConfigMain } from '@teambit/global-config';\nimport ScopeAspect, { ScopeMain } from '@teambit/scope';\nimport { ComponentID } from '@teambit/component-id';\nimport IpcEventsAspect, { IpcEventsMain } from '@teambit/ipc-events';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { PubsubAspect, PubsubMain } from '@teambit/pubsub';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport pMapSeries from 'p-map-series';\nimport { WatchCommand } from './watch.cmd';\nimport { Watcher, WatchOptions } from './watcher';\nimport { WatcherAspect } from './watcher.aspect';\n\nexport type OnPreWatch = (componentIds: ComponentID[], watchOpts: WatchOptions) => Promise<void>;\nexport type OnPreWatchSlot = SlotRegistry<OnPreWatch>;\n\nexport class WatcherMain {\n constructor(\n private workspace: Workspace,\n private scope: ScopeMain,\n private pubsub: PubsubMain,\n private onPreWatchSlot: OnPreWatchSlot,\n readonly ipcEvents: IpcEventsMain,\n readonly logger: Logger,\n readonly globalConfig: GlobalConfigMain\n ) {}\n\n async watch(opts: WatchOptions) {\n const watcher = new Watcher(this.workspace, this.pubsub, this);\n await watcher.watchAll(opts);\n }\n\n async watchScopeInternalFiles() {\n await this.scope.watchScopeInternalFiles();\n }\n\n async triggerOnPreWatch(componentIds: ComponentID[], watchOpts: WatchOptions) {\n const preWatchFunctions = this.onPreWatchSlot.values();\n await pMapSeries(preWatchFunctions, async (func) => {\n await func(componentIds, watchOpts);\n });\n }\n\n registerOnPreWatch(onPreWatchFunc: OnPreWatch) {\n this.onPreWatchSlot.register(onPreWatchFunc);\n return this;\n }\n\n static slots = [Slot.withType<OnPreWatch>()];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n ScopeAspect,\n PubsubAspect,\n LoggerAspect,\n IpcEventsAspect,\n GlobalConfigAspect,\n ];\n static runtime = MainRuntime;\n\n static async provider(\n [cli, workspace, scope, pubsub, loggerMain, ipcEvents, globalConfig]: [\n CLIMain,\n Workspace,\n ScopeMain,\n PubsubMain,\n LoggerMain,\n IpcEventsMain,\n GlobalConfigMain\n ],\n _,\n [onPreWatchSlot]: [OnPreWatchSlot]\n ) {\n const logger = loggerMain.createLogger(WatcherAspect.id);\n const watcherMain = new WatcherMain(workspace, scope, pubsub, onPreWatchSlot, ipcEvents, logger, globalConfig);\n const watchCmd = new WatchCommand(pubsub, logger, watcherMain);\n cli.register(watchCmd);\n return watcherMain;\n }\n}\n\nWatcherAspect.addRuntime(WatcherMain);\n\nexport default WatcherMain;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/watcher",
3
- "version": "0.0.169",
3
+ "version": "0.0.171",
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": "0.0.169"
9
+ "version": "0.0.171"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -16,20 +16,18 @@
16
16
  "chokidar": "3.5.3",
17
17
  "fs-extra": "10.0.0",
18
18
  "lodash": "4.17.21",
19
- "core-js": "^3.0.0",
20
- "@babel/runtime": "7.20.0",
21
19
  "@teambit/harmony": "0.4.6",
22
20
  "@teambit/component-id": "0.0.427",
23
21
  "@teambit/legacy-bit-id": "1.0.0",
24
- "@teambit/workspace": "0.0.1157",
25
- "@teambit/cli": "0.0.771",
26
- "@teambit/compiler": "0.0.1157",
27
- "@teambit/logger": "0.0.864",
28
- "@teambit/pubsub": "0.0.1157",
29
- "@teambit/global-config": "0.0.773",
30
- "@teambit/ipc-events": "0.0.47",
31
- "@teambit/scope": "0.0.1157",
32
- "@teambit/component": "0.0.1157"
22
+ "@teambit/workspace": "0.0.1159",
23
+ "@teambit/cli": "0.0.773",
24
+ "@teambit/compiler": "0.0.1159",
25
+ "@teambit/logger": "0.0.866",
26
+ "@teambit/pubsub": "0.0.1159",
27
+ "@teambit/global-config": "0.0.775",
28
+ "@teambit/ipc-events": "0.0.49",
29
+ "@teambit/scope": "0.0.1159",
30
+ "@teambit/component": "0.0.1159"
33
31
  },
34
32
  "devDependencies": {
35
33
  "@types/fs-extra": "9.0.7",
@@ -42,7 +40,7 @@
42
40
  "@types/testing-library__jest-dom": "5.9.5"
43
41
  },
44
42
  "peerDependencies": {
45
- "@teambit/legacy": "1.0.556",
43
+ "@teambit/legacy": "1.0.558",
46
44
  "react": "^16.8.0 || ^17.0.0",
47
45
  "react-dom": "^16.8.0 || ^17.0.0"
48
46
  },