1 | {"version":3,"file":"transferTask.mjs","sources":["../../../../../src/providers/s3/utils/transferTask.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { isCancelError } from '../../../errors/CanceledError';\nimport { logger } from '../../../utils';\nconst createCancellableTask = ({ job, onCancel, }) => {\n const state = 'IN_PROGRESS';\n let canceledErrorMessage;\n const cancelableTask = {\n cancel: (message) => {\n const { state: taskState } = cancelableTask;\n if (taskState === 'CANCELED' ||\n taskState === 'ERROR' ||\n taskState === 'SUCCESS') {\n logger.debug(`This task cannot be canceled. State: ${taskState}`);\n return;\n }\n cancelableTask.state = 'CANCELED';\n canceledErrorMessage = message;\n onCancel(canceledErrorMessage);\n },\n state,\n };\n const wrappedJobPromise = (async () => {\n try {\n const result = await job();\n cancelableTask.state = 'SUCCESS';\n return result;\n }\n catch (e) {\n if (isCancelError(e)) {\n cancelableTask.state = 'CANCELED';\n e.message = canceledErrorMessage ?? e.message;\n }\n cancelableTask.state = 'ERROR';\n throw e;\n }\n })();\n return Object.assign(cancelableTask, {\n result: wrappedJobPromise,\n });\n};\nexport const createDownloadTask = createCancellableTask;\nexport const createUploadTask = ({ job, onCancel, onResume, onPause, isMultipartUpload, }) => {\n const cancellableTask = createCancellableTask({\n job,\n onCancel,\n });\n const uploadTask = Object.assign(cancellableTask, {\n pause: () => {\n const { state } = uploadTask;\n if (!isMultipartUpload || state !== 'IN_PROGRESS') {\n logger.debug(`This task cannot be paused. State: ${state}`);\n return;\n }\n // TODO(eslint): remove this linter suppression.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n uploadTask.state = 'PAUSED';\n onPause?.();\n },\n resume: () => {\n const { state } = uploadTask;\n if (!isMultipartUpload || state !== 'PAUSED') {\n logger.debug(`This task cannot be resumed. State: ${state}`);\n return;\n }\n // TODO(eslint): remove this linter suppression.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n uploadTask.state = 'IN_PROGRESS';\n onResume?.();\n },\n });\n return uploadTask;\n};\n"],"names":[],"mappings":"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"} |