@teambit/ipc-events 1.0.282 → 1.0.283
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.harmony/ipc-events@1.0.
|
|
3
|
+
<testsuite name="teambit.harmony/ipc-events@1.0.283" tests="0" failures="0" errors="0" skipped="0"/>
|
|
4
4
|
</testsuites>
|
package/artifacts/schema.json
CHANGED
|
@@ -60,8 +60,8 @@ function _ipcEvents() {
|
|
|
60
60
|
};
|
|
61
61
|
return data;
|
|
62
62
|
}
|
|
63
|
-
function _interopRequireDefault(
|
|
64
|
-
function _defineProperty(
|
|
63
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
64
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
65
65
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
66
66
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
67
67
|
const EVENTS_DIR = 'events';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_scope","data","require","_harmony","_logger","_pMapSeries","_interopRequireDefault","_cli","_path","_fsExtra","_ipcEvents","
|
|
1
|
+
{"version":3,"names":["_scope","data","require","_harmony","_logger","_pMapSeries","_interopRequireDefault","_cli","_path","_fsExtra","_ipcEvents","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","EVENTS_DIR","IpcEventsMain","constructor","scope","gotEventSlot","logger","registerGotEventSlot","fn","register","triggerGotEvent","eventName","info","pMapSeries","values","publishIpcEvent","filename","path","join","eventsDir","content","JSON","stringify","undefined","fs","outputFile","provider","loggerMain","_","createLogger","IpcEventsAspect","id","ipcEventsMain","registerOnPostObjectsPersist","legacyScope","objects","clearObjectsFromCache","exports","Slot","withType","ScopeAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["ipc-events.main.runtime.ts"],"sourcesContent":["import { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport pMapSeries from 'p-map-series';\nimport { MainRuntime } from '@teambit/cli';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport { IpcEventsAspect } from './ipc-events.aspect';\n\ntype EventName = 'onPostInstall' | 'onPostObjectsPersist';\n\ntype GotEvent = (eventName: EventName) => Promise<void>;\ntype GotEventSlot = SlotRegistry<GotEvent>;\n\nconst EVENTS_DIR = 'events';\n\n/**\n * imagine you have multiple processes running in the background, such as `bit watch`, `bit start`, `bit server`.\n * the user is running `bit install` from the cli, how do you let these processes know that the installation is complete?\n * `bit start` for instance could use ths info to clear the \"component issues\" of the components that were missing packages.\n *\n * this class provides a mechanism to achieve this by writing the event into the filesystem (`.bit/events/event-name`),\n * while each one of the processes has a watcher in the background watch this file. once they got the data from the watcher,\n * they can act upon it.\n *\n * in the previous example, when the user is running `bit install`, the install aspect runs `this.publishIpcEvent` to\n * write `.bit/events/onPostInstall` to the filesystem. then, the watcher of `bit start` process got a notification\n * that this file has changed/added and it runs `triggerGotEvent` to run all aspects registered to its gotEventSlot.\n * the installer in turn is registered to this slot and once its function is triggered, it check whether the eventName\n * is onPostInstall and then triggers its own OnPostInstall slot.\n */\nexport class IpcEventsMain {\n constructor(private scope: ScopeMain, private gotEventSlot: GotEventSlot, private logger: Logger) {}\n\n registerGotEventSlot(fn: GotEvent) {\n this.gotEventSlot.register(fn);\n }\n\n /**\n * this gets called from the watcher only.\n * as soon as the watcher finds out that a new event has been written to the filesystem, it triggers this function\n */\n async triggerGotEvent(eventName: EventName) {\n this.logger.info(`triggering got event ${eventName}`);\n await pMapSeries(this.gotEventSlot.values(), (fn) => fn(eventName));\n }\n\n /**\n * write event data into the filesystem, so then other processes, such as \"bit start\", \"bit watch\", could use the\n * watcher to get the event data.\n */\n async publishIpcEvent(eventName: EventName, data?: Record<string, any>) {\n const filename = path.join(this.eventsDir, eventName);\n const content = data ? JSON.stringify(data, undefined, 2) : '';\n await fs.outputFile(filename, content);\n }\n\n get eventsDir() {\n return path.join(this.scope.path, EVENTS_DIR);\n }\n\n static slots = [Slot.withType<GotEventSlot>()];\n static dependencies = [ScopeAspect, LoggerAspect];\n static runtime = MainRuntime;\n\n static async provider([scope, loggerMain]: [ScopeMain, LoggerMain], _, [gotEventSlot]: [GotEventSlot]) {\n const logger = loggerMain.createLogger(IpcEventsAspect.id);\n const ipcEventsMain = new IpcEventsMain(scope, gotEventSlot, logger);\n\n if (scope) {\n // in case commands like \"bit export\" are running from the cli, long-running processes should clear their cache.\n // otherwise, objects like \"ModelComponent\" are out-of-date and could have the wrong head and the \"state\"/\"local\" data.\n scope.registerOnPostObjectsPersist(async () => {\n await ipcEventsMain.publishIpcEvent('onPostObjectsPersist');\n });\n ipcEventsMain.registerGotEventSlot(async (eventName) => {\n if (eventName === 'onPostObjectsPersist') {\n scope.legacyScope.objects.clearObjectsFromCache();\n }\n });\n }\n\n return ipcEventsMain;\n }\n}\n\nIpcEventsAspect.addRuntime(IpcEventsMain);\n\nexport default IpcEventsMain;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/ipc-events",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.283",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/harmony/ipc-events",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.harmony",
|
|
8
8
|
"name": "ipc-events",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.283"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"fs-extra": "10.0.0",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"@teambit/harmony": "0.4.6",
|
|
15
15
|
"@teambit/cli": "0.0.865",
|
|
16
16
|
"@teambit/logger": "0.0.958",
|
|
17
|
-
"@teambit/scope": "1.0.
|
|
17
|
+
"@teambit/scope": "1.0.283"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"@types/fs-extra": "9.0.7",
|
|
File without changes
|