coaction 1.0.1 → 1.1.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 +53 -22
- package/dist/index.mjs +53 -22
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -259,6 +259,7 @@ var createSelectorCreatorWithArray = (memoize = defaultMemoize) => {
|
|
|
259
259
|
var createSelectorWithArray = createSelectorCreatorWithArray();
|
|
260
260
|
|
|
261
261
|
// src/getRawState.ts
|
|
262
|
+
var clientExecuteSyncTimeoutMs = 1500;
|
|
262
263
|
var getRawState = (store, internal, initialState, options) => {
|
|
263
264
|
const rawState = {};
|
|
264
265
|
const handle = (_rawState, _initialState, sliceKey) => {
|
|
@@ -337,31 +338,61 @@ var getRawState = (store, internal, initialState, options) => {
|
|
|
337
338
|
};
|
|
338
339
|
}
|
|
339
340
|
const keys = sliceKey ? [sliceKey, key] : [key];
|
|
340
|
-
return store.transport.emit("execute", keys, args).then(([result, sequence]) => {
|
|
341
|
-
if (internal.sequence
|
|
342
|
-
if (
|
|
343
|
-
|
|
344
|
-
|
|
341
|
+
return store.transport.emit("execute", keys, args).then(async ([result, sequence]) => {
|
|
342
|
+
if (internal.sequence < sequence) {
|
|
343
|
+
if (process.env.NODE_ENV === "development") {
|
|
344
|
+
console.warn(
|
|
345
|
+
`The sequence of the action is not consistent.`,
|
|
346
|
+
sequence,
|
|
347
|
+
internal.sequence
|
|
348
|
+
);
|
|
345
349
|
}
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
sequence,
|
|
353
|
-
internal.sequence
|
|
354
|
-
);
|
|
355
|
-
}
|
|
356
|
-
return new Promise((resolve) => {
|
|
357
|
-
const unsubscribe = store.subscribe(() => {
|
|
358
|
-
if (internal.sequence >= sequence) {
|
|
350
|
+
await new Promise((resolve, reject) => {
|
|
351
|
+
let settled = false;
|
|
352
|
+
let unsubscribe = () => {
|
|
353
|
+
};
|
|
354
|
+
let timeoutId;
|
|
355
|
+
const cleanup = () => {
|
|
359
356
|
unsubscribe();
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
357
|
+
if (typeof timeoutId !== "undefined") {
|
|
358
|
+
clearTimeout(timeoutId);
|
|
359
|
+
}
|
|
360
|
+
};
|
|
361
|
+
const finishResolve = () => {
|
|
362
|
+
if (settled) return;
|
|
363
|
+
settled = true;
|
|
364
|
+
cleanup();
|
|
365
|
+
resolve();
|
|
366
|
+
};
|
|
367
|
+
const finishReject = (error) => {
|
|
368
|
+
if (settled) return;
|
|
369
|
+
settled = true;
|
|
370
|
+
cleanup();
|
|
371
|
+
reject(error);
|
|
372
|
+
};
|
|
373
|
+
unsubscribe = store.subscribe(() => {
|
|
374
|
+
if (internal.sequence >= sequence) {
|
|
375
|
+
finishResolve();
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
timeoutId = setTimeout(() => {
|
|
379
|
+
void store.transport.emit("fullSync").then((latest) => {
|
|
380
|
+
const next = latest;
|
|
381
|
+
store.apply(JSON.parse(next.state));
|
|
382
|
+
internal.sequence = next.sequence;
|
|
383
|
+
finishResolve();
|
|
384
|
+
}).catch((error) => {
|
|
385
|
+
finishReject(error);
|
|
386
|
+
});
|
|
387
|
+
}, clientExecuteSyncTimeoutMs);
|
|
363
388
|
});
|
|
364
|
-
}
|
|
389
|
+
}
|
|
390
|
+
if (result?.$$Error) {
|
|
391
|
+
done?.(result);
|
|
392
|
+
throw new Error(result.$$Error);
|
|
393
|
+
}
|
|
394
|
+
done?.(result);
|
|
395
|
+
return result;
|
|
365
396
|
});
|
|
366
397
|
};
|
|
367
398
|
} else {
|
package/dist/index.mjs
CHANGED
|
@@ -234,6 +234,7 @@ var createSelectorCreatorWithArray = (memoize = defaultMemoize) => {
|
|
|
234
234
|
var createSelectorWithArray = createSelectorCreatorWithArray();
|
|
235
235
|
|
|
236
236
|
// src/getRawState.ts
|
|
237
|
+
var clientExecuteSyncTimeoutMs = 1500;
|
|
237
238
|
var getRawState = (store, internal, initialState, options) => {
|
|
238
239
|
const rawState = {};
|
|
239
240
|
const handle = (_rawState, _initialState, sliceKey) => {
|
|
@@ -312,31 +313,61 @@ var getRawState = (store, internal, initialState, options) => {
|
|
|
312
313
|
};
|
|
313
314
|
}
|
|
314
315
|
const keys = sliceKey ? [sliceKey, key] : [key];
|
|
315
|
-
return store.transport.emit("execute", keys, args).then(([result, sequence]) => {
|
|
316
|
-
if (internal.sequence
|
|
317
|
-
if (
|
|
318
|
-
|
|
319
|
-
|
|
316
|
+
return store.transport.emit("execute", keys, args).then(async ([result, sequence]) => {
|
|
317
|
+
if (internal.sequence < sequence) {
|
|
318
|
+
if (process.env.NODE_ENV === "development") {
|
|
319
|
+
console.warn(
|
|
320
|
+
`The sequence of the action is not consistent.`,
|
|
321
|
+
sequence,
|
|
322
|
+
internal.sequence
|
|
323
|
+
);
|
|
320
324
|
}
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
sequence,
|
|
328
|
-
internal.sequence
|
|
329
|
-
);
|
|
330
|
-
}
|
|
331
|
-
return new Promise((resolve) => {
|
|
332
|
-
const unsubscribe = store.subscribe(() => {
|
|
333
|
-
if (internal.sequence >= sequence) {
|
|
325
|
+
await new Promise((resolve, reject) => {
|
|
326
|
+
let settled = false;
|
|
327
|
+
let unsubscribe = () => {
|
|
328
|
+
};
|
|
329
|
+
let timeoutId;
|
|
330
|
+
const cleanup = () => {
|
|
334
331
|
unsubscribe();
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
332
|
+
if (typeof timeoutId !== "undefined") {
|
|
333
|
+
clearTimeout(timeoutId);
|
|
334
|
+
}
|
|
335
|
+
};
|
|
336
|
+
const finishResolve = () => {
|
|
337
|
+
if (settled) return;
|
|
338
|
+
settled = true;
|
|
339
|
+
cleanup();
|
|
340
|
+
resolve();
|
|
341
|
+
};
|
|
342
|
+
const finishReject = (error) => {
|
|
343
|
+
if (settled) return;
|
|
344
|
+
settled = true;
|
|
345
|
+
cleanup();
|
|
346
|
+
reject(error);
|
|
347
|
+
};
|
|
348
|
+
unsubscribe = store.subscribe(() => {
|
|
349
|
+
if (internal.sequence >= sequence) {
|
|
350
|
+
finishResolve();
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
timeoutId = setTimeout(() => {
|
|
354
|
+
void store.transport.emit("fullSync").then((latest) => {
|
|
355
|
+
const next = latest;
|
|
356
|
+
store.apply(JSON.parse(next.state));
|
|
357
|
+
internal.sequence = next.sequence;
|
|
358
|
+
finishResolve();
|
|
359
|
+
}).catch((error) => {
|
|
360
|
+
finishReject(error);
|
|
361
|
+
});
|
|
362
|
+
}, clientExecuteSyncTimeoutMs);
|
|
338
363
|
});
|
|
339
|
-
}
|
|
364
|
+
}
|
|
365
|
+
if (result?.$$Error) {
|
|
366
|
+
done?.(result);
|
|
367
|
+
throw new Error(result.$$Error);
|
|
368
|
+
}
|
|
369
|
+
done?.(result);
|
|
370
|
+
return result;
|
|
340
371
|
});
|
|
341
372
|
};
|
|
342
373
|
} else {
|