error handling for timeout in transfer

This commit is contained in:
Bassel 2023-03-09 11:07:03 +02:00
parent 961938ad1e
commit 33cbe053cc
2 changed files with 27 additions and 6 deletions

View File

@ -303,15 +303,22 @@ class RemoteStrapiDestinationProvider implements IDestinationProvider {
const startAssetsTransferOnce = this.#startStepOnce('assets');
const flush = async () => {
await this.#streamStep('assets', batch);
const streamError = await this.#streamStep('assets', batch);
batch = [];
return streamError;
};
const safePush = async (chunk: client.TransferAssetFlow) => {
const safePush = async (
chunk: client.TransferAssetFlow,
callback: (error?: Error | null) => void
) => {
batch.push(chunk);
if (batchLength() >= batchSize) {
await flush();
const streamError = await flush();
if (streamError) {
return callback(streamError);
}
}
};
@ -347,13 +354,20 @@ class RemoteStrapiDestinationProvider implements IDestinationProvider {
const assetID = v4();
const { filename, filepath, stats, stream } = asset;
await safePush({ action: 'start', assetID, data: { filename, filepath, stats } });
await safePush(
{
action: 'start',
assetID,
data: { filename, filepath, stats },
},
callback
);
for await (const chunk of stream) {
await safePush({ action: 'stream', assetID, data: chunk });
await safePush({ action: 'stream', assetID, data: chunk }, callback);
}
await safePush({ action: 'end', assetID });
await safePush({ action: 'end', assetID }, callback);
callback();
},

View File

@ -6828,6 +6828,13 @@
resolved "https://registry.yarnpkg.com/@vercel/ncc/-/ncc-0.36.1.tgz#d4c01fdbbe909d128d1bf11c7f8b5431654c5b95"
integrity sha512-S4cL7Taa9yb5qbv+6wLgiKVZ03Qfkc4jGRuiUQMQ8HGBD5pcNRnHeYM33zBvJE4/zJGjJJ8GScB+WmTsn9mORw==
"@vscode/sqlite3@5.0.8":
version "5.0.8"
resolved "https://registry.yarnpkg.com/@vscode/sqlite3/-/sqlite3-5.0.8.tgz#72b07061c5f90a9dd598a5506f598fcc817fab90"
integrity sha512-6wvQdMjpi1kwYI5mfzm98siEQb2mlBKX4xdNtJFj/uNqb6wqd3JOhk+5FL7geR0hduXE5lHjv+q69jtsEtUJDA==
dependencies:
node-addon-api "^4.2.0"
"@vscode/sqlite3@5.1.2":
version "5.1.2"
resolved "https://registry.yarnpkg.com/@vscode/sqlite3/-/sqlite3-5.1.2.tgz#3b22f2bd8681a7193f2169b407ae364b7b2c2dec"