@filen/sync 0.1.3 → 0.1.5

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/lib/sync.js CHANGED
@@ -14,6 +14,7 @@ const ipc_1 = require("./ipc");
14
14
  const worker_threads_1 = require("worker_threads");
15
15
  const ignorer_1 = __importDefault(require("../ignorer"));
16
16
  const utils_1 = require("../utils");
17
+ const lock_1 = __importDefault(require("./lock"));
17
18
  /**
18
19
  * Sync
19
20
  *
@@ -44,6 +45,9 @@ class Sync {
44
45
  this.localFileHashes = {};
45
46
  this.abortControllers = {};
46
47
  this.pauseSignals = {};
48
+ this.removed = false;
49
+ this.saveStateOnNoChanges = true;
50
+ this.taskErrors = [];
47
51
  this.worker = worker;
48
52
  this.syncPair = syncPair;
49
53
  this.mode = syncPair.mode;
@@ -58,6 +62,7 @@ class Sync {
58
62
  this.state = new state_1.default(this);
59
63
  this.localIgnorer = new ignorer_1.default(this, "localIgnorer");
60
64
  this.remoteIgnorer = new ignorer_1.default(this, "remoteIgnorer");
65
+ this.lock = new lock_1.default(this);
61
66
  this.setupMainThreadListeners();
62
67
  }
63
68
  /**
@@ -117,13 +122,36 @@ class Sync {
117
122
  }
118
123
  });
119
124
  }
125
+ async smokeTest() {
126
+ if (this.removed) {
127
+ throw new Error("Aborted");
128
+ }
129
+ const localSmokeTest = await this.localFileSystem.isPathWritable(this.syncPair.localPath);
130
+ if (!localSmokeTest) {
131
+ (0, ipc_1.postMessageToMain)({
132
+ type: "cycleLocalSmokeTestFailed",
133
+ syncPair: this.syncPair
134
+ });
135
+ await new Promise(resolve => setTimeout(resolve, constants_1.SYNC_INTERVAL));
136
+ return await this.smokeTest();
137
+ }
138
+ const remoteSmokeTest = await this.remoteFileSystem.remoteDirPathExisting();
139
+ if (!remoteSmokeTest) {
140
+ (0, ipc_1.postMessageToMain)({
141
+ type: "cycleRemoteSmokeTestFailed",
142
+ syncPair: this.syncPair
143
+ });
144
+ await new Promise(resolve => setTimeout(resolve, constants_1.SYNC_INTERVAL));
145
+ return await this.smokeTest();
146
+ }
147
+ }
120
148
  async initialize() {
121
149
  if (this.isInitialized) {
122
150
  return;
123
151
  }
124
152
  this.isInitialized = true;
125
153
  try {
126
- //local/remote smoke test
154
+ await this.smokeTest();
127
155
  await Promise.all([
128
156
  this.localFileSystem.startDirectoryWatcher(),
129
157
  this.state.initialize(),
@@ -138,26 +166,61 @@ class Sync {
138
166
  throw e;
139
167
  }
140
168
  }
169
+ async cleanup() {
170
+ await this.localFileSystem.stopDirectoryWatcher();
171
+ this.isInitialized = false;
172
+ (0, ipc_1.postMessageToMain)({
173
+ type: "cycleExited",
174
+ syncPair: this.syncPair
175
+ });
176
+ }
141
177
  async run() {
142
- if (this.paused) {
178
+ if (this.removed) {
143
179
  (0, ipc_1.postMessageToMain)({
144
- type: "cyclePaused",
145
- syncPair: this.syncPair
146
- });
147
- setTimeout(() => {
148
- this.run();
149
- }, constants_1.SYNC_INTERVAL);
150
- (0, ipc_1.postMessageToMain)({
151
- type: "cycleRestarting",
180
+ type: "syncPairRemoved",
152
181
  syncPair: this.syncPair
153
182
  });
154
183
  return;
155
184
  }
156
- (0, ipc_1.postMessageToMain)({
157
- type: "cycleStarted",
158
- syncPair: this.syncPair
159
- });
160
185
  try {
186
+ if (this.taskErrors.length > 0) {
187
+ if (this.worker.runOnce) {
188
+ await this.cleanup();
189
+ return;
190
+ }
191
+ (0, ipc_1.postMessageToMain)({
192
+ type: "taskErrors",
193
+ syncPair: this.syncPair,
194
+ data: {
195
+ errors: this.taskErrors.map(e => (Object.assign(Object.assign({}, e), { error: (0, utils_1.serializeError)(e.error) })))
196
+ }
197
+ });
198
+ (0, ipc_1.postMessageToMain)({
199
+ type: "cycleRestarting",
200
+ syncPair: this.syncPair
201
+ });
202
+ return;
203
+ }
204
+ if (this.paused) {
205
+ if (this.worker.runOnce) {
206
+ await this.cleanup();
207
+ return;
208
+ }
209
+ (0, ipc_1.postMessageToMain)({
210
+ type: "cyclePaused",
211
+ syncPair: this.syncPair
212
+ });
213
+ (0, ipc_1.postMessageToMain)({
214
+ type: "cycleRestarting",
215
+ syncPair: this.syncPair
216
+ });
217
+ return;
218
+ }
219
+ (0, ipc_1.postMessageToMain)({
220
+ type: "cycleStarted",
221
+ syncPair: this.syncPair
222
+ });
223
+ await this.smokeTest();
161
224
  (0, ipc_1.postMessageToMain)({
162
225
  type: "cycleWaitingForLocalDirectoryChangesStarted",
163
226
  syncPair: this.syncPair
@@ -176,13 +239,6 @@ class Sync {
176
239
  this.localFileSystem.getDirectoryTree(),
177
240
  this.remoteFileSystem.getDirectoryTree()
178
241
  ]);
179
- if (!currentLocalTree.changed && !currentRemoteTree.changed) {
180
- (0, ipc_1.postMessageToMain)({
181
- type: "cycleNoChanges",
182
- syncPair: this.syncPair
183
- });
184
- return;
185
- }
186
242
  (0, ipc_1.postMessageToMain)({
187
243
  type: "cycleGettingTreesDone",
188
244
  syncPair: this.syncPair
@@ -201,6 +257,31 @@ class Sync {
201
257
  ignored: currentLocalTree.ignored
202
258
  }
203
259
  });
260
+ if (!currentLocalTree.changed && !currentRemoteTree.changed) {
261
+ if (this.taskErrors.length === 0) {
262
+ (0, ipc_1.postMessageToMain)({
263
+ type: "cycleSavingStateStarted",
264
+ syncPair: this.syncPair
265
+ });
266
+ this.previousLocalTree = currentLocalTree.result;
267
+ this.previousRemoteTree = currentRemoteTree.result;
268
+ // We only save the state once if there are no changes.
269
+ // This helps reducing the cpu and disk footprint when there are continuously no changes.
270
+ if (this.saveStateOnNoChanges) {
271
+ this.saveStateOnNoChanges = false;
272
+ await this.state.save();
273
+ }
274
+ (0, ipc_1.postMessageToMain)({
275
+ type: "cycleSavingStateDone",
276
+ syncPair: this.syncPair
277
+ });
278
+ }
279
+ (0, ipc_1.postMessageToMain)({
280
+ type: "cycleNoChanges",
281
+ syncPair: this.syncPair
282
+ });
283
+ return;
284
+ }
204
285
  (0, ipc_1.postMessageToMain)({
205
286
  type: "remoteTreeIgnored",
206
287
  syncPair: this.syncPair,
@@ -223,59 +304,55 @@ class Sync {
223
304
  type: "cycleProcessingDeltasDone",
224
305
  syncPair: this.syncPair
225
306
  });
226
- (0, ipc_1.postMessageToMain)({
227
- type: "deltas",
228
- syncPair: this.syncPair,
229
- data: {
230
- deltas
231
- }
232
- });
233
307
  this.worker.logger.log("info", { deltas, localErrors: currentLocalTree.errors });
234
308
  (0, ipc_1.postMessageToMain)({
235
309
  type: "cycleProcessingTasksStarted",
236
310
  syncPair: this.syncPair
237
311
  });
238
312
  const { doneTasks, errors } = await this.tasks.process({ deltas });
313
+ this.taskErrors = errors;
239
314
  (0, ipc_1.postMessageToMain)({
240
315
  type: "cycleProcessingTasksDone",
241
316
  syncPair: this.syncPair
242
317
  });
243
318
  (0, ipc_1.postMessageToMain)({
244
- type: "doneTasks",
319
+ type: "taskErrors",
245
320
  syncPair: this.syncPair,
246
321
  data: {
247
- tasks: doneTasks.map(task => (Object.assign({ path: task.path, type: task.type }, (task.type === "uploadFile" ? { item: task.item } : {})))),
248
322
  errors: errors.map(e => (Object.assign(Object.assign({}, e), { error: (0, utils_1.serializeError)(e.error) })))
249
323
  }
250
324
  });
251
- if (doneTasks.length > 0) {
325
+ if (this.taskErrors.length === 0) {
326
+ if (doneTasks.length > 0) {
327
+ (0, ipc_1.postMessageToMain)({
328
+ type: "cycleApplyingStateStarted",
329
+ syncPair: this.syncPair
330
+ });
331
+ const applied = this.state.applyDoneTasksToState({
332
+ doneTasks,
333
+ currentLocalTree: currentLocalTree.result,
334
+ currentRemoteTree: currentRemoteTree.result
335
+ });
336
+ currentLocalTree.result = applied.currentLocalTree;
337
+ currentRemoteTree.result = applied.currentRemoteTree;
338
+ (0, ipc_1.postMessageToMain)({
339
+ type: "cycleApplyingStateDone",
340
+ syncPair: this.syncPair
341
+ });
342
+ }
252
343
  (0, ipc_1.postMessageToMain)({
253
- type: "cycleApplyingStateStarted",
344
+ type: "cycleSavingStateStarted",
254
345
  syncPair: this.syncPair
255
346
  });
256
- const applied = this.state.applyDoneTasksToState({
257
- doneTasks,
258
- currentLocalTree: currentLocalTree.result,
259
- currentRemoteTree: currentRemoteTree.result
260
- });
261
- currentLocalTree.result = applied.currentLocalTree;
262
- currentRemoteTree.result = applied.currentRemoteTree;
347
+ this.previousLocalTree = currentLocalTree.result;
348
+ this.previousRemoteTree = currentRemoteTree.result;
349
+ this.saveStateOnNoChanges = true;
350
+ await this.state.save();
263
351
  (0, ipc_1.postMessageToMain)({
264
- type: "cycleApplyingStateDone",
352
+ type: "cycleSavingStateDone",
265
353
  syncPair: this.syncPair
266
354
  });
267
355
  }
268
- (0, ipc_1.postMessageToMain)({
269
- type: "cycleSavingStateStarted",
270
- syncPair: this.syncPair
271
- });
272
- this.previousLocalTree = currentLocalTree.result;
273
- this.previousRemoteTree = currentRemoteTree.result;
274
- await this.state.save();
275
- (0, ipc_1.postMessageToMain)({
276
- type: "cycleSavingStateDone",
277
- syncPair: this.syncPair
278
- });
279
356
  (0, ipc_1.postMessageToMain)({
280
357
  type: "cycleSuccess",
281
358
  syncPair: this.syncPair
@@ -294,17 +371,18 @@ class Sync {
294
371
  }
295
372
  }
296
373
  finally {
297
- (0, ipc_1.postMessageToMain)({
298
- type: "cycleFinished",
299
- syncPair: this.syncPair
300
- });
301
- setTimeout(() => {
302
- this.run();
303
- }, constants_1.SYNC_INTERVAL);
304
- (0, ipc_1.postMessageToMain)({
305
- type: "cycleRestarting",
306
- syncPair: this.syncPair
307
- });
374
+ if (this.worker.runOnce || this.removed) {
375
+ await this.cleanup();
376
+ }
377
+ else {
378
+ (0, ipc_1.postMessageToMain)({
379
+ type: "cycleRestarting",
380
+ syncPair: this.syncPair
381
+ });
382
+ setTimeout(() => {
383
+ this.run();
384
+ }, constants_1.SYNC_INTERVAL);
385
+ }
308
386
  }
309
387
  }
310
388
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import type Sync from "./sync";
3
3
  import { type Delta } from "./deltas";
4
- import { type CloudItem } from "@filen/sdk";
4
+ import { type RemoteItem } from "./filesystems/remote";
5
5
  import fs from "fs-extra";
6
6
  export type TaskError = {
7
7
  path: string;
@@ -12,13 +12,16 @@ export type DoneTask = {
12
12
  path: string;
13
13
  } & ({
14
14
  type: "uploadFile";
15
- item: CloudItem;
15
+ item: RemoteItem;
16
+ stats: fs.Stats;
16
17
  } | {
17
18
  type: "createRemoteDirectory";
18
- uuid: string;
19
+ item: RemoteItem;
20
+ stats: fs.Stats;
19
21
  } | {
20
22
  type: "createLocalDirectory";
21
23
  stats: fs.Stats;
24
+ item: RemoteItem;
22
25
  } | {
23
26
  type: "deleteLocalFile";
24
27
  } | {
@@ -30,6 +33,7 @@ export type DoneTask = {
30
33
  } | {
31
34
  type: "downloadFile";
32
35
  stats: fs.Stats;
36
+ item: RemoteItem;
33
37
  } | {
34
38
  type: "renameLocalFile";
35
39
  from: string;
@@ -59,7 +63,7 @@ export type DoneTask = {
59
63
  */
60
64
  export declare class Tasks {
61
65
  private readonly sync;
62
- private readonly mutex;
66
+ private readonly transfersSemaphore;
63
67
  /**
64
68
  * Creates an instance of Tasks.
65
69
  *
@@ -69,14 +73,12 @@ export declare class Tasks {
69
73
  */
70
74
  constructor(sync: Sync);
71
75
  /**
72
- * Process a task.
73
- * @date 3/2/2024 - 12:14:48 PM
76
+ * Process a delta task.
74
77
  *
75
78
  * @private
76
79
  * @async
77
- * @param {{delta: Delta}} param0
78
- * @param {Delta} param0.delta
79
- * @returns {Promise<DoneTask>}
80
+ * @param {Delta} delta
81
+ * @returns {Promise<DoneTask | null>}
80
82
  */
81
83
  private processTask;
82
84
  /**