@teambit/watcher 1.0.486 → 1.0.488
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<testsuites tests="0" failures="0" errors="0" skipped="0">
|
3
|
-
<testsuite name="teambit.workspace/watcher@1.0.
|
3
|
+
<testsuite name="teambit.workspace/watcher@1.0.488" tests="0" failures="0" errors="0" skipped="0"/>
|
4
4
|
</testsuites>
|
package/artifacts/schema.json
CHANGED
@@ -1753,7 +1753,11 @@
|
|
1753
1753
|
"character": 3
|
1754
1754
|
},
|
1755
1755
|
"name": "Consumer",
|
1756
|
-
"
|
1756
|
+
"componentId": {
|
1757
|
+
"scope": "teambit.legacy",
|
1758
|
+
"name": "consumer",
|
1759
|
+
"version": "0.0.1"
|
1760
|
+
}
|
1757
1761
|
}
|
1758
1762
|
},
|
1759
1763
|
{
|
@@ -2611,7 +2615,7 @@
|
|
2611
2615
|
"componentId": {
|
2612
2616
|
"scope": "teambit.workspace",
|
2613
2617
|
"name": "watcher",
|
2614
|
-
"version": "1.0.
|
2618
|
+
"version": "1.0.488"
|
2615
2619
|
},
|
2616
2620
|
"taggedModuleExports": []
|
2617
2621
|
}
|
package/dist/watcher.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { PubsubMain } from '@teambit/pubsub';
|
2
2
|
import { ComponentID } from '@teambit/component-id';
|
3
|
-
import { Consumer } from '@teambit/legacy
|
3
|
+
import { Consumer } from '@teambit/legacy.consumer';
|
4
4
|
import { ChildProcess } from 'child_process';
|
5
5
|
import { CompilationInitiator } from '@teambit/compiler';
|
6
6
|
import { Workspace, OnComponentEventResult } from '@teambit/workspace';
|
package/dist/watcher.js
CHANGED
@@ -25,23 +25,23 @@ function _lodash() {
|
|
25
25
|
};
|
26
26
|
return data;
|
27
27
|
}
|
28
|
-
function
|
29
|
-
const data = require("@teambit/legacy
|
30
|
-
|
28
|
+
function _legacy() {
|
29
|
+
const data = require("@teambit/legacy.constants");
|
30
|
+
_legacy = function () {
|
31
31
|
return data;
|
32
32
|
};
|
33
33
|
return data;
|
34
34
|
}
|
35
|
-
function
|
36
|
-
const data =
|
37
|
-
|
35
|
+
function _legacy2() {
|
36
|
+
const data = require("@teambit/legacy.logger");
|
37
|
+
_legacy2 = function () {
|
38
38
|
return data;
|
39
39
|
};
|
40
40
|
return data;
|
41
41
|
}
|
42
|
-
function
|
42
|
+
function _legacy3() {
|
43
43
|
const data = require("@teambit/legacy.utils");
|
44
|
-
|
44
|
+
_legacy3 = function () {
|
45
45
|
return data;
|
46
46
|
};
|
47
47
|
return data;
|
@@ -60,9 +60,9 @@ function _chalk() {
|
|
60
60
|
};
|
61
61
|
return data;
|
62
62
|
}
|
63
|
-
function
|
64
|
-
const data = require("@teambit/legacy
|
65
|
-
|
63
|
+
function _legacy4() {
|
64
|
+
const data = require("@teambit/legacy.scope");
|
65
|
+
_legacy4 = function () {
|
66
66
|
return data;
|
67
67
|
};
|
68
68
|
return data;
|
@@ -145,8 +145,8 @@ class Watcher {
|
|
145
145
|
if (this.verbose) {
|
146
146
|
const watched = this.fsWatcher.getWatched();
|
147
147
|
const totalWatched = Object.values(watched).flat().length;
|
148
|
-
|
149
|
-
|
148
|
+
_legacy2().logger.console(`${_chalk().default.bold('the following files are being watched:')}\n${JSON.stringify(watched, null, 2)}`);
|
149
|
+
_legacy2().logger.console(`\nTotal files being watched: ${_chalk().default.bold(totalWatched.toString())}`);
|
150
150
|
}
|
151
151
|
this.logger.clearStatusLine();
|
152
152
|
});
|
@@ -211,7 +211,7 @@ class Watcher {
|
|
211
211
|
*/
|
212
212
|
async handleChange(filePath) {
|
213
213
|
try {
|
214
|
-
if (filePath.endsWith(
|
214
|
+
if (filePath.endsWith(_legacy().BIT_MAP)) {
|
215
215
|
this.bitMapChangesInProgress = true;
|
216
216
|
const buildResults = await this.watchQueue.add(() => this.handleBitmapChanges());
|
217
217
|
this.bitMapChangesInProgress = false;
|
@@ -235,14 +235,14 @@ class Watcher {
|
|
235
235
|
files: [filePath]
|
236
236
|
};
|
237
237
|
}
|
238
|
-
if (filePath.endsWith(
|
238
|
+
if (filePath.endsWith(_legacy().WORKSPACE_JSONC)) {
|
239
239
|
await this.workspace.triggerOnWorkspaceConfigChange();
|
240
240
|
return {
|
241
241
|
results: [],
|
242
242
|
files: [filePath]
|
243
243
|
};
|
244
244
|
}
|
245
|
-
if (filePath.endsWith(
|
245
|
+
if (filePath.endsWith(_legacy4().UNMERGED_FILENAME)) {
|
246
246
|
await this.workspace.clearCache();
|
247
247
|
return {
|
248
248
|
results: [],
|
@@ -282,8 +282,8 @@ class Watcher {
|
|
282
282
|
};
|
283
283
|
} catch (err) {
|
284
284
|
const msg = `watcher found an error while handling ${filePath}`;
|
285
|
-
|
286
|
-
|
285
|
+
_legacy2().logger.error(msg, err);
|
286
|
+
_legacy2().logger.console(`${msg}, ${err.message}`);
|
287
287
|
this.logger.clearStatusLine();
|
288
288
|
return {
|
289
289
|
results: [],
|
@@ -305,7 +305,7 @@ class Watcher {
|
|
305
305
|
ignoreVersion: true
|
306
306
|
}));
|
307
307
|
if (!updatedComponentId) {
|
308
|
-
|
308
|
+
_legacy2().logger.debug(`triggerCompChanges, the component ${componentId.toString()} was probably removed from .bitmap`);
|
309
309
|
return [];
|
310
310
|
}
|
311
311
|
}
|
@@ -324,7 +324,7 @@ class Watcher {
|
|
324
324
|
// the compiler takes care of removedFiles differently, e.g. removes dists dir and old symlinks.
|
325
325
|
const removedFiles = (0, _lodash().compact)(await Promise.all(nonCompFiles.map(async filePath => (await _fsExtra().default.pathExists(filePath)) ? null : filePath)));
|
326
326
|
if (!compFiles.length && !removedFiles.length) {
|
327
|
-
|
327
|
+
_legacy2().logger.debug(`the following files are part of the component ${componentId.toStringWithoutVersion()} but configured to be ignored:\n${files.join('\n')}'`);
|
328
328
|
return [];
|
329
329
|
}
|
330
330
|
this.consumer.bitMap.updateComponentPaths(componentId, compFiles.map(f => this.consumer.getPathRelativeToConsumer(f)), removedFiles.map(f => this.consumer.getPathRelativeToConsumer(f)));
|
@@ -386,7 +386,7 @@ class Watcher {
|
|
386
386
|
return;
|
387
387
|
}
|
388
388
|
if (this.options.verbose) {
|
389
|
-
|
389
|
+
_legacy2().logger.console(`Watcher: .bitmap has changed with new versions which do not exist locally, importing the objects...`);
|
390
390
|
}
|
391
391
|
await this.workspace.scope.import(currentIds, {
|
392
392
|
useCache: true,
|
@@ -394,7 +394,7 @@ class Watcher {
|
|
394
394
|
});
|
395
395
|
}
|
396
396
|
async executeWatchOperationsOnRemove(componentId) {
|
397
|
-
|
397
|
+
_legacy2().logger.debug(`running OnComponentRemove hook for ${_chalk().default.bold(componentId.toString())}`);
|
398
398
|
this.pubsub.pub(_workspace().WorkspaceAspect.id, this.createOnComponentRemovedEvent(componentId.toString()));
|
399
399
|
await this.workspace.triggerOnComponentRemove(componentId);
|
400
400
|
}
|
@@ -406,10 +406,10 @@ class Watcher {
|
|
406
406
|
}
|
407
407
|
const idStr = componentId.toString();
|
408
408
|
if (isChange) {
|
409
|
-
|
409
|
+
_legacy2().logger.debug(`running OnComponentChange hook for ${_chalk().default.bold(idStr)}`);
|
410
410
|
this.pubsub.pub(_workspace().WorkspaceAspect.id, this.createOnComponentChangeEvent(idStr, 'OnComponentChange'));
|
411
411
|
} else {
|
412
|
-
|
412
|
+
_legacy2().logger.debug(`running OnComponentAdd hook for ${_chalk().default.bold(idStr)}`);
|
413
413
|
this.pubsub.pub(_workspace().WorkspaceAspect.id, this.createOnComponentAddEvent(idStr, 'OnComponentAdd'));
|
414
414
|
}
|
415
415
|
const buildResults = isChange ? await this.workspace.triggerOnComponentChange(componentId, files, removedFiles, this.options) : await this.workspace.triggerOnComponentAdd(componentId, this.options);
|
@@ -427,7 +427,7 @@ class Watcher {
|
|
427
427
|
isComponentWatchedExternally(componentId) {
|
428
428
|
const watcherData = this.multipleWatchers.find(m => m.componentIds.find(id => id.isEqual(componentId)));
|
429
429
|
if (watcherData) {
|
430
|
-
|
430
|
+
_legacy2().logger.debug(`${componentId.toString()} is watched by ${watcherData.compilerId.toString()}`);
|
431
431
|
return true;
|
432
432
|
}
|
433
433
|
return false;
|
@@ -443,7 +443,7 @@ class Watcher {
|
|
443
443
|
return this.rootDirs[rootDir];
|
444
444
|
}
|
445
445
|
getRelativePathLinux(filePath) {
|
446
|
-
return (0,
|
446
|
+
return (0, _legacy3().pathNormalizeToLinux)(this.consumer.getPathRelativeToConsumer(filePath));
|
447
447
|
}
|
448
448
|
findRootDirByFilePathRecursively(filePath) {
|
449
449
|
if (this.rootDirs[filePath]) return filePath;
|
@@ -452,11 +452,11 @@ class Watcher {
|
|
452
452
|
return this.findRootDirByFilePathRecursively(parentDir);
|
453
453
|
}
|
454
454
|
async createWatcher() {
|
455
|
-
const usePollingConf = await this.watcherMain.globalConfig.get(
|
455
|
+
const usePollingConf = await this.watcherMain.globalConfig.get(_legacy().CFG_WATCH_USE_POLLING);
|
456
456
|
const usePolling = usePollingConf === 'true';
|
457
|
-
const workspacePathLinux = (0,
|
457
|
+
const workspacePathLinux = (0, _legacy3().pathNormalizeToLinux)(this.workspace.path);
|
458
458
|
const ignoreLocalScope = pathToCheck => {
|
459
|
-
if (pathToCheck.startsWith(this.ipcEventsDir) || pathToCheck.endsWith(
|
459
|
+
if (pathToCheck.startsWith(this.ipcEventsDir) || pathToCheck.endsWith(_legacy4().UNMERGED_FILENAME)) return false;
|
460
460
|
return pathToCheck.startsWith(`${workspacePathLinux}/.git/`) || pathToCheck.startsWith(`${workspacePathLinux}/.bit/`);
|
461
461
|
};
|
462
462
|
this.fsWatcher = _chokidar().default.watch(this.workspace.path, {
|
@@ -469,7 +469,7 @@ class Watcher {
|
|
469
469
|
persistent: true
|
470
470
|
});
|
471
471
|
if (this.verbose) {
|
472
|
-
|
472
|
+
_legacy2().logger.console(`${_chalk().default.bold('chokidar.options:\n')} ${JSON.stringify(this.fsWatcher.options, undefined, 2)}`);
|
473
473
|
}
|
474
474
|
}
|
475
475
|
async setRootDirs() {
|
package/dist/watcher.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_lodash","_constants","_logger","_legacy","_pMapSeries","_chalk","_unmergedComponents","_chokidar","_workspace","_watchQueue","_excluded","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","i","_objectWithoutPropertiesLoose","s","includes","propertyIsEnumerable","call","n","hasOwnProperty","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","DEBOUNCE_WAIT_MS","Watcher","constructor","workspace","pubsub","watcherMain","options","WatchQueue","ipcEventsDir","ipcEvents","eventsDir","verbose","logger","consumer","watch","_this$options","msgs","watchOpts","setRootDirs","componentIds","values","rootDirs","triggerOnPreWatch","createWatcher","watcher","fsWatcher","onStart","scope","watchScopeInternalFiles","Promise","resolve","reject","onAll","on","onReady","watched","getWatched","totalWatched","flat","console","chalk","bold","JSON","stringify","toString","clearStatusLine","event","filePath","startTime","Date","getTime","files","results","debounced","irrelevant","failureMsg","handleChange","duration","onChange","err","onError","endsWith","BIT_MAP","bitMapChangesInProgress","buildResults","watchQueue","add","handleBitmapChanges","onIdle","dirname","eventName","basename","warn","triggerGotEvent","WORKSPACE_JSONC","triggerOnWorkspaceConfigChange","UNMERGED_FILENAME","clearCache","componentId","getComponentIdByPath","compIdStr","changedFilesPerComponent","sleep","triggerCompChanges","undefined","join","msg","error","message","ms","setTimeout","updatedComponentId","hasId","ids","listIds","find","id","isEqual","ignoreVersion","debug","clearComponentCache","component","get","componentMap","state","_consumer","Error","compFilesRelativeToWorkspace","getFilesRelativeToConsumer","compFiles","nonCompFiles","partition","relativeFile","getRelativePathLinux","Boolean","p","removedFiles","compact","all","map","fs","pathExists","toStringWithoutVersion","bitMap","updateComponentPaths","f","getPathRelativeToConsumer","executeWatchOperationsOnComponent","trigger","triggerOnComponentChange","previewsRootDirs","previewsIds","getAllBitIds","_reloadConsumer","importObjectsIfNeeded","triggerOnBitmapChange","newDirs","difference","removedDirs","addResults","mapSeries","dir","executeWatchOperationsOnRemove","import","currentIds","hasVersionChanges","prevId","searchWithoutVersion","version","existsInScope","isComponentInScope","useCache","lane","getCurrentLaneObject","pub","WorkspaceAspect","createOnComponentRemovedEvent","triggerOnComponentRemove","isChange","isComponentWatchedExternally","idStr","createOnComponentChangeEvent","createOnComponentAddEvent","triggerOnComponentAdd","OnComponentRemovedEvent","now","hook","OnComponentChangeEvent","OnComponentAddEvent","watcherData","multipleWatchers","m","compilerId","rootDir","findRootDirByFilePathRecursively","pathNormalizeToLinux","parentDir","usePollingConf","globalConfig","CFG_WATCH_USE_POLLING","usePolling","workspacePathLinux","path","ignoreLocalScope","pathToCheck","startsWith","chokidar","ignoreInitial","ignored","persistent","componentsFromBitMap","getAllComponents","getRootDir","exports"],"sources":["watcher.ts"],"sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport fs from 'fs-extra';\nimport { dirname, basename } from 'path';\nimport { compact, difference, partition } from 'lodash';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { BIT_MAP, CFG_WATCH_USE_POLLING, WORKSPACE_JSONC } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { pathNormalizeToLinux, PathOsBasedAbsolute } from '@teambit/legacy.utils';\nimport mapSeries from 'p-map-series';\nimport chalk from 'chalk';\nimport { ChildProcess } from 'child_process';\nimport { UNMERGED_FILENAME } from '@teambit/legacy/dist/scope/lanes/unmerged-components';\nimport chokidar, { FSWatcher } from 'chokidar';\nimport { ComponentMap } from '@teambit/legacy.bit-map';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport {\n WorkspaceAspect,\n Workspace,\n OnComponentEventResult,\n OnComponentChangeEvent,\n OnComponentAddEvent,\n OnComponentRemovedEvent,\n} from '@teambit/workspace';\nimport { CheckTypes } from './check-types';\nimport { WatcherMain } from './watcher.main.runtime';\nimport { WatchQueue } from './watch-queue';\nimport { Logger } from '@teambit/logger';\n\nexport type WatcherProcessData = { watchProcess: ChildProcess; compilerId: ComponentID; componentIds: ComponentID[] };\n\nexport type EventMessages = {\n onAll: Function;\n onStart: Function;\n onReady: Function;\n onChange: OnFileEventFunc;\n onAdd: OnFileEventFunc;\n onUnlink: OnFileEventFunc;\n onError: Function;\n};\n\nexport type OnFileEventFunc = (\n filePaths: string[],\n buildResults: OnComponentEventResult[],\n verbose: boolean,\n duration: number,\n failureMsg?: string\n) => void;\n\nexport type WatchOptions = {\n msgs?: EventMessages;\n initiator?: CompilationInitiator;\n verbose?: boolean; // print watch events to the console. (also ts-server events if spawnTSServer is true)\n spawnTSServer?: boolean; // needed for check types and extract API/docs.\n checkTypes?: CheckTypes; // if enabled, the spawnTSServer becomes true.\n preCompile?: boolean; // whether compile all components before start watching\n compile?: boolean; // whether compile modified/added components during watch process\n import?: boolean; // whether import objects when .bitmap got version changes\n generateTypes?: boolean; // whether generate d.ts files for typescript files during watch process (hurts performance)\n trigger?: ComponentID; // trigger onComponentChange for the specified component-id. helpful when this comp must be a bundle, and needs to be recompile on any dep change.\n};\n\nexport type RootDirs = { [dir: PathLinux]: ComponentID };\n\nconst DEBOUNCE_WAIT_MS = 100;\ntype PathLinux = string; // ts fails when importing it from @teambit/legacy/dist/utils/path.\n\nexport class Watcher {\n private fsWatcher: FSWatcher;\n private changedFilesPerComponent: { [componentId: string]: string[] } = {};\n private watchQueue = new WatchQueue();\n private bitMapChangesInProgress = false;\n private ipcEventsDir: string;\n private rootDirs: RootDirs = {};\n private verbose = false;\n private multipleWatchers: WatcherProcessData[] = [];\n private logger: Logger;\n constructor(\n private workspace: Workspace,\n private pubsub: PubsubMain,\n private watcherMain: WatcherMain,\n private options: WatchOptions\n ) {\n this.ipcEventsDir = this.watcherMain.ipcEvents.eventsDir;\n this.verbose = this.options.verbose || false;\n this.logger = this.watcherMain.logger;\n }\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n async watch() {\n const { msgs, ...watchOpts } = this.options;\n await this.setRootDirs();\n const componentIds = Object.values(this.rootDirs);\n await this.watcherMain.triggerOnPreWatch(componentIds, watchOpts);\n await this.createWatcher();\n const watcher = this.fsWatcher;\n msgs?.onStart(this.workspace);\n\n await this.workspace.scope.watchScopeInternalFiles();\n\n return new Promise((resolve, reject) => {\n if (this.verbose) {\n // @ts-ignore\n if (msgs?.onAll) watcher.on('all', msgs?.onAll);\n }\n watcher.on('ready', () => {\n msgs?.onReady(this.workspace, this.rootDirs, this.verbose);\n if (this.verbose) {\n const watched = this.fsWatcher.getWatched();\n const totalWatched = Object.values(watched).flat().length;\n logger.console(\n `${chalk.bold('the following files are being watched:')}\\n${JSON.stringify(watched, null, 2)}`\n );\n logger.console(`\\nTotal files being watched: ${chalk.bold(totalWatched.toString())}`);\n }\n\n this.logger.clearStatusLine();\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('all', async (event, filePath) => {\n if (event !== 'change' && event !== 'add' && event !== 'unlink') return;\n const startTime = new Date().getTime();\n const { files, results, debounced, irrelevant, failureMsg } = await this.handleChange(filePath);\n if (debounced || irrelevant) {\n return;\n }\n const duration = new Date().getTime() - startTime;\n msgs?.onChange(files, results, this.verbose, duration, failureMsg);\n });\n watcher.on('error', (err) => {\n msgs?.onError(err);\n reject(err);\n });\n });\n }\n\n /**\n * *** DEBOUNCING ***\n * some actions trigger multiple files changes at (almost) the same time. e.g. \"git pull\".\n * this causes some performance and instability issues. a debouncing mechanism was implemented to help with this.\n * the way how it works is that the first file of the same component starts the execution with a delay (e.g. 200ms).\n * if, in the meanwhile, another file of the same component was changed, it won't start a new execution, instead,\n * it'll only add the file to `this.changedFilesPerComponent` prop.\n * once the execution starts, it'll delete this component-id from the `this.changedFilesPerComponent` array,\n * indicating the next file-change to start a new execution.\n *\n * implementation wise, `lodash.debounce` doesn't help here, because:\n * A) it doesn't return the results, unless \"leading\" option is true. here, it must be false, otherwise, it'll start\n * the execution immediately.\n * B) it debounces the method regardless the param passes to it. so it'll disregard the component-id and will delay\n * other components undesirably.\n *\n * *** QUEUE ***\n * the debouncing helps to not execute the same component multiple times concurrently. however, multiple components\n * and .bitmap changes execution can still be processed concurrently.\n * the following example explains why this is an issue.\n * compA is changed in the .bitmap file from version 0.0.1 to 0.0.2. its files were changed as well.\n * all these changes get pulled at the same time by \"git pull\", as a result, the execution of compA and the .bitmap\n * happen at the same time.\n * during the execution of compA, the component id is parsed as compA@0.0.1, later, it asks for the Workspace for this\n * id. while the workspace is looking for this id, the .bitmap execution reloaded the consumer and changed all versions.\n * after this change, the workspace doesn't have this id anymore, which will trigger an error.\n * to ensure this won't happen, we keep a flag to indicate whether the .bitmap execution is running, and if so, all\n * other executions are paused until the queue is empty (this is done by awaiting for queue.onIdle).\n * once the queue is empty, we know the .bitmap process was done and the workspace has all new ids.\n * in the example above, at this stage, the id will be resolved to compA@0.0.2.\n * one more thing, the queue is configured to have concurrency of 1. to make sure two components are not processed at\n * the same time. (the same way is done when loading all components from the filesystem/scope).\n * this way we can also ensure that if compA was started before the .bitmap execution, it will complete before the\n * .bitmap execution starts.\n */\n private async handleChange(filePath: string): Promise<{\n results: OnComponentEventResult[];\n files: string[];\n failureMsg?: string;\n debounced?: boolean;\n irrelevant?: boolean; // file/dir is not part of any component\n }> {\n try {\n if (filePath.endsWith(BIT_MAP)) {\n this.bitMapChangesInProgress = true;\n const buildResults = await this.watchQueue.add(() => this.handleBitmapChanges());\n this.bitMapChangesInProgress = false;\n this.logger.clearStatusLine();\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' && eventName !== 'onPostObjectsPersist') {\n this.watcherMain.logger.warn(`eventName ${eventName} is not recognized, please handle it`);\n }\n await this.watcherMain.ipcEvents.triggerGotEvent(eventName as any);\n return { results: [], files: [filePath] };\n }\n if (filePath.endsWith(WORKSPACE_JSONC)) {\n await this.workspace.triggerOnWorkspaceConfigChange();\n return { results: [], files: [filePath] };\n }\n if (filePath.endsWith(UNMERGED_FILENAME)) {\n await this.workspace.clearCache();\n return { results: [], files: [filePath] };\n }\n const componentId = this.getComponentIdByPath(filePath);\n if (!componentId) {\n this.logger.clearStatusLine();\n return { results: [], files: [], irrelevant: true };\n }\n const compIdStr = componentId.toString();\n if (this.changedFilesPerComponent[compIdStr]) {\n this.changedFilesPerComponent[compIdStr].push(filePath);\n this.logger.clearStatusLine();\n return { results: [], files: [], debounced: true };\n }\n this.changedFilesPerComponent[compIdStr] = [filePath];\n await this.sleep(DEBOUNCE_WAIT_MS);\n const files = this.changedFilesPerComponent[compIdStr];\n delete this.changedFilesPerComponent[compIdStr];\n\n const buildResults = await this.watchQueue.add(() => this.triggerCompChanges(componentId, files));\n const failureMsg = buildResults.length\n ? undefined\n : `files ${files.join(', ')} are inside the component ${compIdStr} but configured to be ignored`;\n this.logger.clearStatusLine();\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 this.logger.clearStatusLine();\n return { results: [], files: [filePath], failureMsg: err.message };\n }\n }\n\n private async sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n private async triggerCompChanges(\n componentId: ComponentID,\n files: PathOsBasedAbsolute[]\n ): Promise<OnComponentEventResult[]> {\n let updatedComponentId: ComponentID | undefined = componentId;\n if (!this.workspace.hasId(componentId)) {\n // bitmap has changed meanwhile, which triggered `handleBitmapChanges`, which re-loaded consumer and updated versions\n // so the original componentId might not be in the workspace now, and we need to find the updated one\n const ids = this.workspace.listIds();\n updatedComponentId = ids.find((id) => id.isEqual(componentId, { ignoreVersion: true }));\n if (!updatedComponentId) {\n logger.debug(`triggerCompChanges, the component ${componentId.toString()} was probably removed from .bitmap`);\n return [];\n }\n }\n this.workspace.clearComponentCache(updatedComponentId);\n const component = await this.workspace.get(updatedComponentId);\n const componentMap: ComponentMap = component.state._consumer.componentMap;\n if (!componentMap) {\n throw new Error(\n `unable to find componentMap for ${updatedComponentId.toString()}, make sure this component is in .bitmap`\n );\n }\n const compFilesRelativeToWorkspace = componentMap.getFilesRelativeToConsumer();\n const [compFiles, nonCompFiles] = partition(files, (filePath) => {\n const relativeFile = this.getRelativePathLinux(filePath);\n return Boolean(compFilesRelativeToWorkspace.find((p) => p === relativeFile));\n });\n // nonCompFiles are either, files that were removed from the filesystem or existing files that are ignored.\n // the compiler takes care of removedFiles differently, e.g. removes dists dir and old symlinks.\n const removedFiles = compact(\n await Promise.all(nonCompFiles.map(async (filePath) => ((await fs.pathExists(filePath)) ? null : filePath)))\n );\n\n if (!compFiles.length && !removedFiles.length) {\n logger.debug(\n `the following files are part of the component ${componentId.toStringWithoutVersion()} but configured to be ignored:\\n${files.join(\n '\\n'\n )}'`\n );\n return [];\n }\n this.consumer.bitMap.updateComponentPaths(\n componentId,\n compFiles.map((f) => this.consumer.getPathRelativeToConsumer(f)),\n removedFiles.map((f) => this.consumer.getPathRelativeToConsumer(f))\n );\n const buildResults = await this.executeWatchOperationsOnComponent(\n updatedComponentId,\n compFiles,\n removedFiles,\n true\n );\n if (this.options.trigger && !updatedComponentId.isEqual(this.options.trigger)) {\n await this.workspace.triggerOnComponentChange(this.options.trigger, [], [], this.options);\n }\n\n return buildResults;\n }\n\n /**\n * if .bitmap changed, it's possible that a new component has been added. trigger onComponentAdd.\n */\n private async handleBitmapChanges(): Promise<OnComponentEventResult[]> {\n const previewsRootDirs = { ...this.rootDirs };\n const previewsIds = this.consumer.bitMap.getAllBitIds();\n await this.workspace._reloadConsumer();\n await this.setRootDirs();\n await this.importObjectsIfNeeded(previewsIds);\n await this.workspace.triggerOnBitmapChange();\n const newDirs: string[] = difference(Object.keys(this.rootDirs), Object.keys(previewsRootDirs));\n const removedDirs: string[] = difference(Object.keys(previewsRootDirs), Object.keys(this.rootDirs));\n const results: OnComponentEventResult[] = [];\n if (newDirs.length) {\n const addResults = await mapSeries(newDirs, async (dir) =>\n this.executeWatchOperationsOnComponent(this.rootDirs[dir], [], [], false)\n );\n results.push(...addResults.flat());\n }\n if (removedDirs.length) {\n await mapSeries(removedDirs, (dir) => this.executeWatchOperationsOnRemove(previewsRootDirs[dir]));\n }\n\n return results;\n }\n\n /**\n * needed when using git.\n * it resolves the following issue - a user is running `git pull` which updates the components and the .bitmap file.\n * because the objects locally are not updated, the .bitmap has new versions that don't exist in the local scope.\n * as soon as the watcher gets an event about a file change, it loads the component which throws\n * ComponentsPendingImport error.\n * to resolve this, we import the new objects as soon as the .bitmap file changes.\n * for performance reasons, we import only when: 1) the .bitmap file has version changes and 2) this new version is\n * not already in the scope.\n */\n private async importObjectsIfNeeded(previewsIds: ComponentIdList) {\n if (!this.options.import) {\n return;\n }\n const currentIds = this.consumer.bitMap.getAllBitIds();\n const hasVersionChanges = currentIds.find((id) => {\n const prevId = previewsIds.searchWithoutVersion(id);\n return prevId && prevId.version !== id.version;\n });\n if (!hasVersionChanges) {\n return;\n }\n const existsInScope = await this.workspace.scope.isComponentInScope(hasVersionChanges);\n if (existsInScope) {\n // the .bitmap change was probably a result of tag/snap/merge, no need to import.\n return;\n }\n if (this.options.verbose) {\n logger.console(\n `Watcher: .bitmap has changed with new versions which do not exist locally, importing the objects...`\n );\n }\n await this.workspace.scope.import(currentIds, {\n useCache: true,\n lane: await this.workspace.getCurrentLaneObject(),\n });\n }\n\n private async executeWatchOperationsOnRemove(componentId: ComponentID) {\n logger.debug(`running OnComponentRemove hook for ${chalk.bold(componentId.toString())}`);\n this.pubsub.pub(WorkspaceAspect.id, this.createOnComponentRemovedEvent(componentId.toString()));\n await this.workspace.triggerOnComponentRemove(componentId);\n }\n\n private async executeWatchOperationsOnComponent(\n componentId: ComponentID,\n files: PathOsBasedAbsolute[],\n removedFiles: PathOsBasedAbsolute[] = [],\n isChange = true\n ): Promise<OnComponentEventResult[]> {\n if (this.isComponentWatchedExternally(componentId)) {\n // update capsule, once done, it automatically triggers the external watcher\n await this.workspace.get(componentId);\n return [];\n }\n const idStr = componentId.toString();\n\n if (isChange) {\n logger.debug(`running OnComponentChange hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.createOnComponentChangeEvent(idStr, 'OnComponentChange'));\n } else {\n logger.debug(`running OnComponentAdd hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.createOnComponentAddEvent(idStr, 'OnComponentAdd'));\n }\n\n const buildResults = isChange\n ? await this.workspace.triggerOnComponentChange(componentId, files, removedFiles, this.options)\n : await this.workspace.triggerOnComponentAdd(componentId, this.options);\n\n return buildResults;\n }\n\n private createOnComponentRemovedEvent(idStr) {\n return new OnComponentRemovedEvent(Date.now(), idStr);\n }\n\n private createOnComponentChangeEvent(idStr, hook) {\n return new OnComponentChangeEvent(Date.now(), idStr, hook);\n }\n\n private createOnComponentAddEvent(idStr, hook) {\n return new OnComponentAddEvent(Date.now(), idStr, hook);\n }\n\n private isComponentWatchedExternally(componentId: ComponentID) {\n const watcherData = this.multipleWatchers.find((m) => m.componentIds.find((id) => id.isEqual(componentId)));\n if (watcherData) {\n logger.debug(`${componentId.toString()} is watched by ${watcherData.compilerId.toString()}`);\n return true;\n }\n return false;\n }\n\n private getComponentIdByPath(filePath: string): ComponentID | null {\n const relativeFile = this.getRelativePathLinux(filePath);\n const rootDir = this.findRootDirByFilePathRecursively(relativeFile);\n if (!rootDir) {\n // the file is not part of any component. If it was a new component, or a new file of\n // existing component, then, handleBitmapChanges() should deal with it.\n return null;\n }\n return this.rootDirs[rootDir];\n }\n\n private getRelativePathLinux(filePath: string) {\n return pathNormalizeToLinux(this.consumer.getPathRelativeToConsumer(filePath));\n }\n\n private findRootDirByFilePathRecursively(filePath: string): string | null {\n if (this.rootDirs[filePath]) return filePath;\n const parentDir = dirname(filePath);\n if (parentDir === filePath) return null;\n return this.findRootDirByFilePathRecursively(parentDir);\n }\n\n private async createWatcher() {\n const usePollingConf = await this.watcherMain.globalConfig.get(CFG_WATCH_USE_POLLING);\n const usePolling = usePollingConf === 'true';\n const workspacePathLinux = pathNormalizeToLinux(this.workspace.path);\n const ignoreLocalScope = (pathToCheck: string) => {\n if (pathToCheck.startsWith(this.ipcEventsDir) || pathToCheck.endsWith(UNMERGED_FILENAME)) return false;\n return (\n pathToCheck.startsWith(`${workspacePathLinux}/.git/`) || pathToCheck.startsWith(`${workspacePathLinux}/.bit/`)\n );\n };\n this.fsWatcher = chokidar.watch(this.workspace.path, {\n ignoreInitial: true,\n // `chokidar` matchers have Bash-parity, so Windows-style backslashes are not supported as separators.\n // (windows-style backslashes are converted to forward slashes)\n ignored: ['**/node_modules/**', '**/package.json', ignoreLocalScope],\n usePolling,\n // useFsEvents,\n persistent: true,\n });\n if (this.verbose) {\n logger.console(`${chalk.bold('chokidar.options:\\n')} ${JSON.stringify(this.fsWatcher.options, undefined, 2)}`);\n }\n }\n\n private async setRootDirs() {\n this.rootDirs = {};\n const componentsFromBitMap = this.consumer.bitMap.getAllComponents();\n componentsFromBitMap.map((componentMap) => {\n const componentId = componentMap.id;\n const rootDir = componentMap.getRootDir();\n this.rootDirs[rootDir] = componentId;\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_lodash","_legacy","_legacy2","_legacy3","_pMapSeries","_chalk","_legacy4","_chokidar","_workspace","_watchQueue","_excluded","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","i","_objectWithoutPropertiesLoose","s","includes","propertyIsEnumerable","call","n","hasOwnProperty","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","DEBOUNCE_WAIT_MS","Watcher","constructor","workspace","pubsub","watcherMain","options","WatchQueue","ipcEventsDir","ipcEvents","eventsDir","verbose","logger","consumer","watch","_this$options","msgs","watchOpts","setRootDirs","componentIds","values","rootDirs","triggerOnPreWatch","createWatcher","watcher","fsWatcher","onStart","scope","watchScopeInternalFiles","Promise","resolve","reject","onAll","on","onReady","watched","getWatched","totalWatched","flat","console","chalk","bold","JSON","stringify","toString","clearStatusLine","event","filePath","startTime","Date","getTime","files","results","debounced","irrelevant","failureMsg","handleChange","duration","onChange","err","onError","endsWith","BIT_MAP","bitMapChangesInProgress","buildResults","watchQueue","add","handleBitmapChanges","onIdle","dirname","eventName","basename","warn","triggerGotEvent","WORKSPACE_JSONC","triggerOnWorkspaceConfigChange","UNMERGED_FILENAME","clearCache","componentId","getComponentIdByPath","compIdStr","changedFilesPerComponent","sleep","triggerCompChanges","undefined","join","msg","error","message","ms","setTimeout","updatedComponentId","hasId","ids","listIds","find","id","isEqual","ignoreVersion","debug","clearComponentCache","component","get","componentMap","state","_consumer","Error","compFilesRelativeToWorkspace","getFilesRelativeToConsumer","compFiles","nonCompFiles","partition","relativeFile","getRelativePathLinux","Boolean","p","removedFiles","compact","all","map","fs","pathExists","toStringWithoutVersion","bitMap","updateComponentPaths","f","getPathRelativeToConsumer","executeWatchOperationsOnComponent","trigger","triggerOnComponentChange","previewsRootDirs","previewsIds","getAllBitIds","_reloadConsumer","importObjectsIfNeeded","triggerOnBitmapChange","newDirs","difference","removedDirs","addResults","mapSeries","dir","executeWatchOperationsOnRemove","import","currentIds","hasVersionChanges","prevId","searchWithoutVersion","version","existsInScope","isComponentInScope","useCache","lane","getCurrentLaneObject","pub","WorkspaceAspect","createOnComponentRemovedEvent","triggerOnComponentRemove","isChange","isComponentWatchedExternally","idStr","createOnComponentChangeEvent","createOnComponentAddEvent","triggerOnComponentAdd","OnComponentRemovedEvent","now","hook","OnComponentChangeEvent","OnComponentAddEvent","watcherData","multipleWatchers","m","compilerId","rootDir","findRootDirByFilePathRecursively","pathNormalizeToLinux","parentDir","usePollingConf","globalConfig","CFG_WATCH_USE_POLLING","usePolling","workspacePathLinux","path","ignoreLocalScope","pathToCheck","startsWith","chokidar","ignoreInitial","ignored","persistent","componentsFromBitMap","getAllComponents","getRootDir","exports"],"sources":["watcher.ts"],"sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport fs from 'fs-extra';\nimport { dirname, basename } from 'path';\nimport { compact, difference, partition } from 'lodash';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { BIT_MAP, CFG_WATCH_USE_POLLING, WORKSPACE_JSONC } from '@teambit/legacy.constants';\nimport { Consumer } from '@teambit/legacy.consumer';\nimport { logger } from '@teambit/legacy.logger';\nimport { pathNormalizeToLinux, PathOsBasedAbsolute } from '@teambit/legacy.utils';\nimport mapSeries from 'p-map-series';\nimport chalk from 'chalk';\nimport { ChildProcess } from 'child_process';\nimport { UNMERGED_FILENAME } from '@teambit/legacy.scope';\nimport chokidar, { FSWatcher } from 'chokidar';\nimport { ComponentMap } from '@teambit/legacy.bit-map';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport {\n WorkspaceAspect,\n Workspace,\n OnComponentEventResult,\n OnComponentChangeEvent,\n OnComponentAddEvent,\n OnComponentRemovedEvent,\n} from '@teambit/workspace';\nimport { CheckTypes } from './check-types';\nimport { WatcherMain } from './watcher.main.runtime';\nimport { WatchQueue } from './watch-queue';\nimport { Logger } from '@teambit/logger';\n\nexport type WatcherProcessData = { watchProcess: ChildProcess; compilerId: ComponentID; componentIds: ComponentID[] };\n\nexport type EventMessages = {\n onAll: Function;\n onStart: Function;\n onReady: Function;\n onChange: OnFileEventFunc;\n onAdd: OnFileEventFunc;\n onUnlink: OnFileEventFunc;\n onError: Function;\n};\n\nexport type OnFileEventFunc = (\n filePaths: string[],\n buildResults: OnComponentEventResult[],\n verbose: boolean,\n duration: number,\n failureMsg?: string\n) => void;\n\nexport type WatchOptions = {\n msgs?: EventMessages;\n initiator?: CompilationInitiator;\n verbose?: boolean; // print watch events to the console. (also ts-server events if spawnTSServer is true)\n spawnTSServer?: boolean; // needed for check types and extract API/docs.\n checkTypes?: CheckTypes; // if enabled, the spawnTSServer becomes true.\n preCompile?: boolean; // whether compile all components before start watching\n compile?: boolean; // whether compile modified/added components during watch process\n import?: boolean; // whether import objects when .bitmap got version changes\n generateTypes?: boolean; // whether generate d.ts files for typescript files during watch process (hurts performance)\n trigger?: ComponentID; // trigger onComponentChange for the specified component-id. helpful when this comp must be a bundle, and needs to be recompile on any dep change.\n};\n\nexport type RootDirs = { [dir: PathLinux]: ComponentID };\n\nconst DEBOUNCE_WAIT_MS = 100;\ntype PathLinux = string; // ts fails when importing it from @teambit/legacy/dist/utils/path.\n\nexport class Watcher {\n private fsWatcher: FSWatcher;\n private changedFilesPerComponent: { [componentId: string]: string[] } = {};\n private watchQueue = new WatchQueue();\n private bitMapChangesInProgress = false;\n private ipcEventsDir: string;\n private rootDirs: RootDirs = {};\n private verbose = false;\n private multipleWatchers: WatcherProcessData[] = [];\n private logger: Logger;\n constructor(\n private workspace: Workspace,\n private pubsub: PubsubMain,\n private watcherMain: WatcherMain,\n private options: WatchOptions\n ) {\n this.ipcEventsDir = this.watcherMain.ipcEvents.eventsDir;\n this.verbose = this.options.verbose || false;\n this.logger = this.watcherMain.logger;\n }\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n async watch() {\n const { msgs, ...watchOpts } = this.options;\n await this.setRootDirs();\n const componentIds = Object.values(this.rootDirs);\n await this.watcherMain.triggerOnPreWatch(componentIds, watchOpts);\n await this.createWatcher();\n const watcher = this.fsWatcher;\n msgs?.onStart(this.workspace);\n\n await this.workspace.scope.watchScopeInternalFiles();\n\n return new Promise((resolve, reject) => {\n if (this.verbose) {\n // @ts-ignore\n if (msgs?.onAll) watcher.on('all', msgs?.onAll);\n }\n watcher.on('ready', () => {\n msgs?.onReady(this.workspace, this.rootDirs, this.verbose);\n if (this.verbose) {\n const watched = this.fsWatcher.getWatched();\n const totalWatched = Object.values(watched).flat().length;\n logger.console(\n `${chalk.bold('the following files are being watched:')}\\n${JSON.stringify(watched, null, 2)}`\n );\n logger.console(`\\nTotal files being watched: ${chalk.bold(totalWatched.toString())}`);\n }\n\n this.logger.clearStatusLine();\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('all', async (event, filePath) => {\n if (event !== 'change' && event !== 'add' && event !== 'unlink') return;\n const startTime = new Date().getTime();\n const { files, results, debounced, irrelevant, failureMsg } = await this.handleChange(filePath);\n if (debounced || irrelevant) {\n return;\n }\n const duration = new Date().getTime() - startTime;\n msgs?.onChange(files, results, this.verbose, duration, failureMsg);\n });\n watcher.on('error', (err) => {\n msgs?.onError(err);\n reject(err);\n });\n });\n }\n\n /**\n * *** DEBOUNCING ***\n * some actions trigger multiple files changes at (almost) the same time. e.g. \"git pull\".\n * this causes some performance and instability issues. a debouncing mechanism was implemented to help with this.\n * the way how it works is that the first file of the same component starts the execution with a delay (e.g. 200ms).\n * if, in the meanwhile, another file of the same component was changed, it won't start a new execution, instead,\n * it'll only add the file to `this.changedFilesPerComponent` prop.\n * once the execution starts, it'll delete this component-id from the `this.changedFilesPerComponent` array,\n * indicating the next file-change to start a new execution.\n *\n * implementation wise, `lodash.debounce` doesn't help here, because:\n * A) it doesn't return the results, unless \"leading\" option is true. here, it must be false, otherwise, it'll start\n * the execution immediately.\n * B) it debounces the method regardless the param passes to it. so it'll disregard the component-id and will delay\n * other components undesirably.\n *\n * *** QUEUE ***\n * the debouncing helps to not execute the same component multiple times concurrently. however, multiple components\n * and .bitmap changes execution can still be processed concurrently.\n * the following example explains why this is an issue.\n * compA is changed in the .bitmap file from version 0.0.1 to 0.0.2. its files were changed as well.\n * all these changes get pulled at the same time by \"git pull\", as a result, the execution of compA and the .bitmap\n * happen at the same time.\n * during the execution of compA, the component id is parsed as compA@0.0.1, later, it asks for the Workspace for this\n * id. while the workspace is looking for this id, the .bitmap execution reloaded the consumer and changed all versions.\n * after this change, the workspace doesn't have this id anymore, which will trigger an error.\n * to ensure this won't happen, we keep a flag to indicate whether the .bitmap execution is running, and if so, all\n * other executions are paused until the queue is empty (this is done by awaiting for queue.onIdle).\n * once the queue is empty, we know the .bitmap process was done and the workspace has all new ids.\n * in the example above, at this stage, the id will be resolved to compA@0.0.2.\n * one more thing, the queue is configured to have concurrency of 1. to make sure two components are not processed at\n * the same time. (the same way is done when loading all components from the filesystem/scope).\n * this way we can also ensure that if compA was started before the .bitmap execution, it will complete before the\n * .bitmap execution starts.\n */\n private async handleChange(filePath: string): Promise<{\n results: OnComponentEventResult[];\n files: string[];\n failureMsg?: string;\n debounced?: boolean;\n irrelevant?: boolean; // file/dir is not part of any component\n }> {\n try {\n if (filePath.endsWith(BIT_MAP)) {\n this.bitMapChangesInProgress = true;\n const buildResults = await this.watchQueue.add(() => this.handleBitmapChanges());\n this.bitMapChangesInProgress = false;\n this.logger.clearStatusLine();\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' && eventName !== 'onPostObjectsPersist') {\n this.watcherMain.logger.warn(`eventName ${eventName} is not recognized, please handle it`);\n }\n await this.watcherMain.ipcEvents.triggerGotEvent(eventName as any);\n return { results: [], files: [filePath] };\n }\n if (filePath.endsWith(WORKSPACE_JSONC)) {\n await this.workspace.triggerOnWorkspaceConfigChange();\n return { results: [], files: [filePath] };\n }\n if (filePath.endsWith(UNMERGED_FILENAME)) {\n await this.workspace.clearCache();\n return { results: [], files: [filePath] };\n }\n const componentId = this.getComponentIdByPath(filePath);\n if (!componentId) {\n this.logger.clearStatusLine();\n return { results: [], files: [], irrelevant: true };\n }\n const compIdStr = componentId.toString();\n if (this.changedFilesPerComponent[compIdStr]) {\n this.changedFilesPerComponent[compIdStr].push(filePath);\n this.logger.clearStatusLine();\n return { results: [], files: [], debounced: true };\n }\n this.changedFilesPerComponent[compIdStr] = [filePath];\n await this.sleep(DEBOUNCE_WAIT_MS);\n const files = this.changedFilesPerComponent[compIdStr];\n delete this.changedFilesPerComponent[compIdStr];\n\n const buildResults = await this.watchQueue.add(() => this.triggerCompChanges(componentId, files));\n const failureMsg = buildResults.length\n ? undefined\n : `files ${files.join(', ')} are inside the component ${compIdStr} but configured to be ignored`;\n this.logger.clearStatusLine();\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 this.logger.clearStatusLine();\n return { results: [], files: [filePath], failureMsg: err.message };\n }\n }\n\n private async sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n private async triggerCompChanges(\n componentId: ComponentID,\n files: PathOsBasedAbsolute[]\n ): Promise<OnComponentEventResult[]> {\n let updatedComponentId: ComponentID | undefined = componentId;\n if (!this.workspace.hasId(componentId)) {\n // bitmap has changed meanwhile, which triggered `handleBitmapChanges`, which re-loaded consumer and updated versions\n // so the original componentId might not be in the workspace now, and we need to find the updated one\n const ids = this.workspace.listIds();\n updatedComponentId = ids.find((id) => id.isEqual(componentId, { ignoreVersion: true }));\n if (!updatedComponentId) {\n logger.debug(`triggerCompChanges, the component ${componentId.toString()} was probably removed from .bitmap`);\n return [];\n }\n }\n this.workspace.clearComponentCache(updatedComponentId);\n const component = await this.workspace.get(updatedComponentId);\n const componentMap: ComponentMap = component.state._consumer.componentMap;\n if (!componentMap) {\n throw new Error(\n `unable to find componentMap for ${updatedComponentId.toString()}, make sure this component is in .bitmap`\n );\n }\n const compFilesRelativeToWorkspace = componentMap.getFilesRelativeToConsumer();\n const [compFiles, nonCompFiles] = partition(files, (filePath) => {\n const relativeFile = this.getRelativePathLinux(filePath);\n return Boolean(compFilesRelativeToWorkspace.find((p) => p === relativeFile));\n });\n // nonCompFiles are either, files that were removed from the filesystem or existing files that are ignored.\n // the compiler takes care of removedFiles differently, e.g. removes dists dir and old symlinks.\n const removedFiles = compact(\n await Promise.all(nonCompFiles.map(async (filePath) => ((await fs.pathExists(filePath)) ? null : filePath)))\n );\n\n if (!compFiles.length && !removedFiles.length) {\n logger.debug(\n `the following files are part of the component ${componentId.toStringWithoutVersion()} but configured to be ignored:\\n${files.join(\n '\\n'\n )}'`\n );\n return [];\n }\n this.consumer.bitMap.updateComponentPaths(\n componentId,\n compFiles.map((f) => this.consumer.getPathRelativeToConsumer(f)),\n removedFiles.map((f) => this.consumer.getPathRelativeToConsumer(f))\n );\n const buildResults = await this.executeWatchOperationsOnComponent(\n updatedComponentId,\n compFiles,\n removedFiles,\n true\n );\n if (this.options.trigger && !updatedComponentId.isEqual(this.options.trigger)) {\n await this.workspace.triggerOnComponentChange(this.options.trigger, [], [], this.options);\n }\n\n return buildResults;\n }\n\n /**\n * if .bitmap changed, it's possible that a new component has been added. trigger onComponentAdd.\n */\n private async handleBitmapChanges(): Promise<OnComponentEventResult[]> {\n const previewsRootDirs = { ...this.rootDirs };\n const previewsIds = this.consumer.bitMap.getAllBitIds();\n await this.workspace._reloadConsumer();\n await this.setRootDirs();\n await this.importObjectsIfNeeded(previewsIds);\n await this.workspace.triggerOnBitmapChange();\n const newDirs: string[] = difference(Object.keys(this.rootDirs), Object.keys(previewsRootDirs));\n const removedDirs: string[] = difference(Object.keys(previewsRootDirs), Object.keys(this.rootDirs));\n const results: OnComponentEventResult[] = [];\n if (newDirs.length) {\n const addResults = await mapSeries(newDirs, async (dir) =>\n this.executeWatchOperationsOnComponent(this.rootDirs[dir], [], [], false)\n );\n results.push(...addResults.flat());\n }\n if (removedDirs.length) {\n await mapSeries(removedDirs, (dir) => this.executeWatchOperationsOnRemove(previewsRootDirs[dir]));\n }\n\n return results;\n }\n\n /**\n * needed when using git.\n * it resolves the following issue - a user is running `git pull` which updates the components and the .bitmap file.\n * because the objects locally are not updated, the .bitmap has new versions that don't exist in the local scope.\n * as soon as the watcher gets an event about a file change, it loads the component which throws\n * ComponentsPendingImport error.\n * to resolve this, we import the new objects as soon as the .bitmap file changes.\n * for performance reasons, we import only when: 1) the .bitmap file has version changes and 2) this new version is\n * not already in the scope.\n */\n private async importObjectsIfNeeded(previewsIds: ComponentIdList) {\n if (!this.options.import) {\n return;\n }\n const currentIds = this.consumer.bitMap.getAllBitIds();\n const hasVersionChanges = currentIds.find((id) => {\n const prevId = previewsIds.searchWithoutVersion(id);\n return prevId && prevId.version !== id.version;\n });\n if (!hasVersionChanges) {\n return;\n }\n const existsInScope = await this.workspace.scope.isComponentInScope(hasVersionChanges);\n if (existsInScope) {\n // the .bitmap change was probably a result of tag/snap/merge, no need to import.\n return;\n }\n if (this.options.verbose) {\n logger.console(\n `Watcher: .bitmap has changed with new versions which do not exist locally, importing the objects...`\n );\n }\n await this.workspace.scope.import(currentIds, {\n useCache: true,\n lane: await this.workspace.getCurrentLaneObject(),\n });\n }\n\n private async executeWatchOperationsOnRemove(componentId: ComponentID) {\n logger.debug(`running OnComponentRemove hook for ${chalk.bold(componentId.toString())}`);\n this.pubsub.pub(WorkspaceAspect.id, this.createOnComponentRemovedEvent(componentId.toString()));\n await this.workspace.triggerOnComponentRemove(componentId);\n }\n\n private async executeWatchOperationsOnComponent(\n componentId: ComponentID,\n files: PathOsBasedAbsolute[],\n removedFiles: PathOsBasedAbsolute[] = [],\n isChange = true\n ): Promise<OnComponentEventResult[]> {\n if (this.isComponentWatchedExternally(componentId)) {\n // update capsule, once done, it automatically triggers the external watcher\n await this.workspace.get(componentId);\n return [];\n }\n const idStr = componentId.toString();\n\n if (isChange) {\n logger.debug(`running OnComponentChange hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.createOnComponentChangeEvent(idStr, 'OnComponentChange'));\n } else {\n logger.debug(`running OnComponentAdd hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.createOnComponentAddEvent(idStr, 'OnComponentAdd'));\n }\n\n const buildResults = isChange\n ? await this.workspace.triggerOnComponentChange(componentId, files, removedFiles, this.options)\n : await this.workspace.triggerOnComponentAdd(componentId, this.options);\n\n return buildResults;\n }\n\n private createOnComponentRemovedEvent(idStr) {\n return new OnComponentRemovedEvent(Date.now(), idStr);\n }\n\n private createOnComponentChangeEvent(idStr, hook) {\n return new OnComponentChangeEvent(Date.now(), idStr, hook);\n }\n\n private createOnComponentAddEvent(idStr, hook) {\n return new OnComponentAddEvent(Date.now(), idStr, hook);\n }\n\n private isComponentWatchedExternally(componentId: ComponentID) {\n const watcherData = this.multipleWatchers.find((m) => m.componentIds.find((id) => id.isEqual(componentId)));\n if (watcherData) {\n logger.debug(`${componentId.toString()} is watched by ${watcherData.compilerId.toString()}`);\n return true;\n }\n return false;\n }\n\n private getComponentIdByPath(filePath: string): ComponentID | null {\n const relativeFile = this.getRelativePathLinux(filePath);\n const rootDir = this.findRootDirByFilePathRecursively(relativeFile);\n if (!rootDir) {\n // the file is not part of any component. If it was a new component, or a new file of\n // existing component, then, handleBitmapChanges() should deal with it.\n return null;\n }\n return this.rootDirs[rootDir];\n }\n\n private getRelativePathLinux(filePath: string) {\n return pathNormalizeToLinux(this.consumer.getPathRelativeToConsumer(filePath));\n }\n\n private findRootDirByFilePathRecursively(filePath: string): string | null {\n if (this.rootDirs[filePath]) return filePath;\n const parentDir = dirname(filePath);\n if (parentDir === filePath) return null;\n return this.findRootDirByFilePathRecursively(parentDir);\n }\n\n private async createWatcher() {\n const usePollingConf = await this.watcherMain.globalConfig.get(CFG_WATCH_USE_POLLING);\n const usePolling = usePollingConf === 'true';\n const workspacePathLinux = pathNormalizeToLinux(this.workspace.path);\n const ignoreLocalScope = (pathToCheck: string) => {\n if (pathToCheck.startsWith(this.ipcEventsDir) || pathToCheck.endsWith(UNMERGED_FILENAME)) return false;\n return (\n pathToCheck.startsWith(`${workspacePathLinux}/.git/`) || pathToCheck.startsWith(`${workspacePathLinux}/.bit/`)\n );\n };\n this.fsWatcher = chokidar.watch(this.workspace.path, {\n ignoreInitial: true,\n // `chokidar` matchers have Bash-parity, so Windows-style backslashes are not supported as separators.\n // (windows-style backslashes are converted to forward slashes)\n ignored: ['**/node_modules/**', '**/package.json', ignoreLocalScope],\n usePolling,\n // useFsEvents,\n persistent: true,\n });\n if (this.verbose) {\n logger.console(`${chalk.bold('chokidar.options:\\n')} ${JSON.stringify(this.fsWatcher.options, undefined, 2)}`);\n }\n }\n\n private async setRootDirs() {\n this.rootDirs = {};\n const componentsFromBitMap = this.consumer.bitMap.getAllComponents();\n componentsFromBitMap.map((componentMap) => {\n const componentId = componentMap.id;\n const rootDir = componentMap.getRootDir();\n this.rootDirs[rootDir] = componentId;\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teambit/watcher",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.488",
|
4
4
|
"homepage": "https://bit.cloud/teambit/workspace/watcher",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"componentId": {
|
7
7
|
"scope": "teambit.workspace",
|
8
8
|
"name": "watcher",
|
9
|
-
"version": "1.0.
|
9
|
+
"version": "1.0.488"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"chalk": "2.4.2",
|
@@ -18,16 +18,20 @@
|
|
18
18
|
"fs-extra": "10.0.0",
|
19
19
|
"@teambit/component-id": "1.2.2",
|
20
20
|
"@teambit/harmony": "0.4.6",
|
21
|
-
"@teambit/compiler": "1.0.
|
22
|
-
"@teambit/logger": "0.0.
|
23
|
-
"@teambit/workspace": "1.0.
|
24
|
-
"@teambit/cli": "0.0.
|
25
|
-
"@teambit/pubsub": "1.0.
|
26
|
-
"@teambit/global-config": "0.0.
|
27
|
-
"@teambit/ipc-events": "1.0.
|
28
|
-
"@teambit/scope": "1.0.
|
29
|
-
"@teambit/legacy.bit-map": "0.0.
|
30
|
-
"@teambit/legacy.
|
21
|
+
"@teambit/compiler": "1.0.488",
|
22
|
+
"@teambit/logger": "0.0.1158",
|
23
|
+
"@teambit/workspace": "1.0.488",
|
24
|
+
"@teambit/cli": "0.0.1065",
|
25
|
+
"@teambit/pubsub": "1.0.488",
|
26
|
+
"@teambit/global-config": "0.0.1068",
|
27
|
+
"@teambit/ipc-events": "1.0.488",
|
28
|
+
"@teambit/scope": "1.0.488",
|
29
|
+
"@teambit/legacy.bit-map": "0.0.58",
|
30
|
+
"@teambit/legacy.constants": "0.0.1",
|
31
|
+
"@teambit/legacy.consumer": "0.0.1",
|
32
|
+
"@teambit/legacy.logger": "0.0.1",
|
33
|
+
"@teambit/legacy.scope": "0.0.1",
|
34
|
+
"@teambit/legacy.utils": "0.0.8"
|
31
35
|
},
|
32
36
|
"devDependencies": {
|
33
37
|
"@types/lodash": "4.14.165",
|
File without changes
|