@lvce-editor/file-watcher-process 1.4.0 → 2.0.0
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.
- package/dist/index.js +56 -48
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,9 +1,62 @@
|
|
|
1
|
+
import { ElectronMessagePortRpcClient, ElectronUtilityProcessRpcClient, NodeWorkerRpcClient, NodeForkedProcessRpcClient } from '@lvce-editor/rpc';
|
|
1
2
|
import { get, set } from '@lvce-editor/rpc-registry';
|
|
2
3
|
import { VError } from '@lvce-editor/verror';
|
|
3
4
|
import * as fs from 'node:fs/promises';
|
|
4
5
|
import { watch } from 'chokidar';
|
|
5
6
|
import { pathToFileURL, fileURLToPath } from 'node:url';
|
|
6
|
-
|
|
7
|
+
|
|
8
|
+
const NodeWorker = 1;
|
|
9
|
+
const NodeForkedProcess = 2;
|
|
10
|
+
const ElectronUtilityProcess = 3;
|
|
11
|
+
const ElectronMessagePort = 4;
|
|
12
|
+
const Auto = () => {
|
|
13
|
+
const {
|
|
14
|
+
argv
|
|
15
|
+
} = process;
|
|
16
|
+
if (argv.includes('--ipc-type=node-worker')) {
|
|
17
|
+
return NodeWorker;
|
|
18
|
+
}
|
|
19
|
+
if (argv.includes('--ipc-type=node-forked-process')) {
|
|
20
|
+
return NodeForkedProcess;
|
|
21
|
+
}
|
|
22
|
+
if (argv.includes('--ipc-type=electron-utility-process')) {
|
|
23
|
+
return ElectronUtilityProcess;
|
|
24
|
+
}
|
|
25
|
+
throw new Error('[file-watcher-process] unknown ipc type');
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const getModule = method => {
|
|
29
|
+
switch (method) {
|
|
30
|
+
case NodeForkedProcess:
|
|
31
|
+
return NodeForkedProcessRpcClient.create;
|
|
32
|
+
case NodeWorker:
|
|
33
|
+
return NodeWorkerRpcClient.create;
|
|
34
|
+
case ElectronUtilityProcess:
|
|
35
|
+
return ElectronUtilityProcessRpcClient.create;
|
|
36
|
+
case ElectronMessagePort:
|
|
37
|
+
return ElectronMessagePortRpcClient.create;
|
|
38
|
+
default:
|
|
39
|
+
throw new Error('unexpected ipc type');
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const listen$1 = async ({
|
|
44
|
+
method,
|
|
45
|
+
...params
|
|
46
|
+
}) => {
|
|
47
|
+
const fn = getModule(method);
|
|
48
|
+
// @ts-ignore
|
|
49
|
+
const rpc = await fn(params);
|
|
50
|
+
// @ts-ignore
|
|
51
|
+
return rpc;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const handleElectronMessagePort = async messagePort => {
|
|
55
|
+
await listen$1({
|
|
56
|
+
method: ElectronMessagePort,
|
|
57
|
+
messagePort
|
|
58
|
+
});
|
|
59
|
+
};
|
|
7
60
|
|
|
8
61
|
const SharedProcess = 1;
|
|
9
62
|
|
|
@@ -95,64 +148,19 @@ const watchFolders = async ({
|
|
|
95
148
|
});
|
|
96
149
|
return watcher;
|
|
97
150
|
});
|
|
151
|
+
await Promise.all(watchers.map(waitForWatcherToBeReady));
|
|
98
152
|
for (const watcher of watchers) {
|
|
99
153
|
watcher.on('all', callback);
|
|
100
154
|
}
|
|
101
|
-
await Promise.all(watchers.map(waitForWatcherToBeReady));
|
|
102
155
|
};
|
|
103
156
|
|
|
104
157
|
const commandMap = {
|
|
158
|
+
'HandleElectronMessagePort.handleElectronMessagePort': handleElectronMessagePort,
|
|
105
159
|
'FileWatcher.watchFile': watchFile,
|
|
106
160
|
'FileWatcher.watchFolder': watchFolder,
|
|
107
161
|
'FileWatcher.watchFolders': watchFolders
|
|
108
162
|
};
|
|
109
163
|
|
|
110
|
-
const NodeWorker = 1;
|
|
111
|
-
const NodeForkedProcess = 2;
|
|
112
|
-
const ElectronUtilityProcess = 3;
|
|
113
|
-
const ElectronMessagePort = 4;
|
|
114
|
-
const Auto = () => {
|
|
115
|
-
const {
|
|
116
|
-
argv
|
|
117
|
-
} = process;
|
|
118
|
-
if (argv.includes('--ipc-type=node-worker')) {
|
|
119
|
-
return NodeWorker;
|
|
120
|
-
}
|
|
121
|
-
if (argv.includes('--ipc-type=node-forked-process')) {
|
|
122
|
-
return NodeForkedProcess;
|
|
123
|
-
}
|
|
124
|
-
if (argv.includes('--ipc-type=electron-utility-process')) {
|
|
125
|
-
return ElectronUtilityProcess;
|
|
126
|
-
}
|
|
127
|
-
throw new Error('[preview-process] unknown ipc type');
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
const getModule = method => {
|
|
131
|
-
switch (method) {
|
|
132
|
-
case NodeForkedProcess:
|
|
133
|
-
return NodeForkedProcessRpcClient;
|
|
134
|
-
case NodeWorker:
|
|
135
|
-
return NodeWorkerRpcClient;
|
|
136
|
-
case ElectronUtilityProcess:
|
|
137
|
-
return ElectronUtilityProcessRpcClient;
|
|
138
|
-
case ElectronMessagePort:
|
|
139
|
-
return ElectronMessagePortRpcClient;
|
|
140
|
-
default:
|
|
141
|
-
throw new Error('unexpected ipc type');
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
const listen$1 = async ({
|
|
146
|
-
method,
|
|
147
|
-
...params
|
|
148
|
-
}) => {
|
|
149
|
-
const module = getModule(method);
|
|
150
|
-
// @ts-ignore
|
|
151
|
-
const rpc = await module.create(params);
|
|
152
|
-
// @ts-ignore
|
|
153
|
-
return rpc;
|
|
154
|
-
};
|
|
155
|
-
|
|
156
164
|
const listen = async () => {
|
|
157
165
|
const rpc = await listen$1({
|
|
158
166
|
method: Auto(),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lvce-editor/file-watcher-process",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "File Watcher Process",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Lvce Editor",
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"file-watcher-process": "bin/fileWatcherProcess.js"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@lvce-editor/rpc": "^1.
|
|
22
|
-
"@lvce-editor/rpc-registry": "^1.
|
|
21
|
+
"@lvce-editor/rpc": "^2.1.0",
|
|
22
|
+
"@lvce-editor/rpc-registry": "^1.1.0",
|
|
23
23
|
"@lvce-editor/verror": "^1.6.0",
|
|
24
24
|
"chokidar": "^4.0.3"
|
|
25
25
|
},
|