@lvce-editor/file-system-worker 1.20.0 → 1.22.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.
@@ -899,7 +899,7 @@ const send = (transport, method, ...params) => {
899
899
  const message = create$4$1(method, params);
900
900
  transport.send(message);
901
901
  };
902
- const invoke$1 = (ipc, method, ...params) => {
902
+ const invoke$2 = (ipc, method, ...params) => {
903
903
  return invokeHelper(ipc, method, params, false);
904
904
  };
905
905
  const invokeAndTransfer$1 = (ipc, method, ...params) => {
@@ -938,7 +938,7 @@ const createRpc = ipc => {
938
938
  send(ipc, method, ...params);
939
939
  },
940
940
  invoke(method, ...params) {
941
- return invoke$1(ipc, method, ...params);
941
+ return invoke$2(ipc, method, ...params);
942
942
  },
943
943
  invokeAndTransfer(method, ...params) {
944
944
  return invokeAndTransfer$1(ipc, method, ...params);
@@ -1144,7 +1144,7 @@ const {
1144
1144
  const remove$1$1 = async uri => {
1145
1145
  return invoke$8('FileSystem.remove', uri);
1146
1146
  };
1147
- const readFile$2 = async uri => {
1147
+ const readFile$2$1 = async uri => {
1148
1148
  return invoke$8('FileSystem.readFile', uri);
1149
1149
  };
1150
1150
  const appendFile$1$1 = async (uri, text) => {
@@ -1205,7 +1205,7 @@ const FileSystemProcess = {
1205
1205
  invoke: invoke$8,
1206
1206
  mkdir: mkdir$1$1,
1207
1207
  readDirWithFileTypes: readDirWithFileTypes$1$1,
1208
- readFile: readFile$2,
1208
+ readFile: readFile$2$1,
1209
1209
  readJson: readJson$2,
1210
1210
  remove: remove$1$1,
1211
1211
  rename: rename$1$1,
@@ -1216,13 +1216,71 @@ const FileSystemProcess = {
1216
1216
  const {
1217
1217
  invokeAndTransfer: invokeAndTransfer$3,
1218
1218
  set: set$3} = create(RendererWorker$1);
1219
+ const sendMessagePortToExtensionHostWorker$1 = async (port, rpcId = 0) => {
1220
+ const command = 'HandleMessagePort.handleMessagePort2';
1221
+ await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, rpcId);
1222
+ };
1219
1223
  const RendererWorker = {
1220
1224
  __proto__: null,
1221
1225
  invokeAndTransfer: invokeAndTransfer$3,
1226
+ sendMessagePortToExtensionHostWorker: sendMessagePortToExtensionHostWorker$1,
1222
1227
  set: set$3};
1223
1228
 
1229
+ const getPortTuple = () => {
1230
+ const {
1231
+ port1,
1232
+ port2
1233
+ } = new MessageChannel();
1234
+ return {
1235
+ port1,
1236
+ port2
1237
+ };
1238
+ };
1239
+
1224
1240
  const {
1241
+ invokeAndTransfer,
1225
1242
  set: set$1,
1243
+ sendMessagePortToExtensionHostWorker
1244
+ } = RendererWorker;
1245
+
1246
+ const createExtensionHostRpc = async () => {
1247
+ try {
1248
+ const {
1249
+ port1,
1250
+ port2
1251
+ } = getPortTuple();
1252
+ await sendMessagePortToExtensionHostWorker(port2);
1253
+ const rpc = await PlainMessagePortRpcParent.create({
1254
+ commandMap: {},
1255
+ messagePort: port1
1256
+ });
1257
+ return rpc;
1258
+ } catch (error) {
1259
+ throw new VError(error, `Failed to create extension host rpc`);
1260
+ }
1261
+ };
1262
+
1263
+ let rpcPromise = undefined;
1264
+ const getOrCreate = () => {
1265
+ if (!rpcPromise) {
1266
+ rpcPromise = createExtensionHostRpc();
1267
+ }
1268
+ return rpcPromise;
1269
+ };
1270
+ const invoke$1 = async (method, ...params) => {
1271
+ const rpc = await getOrCreate();
1272
+ return rpc.invoke(method, ...params);
1273
+ };
1274
+
1275
+ const readFile$2 = async uri => {
1276
+ return invoke$1('FileSystemMemory.readFile', uri);
1277
+ };
1278
+ const writeFile$2 = async (uri, content) => {
1279
+ return invoke$1('FileSystemMemory.writeFile', uri, content);
1280
+ };
1281
+
1282
+ const {
1283
+ set,
1226
1284
  rename: rename$1,
1227
1285
  copy: copy$1,
1228
1286
  mkdir: mkdir$1,
@@ -1241,18 +1299,27 @@ const {
1241
1299
  } = FileSystemProcess;
1242
1300
 
1243
1301
  const Http = 'http:';
1302
+ const Memory = 'memfs:';
1244
1303
  const Https = 'https:';
1245
1304
 
1246
- const remove = async dirent => {
1247
- return remove$1(dirent);
1248
- };
1249
1305
  const isHttp = uri => {
1250
1306
  return uri.startsWith(Http) || uri.startsWith(Https);
1251
1307
  };
1308
+
1309
+ const isMemory = uri => {
1310
+ return uri.startsWith(Memory);
1311
+ };
1312
+
1313
+ const remove = async dirent => {
1314
+ return remove$1(dirent);
1315
+ };
1252
1316
  const readFile = async uri => {
1253
1317
  if (isHttp(uri)) {
1254
1318
  return readFile$3(uri);
1255
1319
  }
1320
+ if (isMemory(uri)) {
1321
+ return readFile$2(uri);
1322
+ }
1256
1323
  return readFile$1(uri);
1257
1324
  };
1258
1325
  const appendFile = async (uri, text) => {
@@ -1299,6 +1366,9 @@ const createFile = async uri => {
1299
1366
  return writeFile$1(uri, '');
1300
1367
  };
1301
1368
  const writeFile = async (uri, content) => {
1369
+ if (isMemory(uri)) {
1370
+ return writeFile$2(uri, content);
1371
+ }
1302
1372
  return writeFile$1(uri, content);
1303
1373
  };
1304
1374
  const mkdir = async uri => {
@@ -1332,7 +1402,7 @@ const watchFile = async (id, uri, rpcId) => {
1332
1402
  if (!rpc) {
1333
1403
  return;
1334
1404
  }
1335
- await rpc.invoke(commandId);
1405
+ await rpc.invoke(commandId, id);
1336
1406
  });
1337
1407
  // @ts-ignore
1338
1408
  await invoke('FileSystem.watchFile', id, uri);
@@ -1360,21 +1430,6 @@ const handleMessagePort = async (port, rpcId) => {
1360
1430
  }
1361
1431
  };
1362
1432
 
1363
- const getPortTuple = () => {
1364
- const {
1365
- port1,
1366
- port2
1367
- } = new MessageChannel();
1368
- return {
1369
- port1,
1370
- port2
1371
- };
1372
- };
1373
-
1374
- const {
1375
- invokeAndTransfer,
1376
- set} = RendererWorker;
1377
-
1378
1433
  const sendMessagePortToFileSystemProcess = async port => {
1379
1434
  const command = 'HandleMessagePortForFileSystemProcess.handleMessagePortForFileSystemProcess';
1380
1435
  await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToSharedProcess', port, command, RpcId.FileSystemWorker);
@@ -1436,7 +1491,7 @@ const initializeFileSytemProcess = async platform => {
1436
1491
  return;
1437
1492
  }
1438
1493
  const rpc = await createFileSystemProcessRpc(platform);
1439
- set$1(rpc);
1494
+ set(rpc);
1440
1495
  };
1441
1496
 
1442
1497
  const initialize = async platform => {
@@ -1472,7 +1527,7 @@ const listen = async () => {
1472
1527
  const rpc = await WebWorkerRpcClient.create({
1473
1528
  commandMap: commandMap
1474
1529
  });
1475
- set(rpc);
1530
+ set$1(rpc);
1476
1531
  };
1477
1532
 
1478
1533
  const main = async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/file-system-worker",
3
- "version": "1.20.0",
3
+ "version": "1.22.0",
4
4
  "description": "File System Worker",
5
5
  "keywords": [
6
6
  "Lvce Editor"