@webiny/background-tasks 0.0.0-unstable.0156a4c312
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/LICENSE +21 -0
- package/README.md +11 -0
- package/admin/BackgroundTaskRoutes.d.ts +2 -0
- package/admin/BackgroundTaskRoutes.js +70 -0
- package/admin/BackgroundTaskRoutes.js.map +1 -0
- package/admin/BackgroundTasks.d.ts +2 -0
- package/admin/BackgroundTasks.js +55 -0
- package/admin/BackgroundTasks.js.map +1 -0
- package/admin/features/abortTask/AbortTaskGateway.d.ts +12 -0
- package/admin/features/abortTask/AbortTaskGateway.js +62 -0
- package/admin/features/abortTask/AbortTaskGateway.js.map +1 -0
- package/admin/features/abortTask/AbortTaskUseCase.d.ts +11 -0
- package/admin/features/abortTask/AbortTaskUseCase.js +18 -0
- package/admin/features/abortTask/AbortTaskUseCase.js.map +1 -0
- package/admin/features/abortTask/abstractions.d.ts +19 -0
- package/admin/features/abortTask/abstractions.js +6 -0
- package/admin/features/abortTask/abstractions.js.map +1 -0
- package/admin/features/abortTask/feature.d.ts +3 -0
- package/admin/features/abortTask/feature.js +19 -0
- package/admin/features/abortTask/feature.js.map +1 -0
- package/admin/features/abortTask/index.d.ts +2 -0
- package/admin/features/abortTask/index.js +2 -0
- package/admin/features/deleteTask/DeleteTaskGateway.d.ts +11 -0
- package/admin/features/deleteTask/DeleteTaskGateway.js +41 -0
- package/admin/features/deleteTask/DeleteTaskGateway.js.map +1 -0
- package/admin/features/deleteTask/DeleteTaskUseCase.d.ts +10 -0
- package/admin/features/deleteTask/DeleteTaskUseCase.js +18 -0
- package/admin/features/deleteTask/DeleteTaskUseCase.js.map +1 -0
- package/admin/features/deleteTask/abstractions.d.ts +14 -0
- package/admin/features/deleteTask/abstractions.js +6 -0
- package/admin/features/deleteTask/abstractions.js.map +1 -0
- package/admin/features/deleteTask/feature.d.ts +3 -0
- package/admin/features/deleteTask/feature.js +19 -0
- package/admin/features/deleteTask/feature.js.map +1 -0
- package/admin/features/deleteTask/index.d.ts +2 -0
- package/admin/features/deleteTask/index.js +2 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.d.ts +12 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.js +40 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.js.map +1 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.d.ts +11 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.js +18 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.js.map +1 -0
- package/admin/features/getBackgroundTaskSettings/abstractions.d.ts +15 -0
- package/admin/features/getBackgroundTaskSettings/abstractions.js +6 -0
- package/admin/features/getBackgroundTaskSettings/abstractions.js.map +1 -0
- package/admin/features/getBackgroundTaskSettings/feature.d.ts +3 -0
- package/admin/features/getBackgroundTaskSettings/feature.js +19 -0
- package/admin/features/getBackgroundTaskSettings/feature.js.map +1 -0
- package/admin/features/getBackgroundTaskSettings/index.d.ts +3 -0
- package/admin/features/getBackgroundTaskSettings/index.js +2 -0
- package/admin/features/getTask/GetTaskGateway.d.ts +12 -0
- package/admin/features/getTask/GetTaskGateway.js +61 -0
- package/admin/features/getTask/GetTaskGateway.js.map +1 -0
- package/admin/features/getTask/GetTaskUseCase.d.ts +11 -0
- package/admin/features/getTask/GetTaskUseCase.js +18 -0
- package/admin/features/getTask/GetTaskUseCase.js.map +1 -0
- package/admin/features/getTask/abstractions.d.ts +15 -0
- package/admin/features/getTask/abstractions.js +6 -0
- package/admin/features/getTask/abstractions.js.map +1 -0
- package/admin/features/getTask/feature.d.ts +3 -0
- package/admin/features/getTask/feature.js +19 -0
- package/admin/features/getTask/feature.js.map +1 -0
- package/admin/features/getTask/index.d.ts +2 -0
- package/admin/features/getTask/index.js +2 -0
- package/admin/features/listDefinitions/ListDefinitionsGateway.d.ts +12 -0
- package/admin/features/listDefinitions/ListDefinitionsGateway.js +42 -0
- package/admin/features/listDefinitions/ListDefinitionsGateway.js.map +1 -0
- package/admin/features/listDefinitions/ListDefinitionsUseCase.d.ts +11 -0
- package/admin/features/listDefinitions/ListDefinitionsUseCase.js +18 -0
- package/admin/features/listDefinitions/ListDefinitionsUseCase.js.map +1 -0
- package/admin/features/listDefinitions/abstractions.d.ts +15 -0
- package/admin/features/listDefinitions/abstractions.js +6 -0
- package/admin/features/listDefinitions/abstractions.js.map +1 -0
- package/admin/features/listDefinitions/feature.d.ts +3 -0
- package/admin/features/listDefinitions/feature.js +19 -0
- package/admin/features/listDefinitions/feature.js.map +1 -0
- package/admin/features/listDefinitions/index.d.ts +2 -0
- package/admin/features/listDefinitions/index.js +2 -0
- package/admin/features/listLogs/ListLogsGateway.d.ts +11 -0
- package/admin/features/listLogs/ListLogsGateway.js +73 -0
- package/admin/features/listLogs/ListLogsGateway.js.map +1 -0
- package/admin/features/listLogs/ListLogsUseCase.d.ts +10 -0
- package/admin/features/listLogs/ListLogsUseCase.js +18 -0
- package/admin/features/listLogs/ListLogsUseCase.js.map +1 -0
- package/admin/features/listLogs/abstractions.d.ts +30 -0
- package/admin/features/listLogs/abstractions.js +6 -0
- package/admin/features/listLogs/abstractions.js.map +1 -0
- package/admin/features/listLogs/feature.d.ts +3 -0
- package/admin/features/listLogs/feature.js +19 -0
- package/admin/features/listLogs/feature.js.map +1 -0
- package/admin/features/listLogs/index.d.ts +2 -0
- package/admin/features/listLogs/index.js +2 -0
- package/admin/features/listTasks/ListTasksGateway.d.ts +11 -0
- package/admin/features/listTasks/ListTasksGateway.js +79 -0
- package/admin/features/listTasks/ListTasksGateway.js.map +1 -0
- package/admin/features/listTasks/ListTasksUseCase.d.ts +10 -0
- package/admin/features/listTasks/ListTasksUseCase.js +18 -0
- package/admin/features/listTasks/ListTasksUseCase.js.map +1 -0
- package/admin/features/listTasks/abstractions.d.ts +31 -0
- package/admin/features/listTasks/abstractions.js +6 -0
- package/admin/features/listTasks/abstractions.js.map +1 -0
- package/admin/features/listTasks/feature.d.ts +3 -0
- package/admin/features/listTasks/feature.js +19 -0
- package/admin/features/listTasks/feature.js.map +1 -0
- package/admin/features/listTasks/index.d.ts +2 -0
- package/admin/features/listTasks/index.js +2 -0
- package/admin/features/permissions/abstractions.d.ts +17 -0
- package/admin/features/permissions/abstractions.js +6 -0
- package/admin/features/permissions/abstractions.js.map +1 -0
- package/admin/features/permissions/feature.d.ts +14 -0
- package/admin/features/permissions/feature.js +7 -0
- package/admin/features/permissions/feature.js.map +1 -0
- package/admin/features/permissions/index.d.ts +2 -0
- package/admin/features/permissions/index.js +2 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.d.ts +12 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.js +43 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.js.map +1 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.d.ts +11 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js +18 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js.map +1 -0
- package/admin/features/updateBackgroundTaskSettings/abstractions.d.ts +18 -0
- package/admin/features/updateBackgroundTaskSettings/abstractions.js +6 -0
- package/admin/features/updateBackgroundTaskSettings/abstractions.js.map +1 -0
- package/admin/features/updateBackgroundTaskSettings/feature.d.ts +3 -0
- package/admin/features/updateBackgroundTaskSettings/feature.js +19 -0
- package/admin/features/updateBackgroundTaskSettings/feature.js.map +1 -0
- package/admin/features/updateBackgroundTaskSettings/index.d.ts +3 -0
- package/admin/features/updateBackgroundTaskSettings/index.js +2 -0
- package/admin/index.d.ts +2 -0
- package/admin/index.js +2 -0
- package/admin/permissions.d.ts +12 -0
- package/admin/permissions.js +22 -0
- package/admin/permissions.js.map +1 -0
- package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.d.ts +21 -0
- package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js +86 -0
- package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js.map +1 -0
- package/admin/presentation/BackgroundTaskSettings/abstractions.d.ts +16 -0
- package/admin/presentation/BackgroundTaskSettings/abstractions.js +5 -0
- package/admin/presentation/BackgroundTaskSettings/abstractions.js.map +1 -0
- package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.d.ts +2 -0
- package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.js +56 -0
- package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.js.map +1 -0
- package/admin/presentation/BackgroundTaskSettings/feature.d.ts +3 -0
- package/admin/presentation/BackgroundTaskSettings/feature.js +17 -0
- package/admin/presentation/BackgroundTaskSettings/feature.js.map +1 -0
- package/admin/presentation/BackgroundTaskSettings/index.d.ts +2 -0
- package/admin/presentation/BackgroundTaskSettings/index.js +2 -0
- package/admin/presentation/TaskDefinitions/TaskDefinitionsPresenter.d.ts +14 -0
- package/admin/presentation/TaskDefinitions/TaskDefinitionsPresenter.js +41 -0
- package/admin/presentation/TaskDefinitions/TaskDefinitionsPresenter.js.map +1 -0
- package/admin/presentation/TaskDefinitions/abstractions.d.ts +14 -0
- package/admin/presentation/TaskDefinitions/abstractions.js +5 -0
- package/admin/presentation/TaskDefinitions/abstractions.js.map +1 -0
- package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.d.ts +2 -0
- package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js +76 -0
- package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js.map +1 -0
- package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.d.ts +2 -0
- package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.js +16 -0
- package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.js.map +1 -0
- package/admin/presentation/TaskDefinitions/feature.d.ts +3 -0
- package/admin/presentation/TaskDefinitions/feature.js +17 -0
- package/admin/presentation/TaskDefinitions/feature.js.map +1 -0
- package/admin/presentation/TaskDefinitions/index.d.ts +2 -0
- package/admin/presentation/TaskDefinitions/index.js +2 -0
- package/admin/presentation/TaskDetail/TaskDetailPresenter.d.ts +24 -0
- package/admin/presentation/TaskDetail/TaskDetailPresenter.js +87 -0
- package/admin/presentation/TaskDetail/TaskDetailPresenter.js.map +1 -0
- package/admin/presentation/TaskDetail/abstractions.d.ts +24 -0
- package/admin/presentation/TaskDetail/abstractions.js +5 -0
- package/admin/presentation/TaskDetail/abstractions.js.map +1 -0
- package/admin/presentation/TaskDetail/components/TaskDetailDrawer.d.ts +11 -0
- package/admin/presentation/TaskDetail/components/TaskDetailDrawer.js +270 -0
- package/admin/presentation/TaskDetail/components/TaskDetailDrawer.js.map +1 -0
- package/admin/presentation/TaskDetail/feature.d.ts +3 -0
- package/admin/presentation/TaskDetail/feature.js +17 -0
- package/admin/presentation/TaskDetail/feature.js.map +1 -0
- package/admin/presentation/TaskDetail/index.d.ts +2 -0
- package/admin/presentation/TaskDetail/index.js +2 -0
- package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.d.ts +15 -0
- package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.js +91 -0
- package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.js.map +1 -0
- package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.d.ts +54 -0
- package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js +109 -0
- package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js.map +1 -0
- package/admin/presentation/TaskExecutions/abstractions.d.ts +28 -0
- package/admin/presentation/TaskExecutions/abstractions.js +5 -0
- package/admin/presentation/TaskExecutions/abstractions.js.map +1 -0
- package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.d.ts +2 -0
- package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js +16 -0
- package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js.map +1 -0
- package/admin/presentation/TaskExecutions/components/TaskExecutionsView.d.ts +2 -0
- package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js +341 -0
- package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js.map +1 -0
- package/admin/presentation/TaskExecutions/feature.d.ts +3 -0
- package/admin/presentation/TaskExecutions/feature.js +17 -0
- package/admin/presentation/TaskExecutions/feature.js.map +1 -0
- package/admin/presentation/TaskExecutions/index.d.ts +2 -0
- package/admin/presentation/TaskExecutions/index.js +2 -0
- package/admin/presentation/security/HasPermission.d.ts +12 -0
- package/admin/presentation/security/HasPermission.js +6 -0
- package/admin/presentation/security/HasPermission.js.map +1 -0
- package/admin/presentation/security/usePermissions.d.ts +12 -0
- package/admin/presentation/security/usePermissions.js +6 -0
- package/admin/presentation/security/usePermissions.js.map +1 -0
- package/admin/routes.d.ts +6 -0
- package/admin/routes.js +18 -0
- package/admin/routes.js.map +1 -0
- package/admin/shared/types.d.ts +18 -0
- package/admin/shared/types.js +0 -0
- package/api/BackgroundTasksFeature.d.ts +4 -0
- package/api/BackgroundTasksFeature.js +79 -0
- package/api/BackgroundTasksFeature.js.map +1 -0
- package/api/abstractions/Timer.d.ts +1 -0
- package/api/abstractions/Timer.js +0 -0
- package/api/abstractions/index.d.ts +1 -0
- package/api/abstractions/index.js +1 -0
- package/api/crud/TaskLogPrivateModel.d.ts +9 -0
- package/api/crud/TaskLogPrivateModel.js +41 -0
- package/api/crud/TaskLogPrivateModel.js.map +1 -0
- package/api/crud/TaskPrivateModel.d.ts +9 -0
- package/api/crud/TaskPrivateModel.js +56 -0
- package/api/crud/TaskPrivateModel.js.map +1 -0
- package/api/decorators/SelfCleaningTaskHandlerDecorator.d.ts +33 -0
- package/api/decorators/SelfCleaningTaskHandlerDecorator.js +69 -0
- package/api/decorators/SelfCleaningTaskHandlerDecorator.js.map +1 -0
- package/api/decorators/TaskDefinitionDefaultsDecorator.d.ts +27 -0
- package/api/decorators/TaskDefinitionDefaultsDecorator.js +47 -0
- package/api/decorators/TaskDefinitionDefaultsDecorator.js.map +1 -0
- package/api/domain/BackgroundTaskSettings.d.ts +3 -0
- package/api/domain/BackgroundTaskSettings.js +0 -0
- package/api/domain/TaskService.d.ts +12 -0
- package/api/domain/TaskService.js +5 -0
- package/api/domain/TaskService.js.map +1 -0
- package/api/domain/constants.d.ts +3 -0
- package/api/domain/constants.js +6 -0
- package/api/domain/constants.js.map +1 -0
- package/api/domain/errors.d.ts +61 -0
- package/api/domain/errors.js +109 -0
- package/api/domain/errors.js.map +1 -0
- package/api/domain/task/TaskLogModelProvider.d.ts +12 -0
- package/api/domain/task/TaskLogModelProvider.js +23 -0
- package/api/domain/task/TaskLogModelProvider.js.map +1 -0
- package/api/domain/task/TaskLogsRepository.d.ts +34 -0
- package/api/domain/task/TaskLogsRepository.js +146 -0
- package/api/domain/task/TaskLogsRepository.js.map +1 -0
- package/api/domain/task/TaskModelProvider.d.ts +12 -0
- package/api/domain/task/TaskModelProvider.js +23 -0
- package/api/domain/task/TaskModelProvider.js.map +1 -0
- package/api/domain/task/TasksRepository.d.ts +37 -0
- package/api/domain/task/TasksRepository.js +126 -0
- package/api/domain/task/TasksRepository.js.map +1 -0
- package/api/domain/task/abstractions.d.ts +50 -0
- package/api/domain/task/abstractions.js +8 -0
- package/api/domain/task/abstractions.js.map +1 -0
- package/api/domain/task/createRevisionId.d.ts +1 -0
- package/api/domain/task/createRevisionId.js +8 -0
- package/api/domain/task/createRevisionId.js.map +1 -0
- package/api/domain/task/entryToTask.d.ts +3 -0
- package/api/domain/task/entryToTask.js +20 -0
- package/api/domain/task/entryToTask.js.map +1 -0
- package/api/domain/task/entryToTaskLog.d.ts +3 -0
- package/api/domain/task/entryToTaskLog.js +12 -0
- package/api/domain/task/entryToTaskLog.js.map +1 -0
- package/api/events/TaskAfterCreateEvent.d.ts +6 -0
- package/api/events/TaskAfterCreateEvent.js +13 -0
- package/api/events/TaskAfterCreateEvent.js.map +1 -0
- package/api/events/TaskAfterDeleteEvent.d.ts +6 -0
- package/api/events/TaskAfterDeleteEvent.js +13 -0
- package/api/events/TaskAfterDeleteEvent.js.map +1 -0
- package/api/events/TaskAfterUpdateEvent.d.ts +6 -0
- package/api/events/TaskAfterUpdateEvent.js +13 -0
- package/api/events/TaskAfterUpdateEvent.js.map +1 -0
- package/api/events/TaskBeforeCreateEvent.d.ts +6 -0
- package/api/events/TaskBeforeCreateEvent.js +13 -0
- package/api/events/TaskBeforeCreateEvent.js.map +1 -0
- package/api/events/TaskBeforeDeleteEvent.d.ts +6 -0
- package/api/events/TaskBeforeDeleteEvent.js +13 -0
- package/api/events/TaskBeforeDeleteEvent.js.map +1 -0
- package/api/events/TaskBeforeUpdateEvent.d.ts +6 -0
- package/api/events/TaskBeforeUpdateEvent.js +13 -0
- package/api/events/TaskBeforeUpdateEvent.js.map +1 -0
- package/api/events/abstractions.d.ts +53 -0
- package/api/events/abstractions.js +10 -0
- package/api/events/abstractions.js.map +1 -0
- package/api/events/index.d.ts +7 -0
- package/api/events/index.js +7 -0
- package/api/features/AbortTask/AbortTaskUseCase.d.ts +9 -0
- package/api/features/AbortTask/AbortTaskUseCase.js +12 -0
- package/api/features/AbortTask/AbortTaskUseCase.js.map +1 -0
- package/api/features/AbortTask/abstractions.d.ts +25 -0
- package/api/features/AbortTask/abstractions.js +5 -0
- package/api/features/AbortTask/abstractions.js.map +1 -0
- package/api/features/AbortTask/feature.d.ts +4 -0
- package/api/features/AbortTask/feature.js +13 -0
- package/api/features/AbortTask/feature.js.map +1 -0
- package/api/features/AbortTask/index.d.ts +2 -0
- package/api/features/AbortTask/index.js +2 -0
- package/api/features/BackgroundTaskPermissions/abstractions.d.ts +17 -0
- package/api/features/BackgroundTaskPermissions/abstractions.js +6 -0
- package/api/features/BackgroundTaskPermissions/abstractions.js.map +1 -0
- package/api/features/BackgroundTaskPermissions/feature.d.ts +4 -0
- package/api/features/BackgroundTaskPermissions/feature.js +7 -0
- package/api/features/BackgroundTaskPermissions/feature.js.map +1 -0
- package/api/features/BackgroundTaskPermissions/index.d.ts +2 -0
- package/api/features/BackgroundTaskPermissions/index.js +2 -0
- package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.d.ts +27 -0
- package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js +117 -0
- package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js.map +1 -0
- package/api/features/CleanupTaskSubtree/abstractions.d.ts +7 -0
- package/api/features/CleanupTaskSubtree/abstractions.js +5 -0
- package/api/features/CleanupTaskSubtree/abstractions.js.map +1 -0
- package/api/features/CleanupTaskSubtree/feature.d.ts +4 -0
- package/api/features/CleanupTaskSubtree/feature.js +11 -0
- package/api/features/CleanupTaskSubtree/feature.js.map +1 -0
- package/api/features/CleanupTaskSubtree/index.d.ts +2 -0
- package/api/features/CleanupTaskSubtree/index.js +2 -0
- package/api/features/CreateTask/CreateTaskUseCase.d.ts +17 -0
- package/api/features/CreateTask/CreateTaskUseCase.js +56 -0
- package/api/features/CreateTask/CreateTaskUseCase.js.map +1 -0
- package/api/features/CreateTask/abstractions.d.ts +21 -0
- package/api/features/CreateTask/abstractions.js +5 -0
- package/api/features/CreateTask/abstractions.js.map +1 -0
- package/api/features/CreateTask/feature.d.ts +4 -0
- package/api/features/CreateTask/feature.js +11 -0
- package/api/features/CreateTask/feature.js.map +1 -0
- package/api/features/CreateTask/index.d.ts +2 -0
- package/api/features/CreateTask/index.js +2 -0
- package/api/features/CreateTaskLog/CreateTaskLogUseCase.d.ts +13 -0
- package/api/features/CreateTaskLog/CreateTaskLogUseCase.js +19 -0
- package/api/features/CreateTaskLog/CreateTaskLogUseCase.js.map +1 -0
- package/api/features/CreateTaskLog/abstractions.d.ts +16 -0
- package/api/features/CreateTaskLog/abstractions.js +5 -0
- package/api/features/CreateTaskLog/abstractions.js.map +1 -0
- package/api/features/CreateTaskLog/feature.d.ts +4 -0
- package/api/features/CreateTaskLog/feature.js +11 -0
- package/api/features/CreateTaskLog/feature.js.map +1 -0
- package/api/features/CreateTaskLog/index.d.ts +2 -0
- package/api/features/CreateTaskLog/index.js +2 -0
- package/api/features/DeleteTask/DeleteTaskUseCase.d.ts +14 -0
- package/api/features/DeleteTask/DeleteTaskUseCase.js +34 -0
- package/api/features/DeleteTask/DeleteTaskUseCase.js.map +1 -0
- package/api/features/DeleteTask/abstractions.d.ts +17 -0
- package/api/features/DeleteTask/abstractions.js +5 -0
- package/api/features/DeleteTask/abstractions.js.map +1 -0
- package/api/features/DeleteTask/feature.d.ts +4 -0
- package/api/features/DeleteTask/feature.js +11 -0
- package/api/features/DeleteTask/feature.js.map +1 -0
- package/api/features/DeleteTask/index.d.ts +2 -0
- package/api/features/DeleteTask/index.js +2 -0
- package/api/features/DeleteTaskLog/DeleteTaskLogUseCase.d.ts +11 -0
- package/api/features/DeleteTaskLog/DeleteTaskLogUseCase.js +19 -0
- package/api/features/DeleteTaskLog/DeleteTaskLogUseCase.js.map +1 -0
- package/api/features/DeleteTaskLog/abstractions.d.ts +14 -0
- package/api/features/DeleteTaskLog/abstractions.js +5 -0
- package/api/features/DeleteTaskLog/abstractions.js.map +1 -0
- package/api/features/DeleteTaskLog/feature.d.ts +4 -0
- package/api/features/DeleteTaskLog/feature.js +11 -0
- package/api/features/DeleteTaskLog/feature.js.map +1 -0
- package/api/features/DeleteTaskLog/index.d.ts +2 -0
- package/api/features/DeleteTaskLog/index.js +2 -0
- package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.d.ts +21 -0
- package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js +63 -0
- package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js.map +1 -0
- package/api/features/GetBackgroundTaskSettings/abstractions.d.ts +13 -0
- package/api/features/GetBackgroundTaskSettings/abstractions.js +5 -0
- package/api/features/GetBackgroundTaskSettings/abstractions.js.map +1 -0
- package/api/features/GetBackgroundTaskSettings/feature.d.ts +4 -0
- package/api/features/GetBackgroundTaskSettings/feature.js +11 -0
- package/api/features/GetBackgroundTaskSettings/feature.js.map +1 -0
- package/api/features/GetBackgroundTaskSettings/index.d.ts +2 -0
- package/api/features/GetBackgroundTaskSettings/index.js +2 -0
- package/api/features/GetLatestTaskLog/GetLatestTaskLogUseCase.d.ts +11 -0
- package/api/features/GetLatestTaskLog/GetLatestTaskLogUseCase.js +19 -0
- package/api/features/GetLatestTaskLog/GetLatestTaskLogUseCase.js.map +1 -0
- package/api/features/GetLatestTaskLog/abstractions.d.ts +15 -0
- package/api/features/GetLatestTaskLog/abstractions.js +5 -0
- package/api/features/GetLatestTaskLog/abstractions.js.map +1 -0
- package/api/features/GetLatestTaskLog/feature.d.ts +4 -0
- package/api/features/GetLatestTaskLog/feature.js +11 -0
- package/api/features/GetLatestTaskLog/feature.js.map +1 -0
- package/api/features/GetLatestTaskLog/index.d.ts +2 -0
- package/api/features/GetLatestTaskLog/index.js +2 -0
- package/api/features/GetRunnableTaskDefinition/GetRunnableTaskDefinitionUseCase.d.ts +13 -0
- package/api/features/GetRunnableTaskDefinition/GetRunnableTaskDefinitionUseCase.js +51 -0
- package/api/features/GetRunnableTaskDefinition/GetRunnableTaskDefinitionUseCase.js.map +1 -0
- package/api/features/GetRunnableTaskDefinition/abstractions.d.ts +17 -0
- package/api/features/GetRunnableTaskDefinition/abstractions.js +5 -0
- package/api/features/GetRunnableTaskDefinition/abstractions.js.map +1 -0
- package/api/features/GetRunnableTaskDefinition/feature.d.ts +4 -0
- package/api/features/GetRunnableTaskDefinition/feature.js +11 -0
- package/api/features/GetRunnableTaskDefinition/feature.js.map +1 -0
- package/api/features/GetRunnableTaskDefinition/index.d.ts +2 -0
- package/api/features/GetRunnableTaskDefinition/index.js +2 -0
- package/api/features/GetTask/GetTaskUseCase.d.ts +13 -0
- package/api/features/GetTask/GetTaskUseCase.js +19 -0
- package/api/features/GetTask/GetTaskUseCase.js.map +1 -0
- package/api/features/GetTask/abstractions.d.ts +17 -0
- package/api/features/GetTask/abstractions.js +5 -0
- package/api/features/GetTask/abstractions.js.map +1 -0
- package/api/features/GetTask/feature.d.ts +4 -0
- package/api/features/GetTask/feature.js +11 -0
- package/api/features/GetTask/feature.js.map +1 -0
- package/api/features/GetTask/index.d.ts +2 -0
- package/api/features/GetTask/index.js +2 -0
- package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.d.ts +11 -0
- package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js +24 -0
- package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js.map +1 -0
- package/api/features/ListTaskDefinitions/abstractions.d.ts +9 -0
- package/api/features/ListTaskDefinitions/abstractions.js +5 -0
- package/api/features/ListTaskDefinitions/abstractions.js.map +1 -0
- package/api/features/ListTaskDefinitions/feature.d.ts +4 -0
- package/api/features/ListTaskDefinitions/feature.js +11 -0
- package/api/features/ListTaskDefinitions/feature.js.map +1 -0
- package/api/features/ListTaskDefinitions/index.d.ts +2 -0
- package/api/features/ListTaskDefinitions/index.js +2 -0
- package/api/features/ListTaskLogs/ListTaskLogsUseCase.d.ts +12 -0
- package/api/features/ListTaskLogs/ListTaskLogsUseCase.js +19 -0
- package/api/features/ListTaskLogs/ListTaskLogsUseCase.js.map +1 -0
- package/api/features/ListTaskLogs/abstractions.d.ts +15 -0
- package/api/features/ListTaskLogs/abstractions.js +5 -0
- package/api/features/ListTaskLogs/abstractions.js.map +1 -0
- package/api/features/ListTaskLogs/feature.d.ts +4 -0
- package/api/features/ListTaskLogs/feature.js +11 -0
- package/api/features/ListTaskLogs/feature.js.map +1 -0
- package/api/features/ListTaskLogs/index.d.ts +2 -0
- package/api/features/ListTaskLogs/index.js +2 -0
- package/api/features/ListTasks/ListTasksUseCase.d.ts +13 -0
- package/api/features/ListTasks/ListTasksUseCase.js +19 -0
- package/api/features/ListTasks/ListTasksUseCase.js.map +1 -0
- package/api/features/ListTasks/abstractions.d.ts +19 -0
- package/api/features/ListTasks/abstractions.js +5 -0
- package/api/features/ListTasks/abstractions.js.map +1 -0
- package/api/features/ListTasks/feature.d.ts +4 -0
- package/api/features/ListTasks/feature.js +11 -0
- package/api/features/ListTasks/feature.js.map +1 -0
- package/api/features/ListTasks/index.d.ts +2 -0
- package/api/features/ListTasks/index.js +2 -0
- package/api/features/ListVisibleTaskDefinitions/ListVisibleTaskDefinitionsUseCase.d.ts +11 -0
- package/api/features/ListVisibleTaskDefinitions/ListVisibleTaskDefinitionsUseCase.js +19 -0
- package/api/features/ListVisibleTaskDefinitions/ListVisibleTaskDefinitionsUseCase.js.map +1 -0
- package/api/features/ListVisibleTaskDefinitions/abstractions.d.ts +9 -0
- package/api/features/ListVisibleTaskDefinitions/abstractions.js +5 -0
- package/api/features/ListVisibleTaskDefinitions/abstractions.js.map +1 -0
- package/api/features/ListVisibleTaskDefinitions/feature.d.ts +4 -0
- package/api/features/ListVisibleTaskDefinitions/feature.js +11 -0
- package/api/features/ListVisibleTaskDefinitions/feature.js.map +1 -0
- package/api/features/ListVisibleTaskDefinitions/index.d.ts +2 -0
- package/api/features/ListVisibleTaskDefinitions/index.js +2 -0
- package/api/features/TaskController/TaskController.d.ts +49 -0
- package/api/features/TaskController/TaskController.js +71 -0
- package/api/features/TaskController/TaskController.js.map +1 -0
- package/api/features/TaskController/augmentation.d.ts +60 -0
- package/api/features/TaskController/augmentation.js +0 -0
- package/api/features/TaskController/index.d.ts +2 -0
- package/api/features/TaskController/index.js +2 -0
- package/api/features/TaskExecutionContext/TaskExecutionContext.d.ts +24 -0
- package/api/features/TaskExecutionContext/TaskExecutionContext.js +43 -0
- package/api/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -0
- package/api/features/TaskExecutionContext/abstractions.d.ts +26 -0
- package/api/features/TaskExecutionContext/abstractions.js +5 -0
- package/api/features/TaskExecutionContext/abstractions.js.map +1 -0
- package/api/features/TaskExecutionContext/feature.d.ts +4 -0
- package/api/features/TaskExecutionContext/feature.js +11 -0
- package/api/features/TaskExecutionContext/feature.js.map +1 -0
- package/api/features/TaskExecutionContext/index.d.ts +1 -0
- package/api/features/TaskExecutionContext/index.js +1 -0
- package/api/features/TaskHandlerResolver/TaskHandlerResolver.d.ts +12 -0
- package/api/features/TaskHandlerResolver/TaskHandlerResolver.js +19 -0
- package/api/features/TaskHandlerResolver/TaskHandlerResolver.js.map +1 -0
- package/api/features/TaskHandlerResolver/abstractions.d.ts +17 -0
- package/api/features/TaskHandlerResolver/abstractions.js +5 -0
- package/api/features/TaskHandlerResolver/abstractions.js.map +1 -0
- package/api/features/TaskHandlerResolver/feature.d.ts +9 -0
- package/api/features/TaskHandlerResolver/feature.js +11 -0
- package/api/features/TaskHandlerResolver/feature.js.map +1 -0
- package/api/features/TaskHandlerResolver/index.d.ts +2 -0
- package/api/features/TaskHandlerResolver/index.js +2 -0
- package/api/features/TaskService/BackgroundTaskService.d.ts +42 -0
- package/api/features/TaskService/BackgroundTaskService.js +191 -0
- package/api/features/TaskService/BackgroundTaskService.js.map +1 -0
- package/api/features/TaskService/feature.d.ts +4 -0
- package/api/features/TaskService/feature.js +11 -0
- package/api/features/TaskService/feature.js.map +1 -0
- package/api/features/TaskService/index.d.ts +1 -0
- package/api/features/TaskService/index.js +1 -0
- package/api/features/TriggerTask/TriggerTaskUseCase.d.ts +9 -0
- package/api/features/TriggerTask/TriggerTaskUseCase.js +12 -0
- package/api/features/TriggerTask/TriggerTaskUseCase.js.map +1 -0
- package/api/features/TriggerTask/abstractions.d.ts +28 -0
- package/api/features/TriggerTask/abstractions.js +5 -0
- package/api/features/TriggerTask/abstractions.js.map +1 -0
- package/api/features/TriggerTask/feature.d.ts +4 -0
- package/api/features/TriggerTask/feature.js +13 -0
- package/api/features/TriggerTask/feature.js.map +1 -0
- package/api/features/TriggerTask/index.d.ts +2 -0
- package/api/features/TriggerTask/index.js +2 -0
- package/api/features/TriggerVisibleTask/TriggerVisibleTaskUseCase.d.ts +15 -0
- package/api/features/TriggerVisibleTask/TriggerVisibleTaskUseCase.js +26 -0
- package/api/features/TriggerVisibleTask/TriggerVisibleTaskUseCase.js.map +1 -0
- package/api/features/TriggerVisibleTask/abstractions.d.ts +17 -0
- package/api/features/TriggerVisibleTask/abstractions.js +5 -0
- package/api/features/TriggerVisibleTask/abstractions.js.map +1 -0
- package/api/features/TriggerVisibleTask/feature.d.ts +4 -0
- package/api/features/TriggerVisibleTask/feature.js +11 -0
- package/api/features/TriggerVisibleTask/feature.js.map +1 -0
- package/api/features/TriggerVisibleTask/index.d.ts +2 -0
- package/api/features/TriggerVisibleTask/index.js +2 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.d.ts +23 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js +67 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js.map +1 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.d.ts +14 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js +27 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js.map +1 -0
- package/api/features/UpdateBackgroundTaskSettings/abstractions.d.ts +26 -0
- package/api/features/UpdateBackgroundTaskSettings/abstractions.js +6 -0
- package/api/features/UpdateBackgroundTaskSettings/abstractions.js.map +1 -0
- package/api/features/UpdateBackgroundTaskSettings/feature.d.ts +4 -0
- package/api/features/UpdateBackgroundTaskSettings/feature.js +13 -0
- package/api/features/UpdateBackgroundTaskSettings/feature.js.map +1 -0
- package/api/features/UpdateBackgroundTaskSettings/index.d.ts +2 -0
- package/api/features/UpdateBackgroundTaskSettings/index.js +2 -0
- package/api/features/UpdateBackgroundTaskSettings/schema.d.ts +4 -0
- package/api/features/UpdateBackgroundTaskSettings/schema.js +8 -0
- package/api/features/UpdateBackgroundTaskSettings/schema.js.map +1 -0
- package/api/features/UpdateTask/UpdateTaskUseCase.d.ts +17 -0
- package/api/features/UpdateTask/UpdateTaskUseCase.js +36 -0
- package/api/features/UpdateTask/UpdateTaskUseCase.js.map +1 -0
- package/api/features/UpdateTask/abstractions.d.ts +22 -0
- package/api/features/UpdateTask/abstractions.js +5 -0
- package/api/features/UpdateTask/abstractions.js.map +1 -0
- package/api/features/UpdateTask/feature.d.ts +4 -0
- package/api/features/UpdateTask/feature.js +11 -0
- package/api/features/UpdateTask/feature.js.map +1 -0
- package/api/features/UpdateTask/index.d.ts +2 -0
- package/api/features/UpdateTask/index.js +2 -0
- package/api/features/UpdateTaskLog/UpdateTaskLogUseCase.d.ts +12 -0
- package/api/features/UpdateTaskLog/UpdateTaskLogUseCase.js +19 -0
- package/api/features/UpdateTaskLog/UpdateTaskLogUseCase.js.map +1 -0
- package/api/features/UpdateTaskLog/abstractions.d.ts +16 -0
- package/api/features/UpdateTaskLog/abstractions.js +5 -0
- package/api/features/UpdateTaskLog/abstractions.js.map +1 -0
- package/api/features/UpdateTaskLog/feature.d.ts +4 -0
- package/api/features/UpdateTaskLog/feature.js +11 -0
- package/api/features/UpdateTaskLog/feature.js.map +1 -0
- package/api/features/UpdateTaskLog/index.d.ts +2 -0
- package/api/features/UpdateTaskLog/index.js +2 -0
- package/api/global.d.ts +1 -0
- package/api/global.js +1 -0
- package/api/graphql/BackgroundTasksGraphQLSchema.d.ts +29 -0
- package/api/graphql/BackgroundTasksGraphQLSchema.js +462 -0
- package/api/graphql/BackgroundTasksGraphQLSchema.js.map +1 -0
- package/api/graphql/checkPermissions.d.ts +7 -0
- package/api/graphql/checkPermissions.js +22 -0
- package/api/graphql/checkPermissions.js.map +1 -0
- package/api/graphql/utils.d.ts +9 -0
- package/api/graphql/utils.js +20 -0
- package/api/graphql/utils.js.map +1 -0
- package/api/handler/types.d.ts +21 -0
- package/api/handler/types.js +0 -0
- package/api/index.d.ts +21 -0
- package/api/index.js +20 -0
- package/api/models/BackgroundTaskSettingsModel.d.ts +8 -0
- package/api/models/BackgroundTaskSettingsModel.js +27 -0
- package/api/models/BackgroundTaskSettingsModel.js.map +1 -0
- package/api/permissions.d.ts +12 -0
- package/api/permissions.js +22 -0
- package/api/permissions.js.map +1 -0
- package/api/response/DatabaseResponse.d.ts +12 -0
- package/api/response/DatabaseResponse.js +127 -0
- package/api/response/DatabaseResponse.js.map +1 -0
- package/api/response/Response.d.ts +14 -0
- package/api/response/Response.js +91 -0
- package/api/response/Response.js.map +1 -0
- package/api/response/ResponseAbortedResult.d.ts +9 -0
- package/api/response/ResponseAbortedResult.js +12 -0
- package/api/response/ResponseAbortedResult.js.map +1 -0
- package/api/response/ResponseContinueResult.d.ts +17 -0
- package/api/response/ResponseContinueResult.js +16 -0
- package/api/response/ResponseContinueResult.js.map +1 -0
- package/api/response/ResponseDoneResult.d.ts +11 -0
- package/api/response/ResponseDoneResult.js +14 -0
- package/api/response/ResponseDoneResult.js.map +1 -0
- package/api/response/ResponseErrorResult.d.ts +10 -0
- package/api/response/ResponseErrorResult.js +13 -0
- package/api/response/ResponseErrorResult.js.map +1 -0
- package/api/response/TaskResponse.d.ts +12 -0
- package/api/response/TaskResponse.js +53 -0
- package/api/response/TaskResponse.js.map +1 -0
- package/api/response/abstractions/Response.d.ts +25 -0
- package/api/response/abstractions/Response.js +0 -0
- package/api/response/abstractions/ResponseAbortedResult.d.ts +5 -0
- package/api/response/abstractions/ResponseAbortedResult.js +0 -0
- package/api/response/abstractions/ResponseBaseResult.d.ts +7 -0
- package/api/response/abstractions/ResponseBaseResult.js +0 -0
- package/api/response/abstractions/ResponseContinueResult.d.ts +21 -0
- package/api/response/abstractions/ResponseContinueResult.js +0 -0
- package/api/response/abstractions/ResponseDoneResult.d.ts +13 -0
- package/api/response/abstractions/ResponseDoneResult.js +0 -0
- package/api/response/abstractions/ResponseErrorResult.d.ts +18 -0
- package/api/response/abstractions/ResponseErrorResult.js +0 -0
- package/api/response/abstractions/TaskResponse.d.ts +16 -0
- package/api/response/abstractions/TaskResponse.js +0 -0
- package/api/response/abstractions/index.d.ts +7 -0
- package/api/response/abstractions/index.js +7 -0
- package/api/response/index.d.ts +7 -0
- package/api/response/index.js +7 -0
- package/api/runner/TaskControl.d.ts +48 -0
- package/api/runner/TaskControl.js +186 -0
- package/api/runner/TaskControl.js.map +1 -0
- package/api/runner/TaskEventValidation.d.ts +5 -0
- package/api/runner/TaskEventValidation.js +20 -0
- package/api/runner/TaskEventValidation.js.map +1 -0
- package/api/runner/TaskManager.d.ts +22 -0
- package/api/runner/TaskManager.js +83 -0
- package/api/runner/TaskManager.js.map +1 -0
- package/api/runner/TaskManagerStore.d.ts +57 -0
- package/api/runner/TaskManagerStore.js +127 -0
- package/api/runner/TaskManagerStore.js.map +1 -0
- package/api/runner/TaskRunner.d.ts +25 -0
- package/api/runner/TaskRunner.js +86 -0
- package/api/runner/TaskRunner.js.map +1 -0
- package/api/runner/abstractions/TaskControl.d.ts +10 -0
- package/api/runner/abstractions/TaskControl.js +0 -0
- package/api/runner/abstractions/TaskEventValidation.d.ts +5 -0
- package/api/runner/abstractions/TaskEventValidation.js +0 -0
- package/api/runner/abstractions/TaskManager.d.ts +5 -0
- package/api/runner/abstractions/TaskManager.js +0 -0
- package/api/runner/abstractions/TaskManagerStore.d.ts +92 -0
- package/api/runner/abstractions/TaskManagerStore.js +0 -0
- package/api/runner/abstractions/TaskRunner.d.ts +13 -0
- package/api/runner/abstractions/TaskRunner.js +0 -0
- package/api/runner/abstractions/index.d.ts +5 -0
- package/api/runner/abstractions/index.js +5 -0
- package/api/runner/index.d.ts +1 -0
- package/api/runner/index.js +1 -0
- package/api/tasks/testingRunTask.d.ts +19 -0
- package/api/tasks/testingRunTask.js +25 -0
- package/api/tasks/testingRunTask.js.map +1 -0
- package/api/types.d.ts +120 -0
- package/api/types.js +20 -0
- package/api/types.js.map +1 -0
- package/api/utils/ObjectUpdater.d.ts +8 -0
- package/api/utils/ObjectUpdater.js +33 -0
- package/api/utils/ObjectUpdater.js.map +1 -0
- package/api/utils/getErrorProperties.d.ts +2 -0
- package/api/utils/getErrorProperties.js +9 -0
- package/api/utils/getErrorProperties.js.map +1 -0
- package/api/utils/getObjectProperties.d.ts +8 -0
- package/api/utils/getObjectProperties.js +11 -0
- package/api/utils/getObjectProperties.js.map +1 -0
- package/api/utils/index.d.ts +3 -0
- package/api/utils/index.js +3 -0
- package/api/utils/normalizeSelfCleanup.d.ts +2 -0
- package/api/utils/normalizeSelfCleanup.js +16 -0
- package/api/utils/normalizeSelfCleanup.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/package.json +65 -0
- package/testing/index.d.ts +3 -0
- package/testing/index.js +2 -0
- package/testing/mockTaskTriggerTransportPlugin.d.ts +2 -0
- package/testing/mockTaskTriggerTransportPlugin.js +18 -0
- package/testing/mockTaskTriggerTransportPlugin.js.map +1 -0
- package/testing/runner.d.ts +19 -0
- package/testing/runner.js +44 -0
- package/testing/runner.js.map +1 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { ITask, ITaskDataInput, ITaskLog, ITaskManagerStoreInfoLog, ITaskManagerStorePrivate, ITaskManagerStoreSetOutputOptions, ITaskManagerStoreUpdateTaskInputOptions, ITaskManagerStoreUpdateTaskOptions, TaskDataStatus } from "../../api/types.js";
|
|
2
|
+
import type { ListTasksUseCase } from "../../api/features/ListTasks/index.js";
|
|
3
|
+
import type { UpdateTaskUseCase } from "../../api/features/UpdateTask/index.js";
|
|
4
|
+
import type { UpdateTaskLogUseCase } from "../../api/features/UpdateTaskLog/index.js";
|
|
5
|
+
import type { Logger } from "@webiny/api-core/features/logger/index.js";
|
|
6
|
+
import type { Container } from "@webiny/feature/api";
|
|
7
|
+
import type { ITaskManagerStoreAddLogOptions, ITaskManagerStoreErrorLog, ITaskManagerStoreUpdateTaskInputParam, ITaskManagerStoreUpdateTaskParams } from "./abstractions/index.js";
|
|
8
|
+
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
9
|
+
export interface TaskManagerStoreContext {
|
|
10
|
+
container: Container;
|
|
11
|
+
}
|
|
12
|
+
export interface ITaskManagerStoreParams {
|
|
13
|
+
context: TaskManagerStoreContext;
|
|
14
|
+
task: ITask;
|
|
15
|
+
log: ITaskLog;
|
|
16
|
+
databaseLogs: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Supplied by the caller rather than pulled from `context.container`, so the store's
|
|
19
|
+
* collaborators are visible in its signature and a test can substitute them.
|
|
20
|
+
*/
|
|
21
|
+
listTasks: ListTasksUseCase.Interface;
|
|
22
|
+
updateTask: UpdateTaskUseCase.Interface;
|
|
23
|
+
updateTaskLog: UpdateTaskLogUseCase.Interface;
|
|
24
|
+
logger: Logger.Interface;
|
|
25
|
+
}
|
|
26
|
+
export declare class TaskManagerStore<T extends ITaskDataInput = ITaskDataInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> implements ITaskManagerStorePrivate<T, O> {
|
|
27
|
+
private readonly context;
|
|
28
|
+
private readonly listTasksUseCase;
|
|
29
|
+
private readonly updateTaskUseCase;
|
|
30
|
+
private readonly updateTaskLogUseCase;
|
|
31
|
+
private readonly logger;
|
|
32
|
+
private task;
|
|
33
|
+
private taskLog;
|
|
34
|
+
private readonly databaseLogs;
|
|
35
|
+
private readonly taskUpdater;
|
|
36
|
+
private readonly taskLogUpdater;
|
|
37
|
+
constructor(params: ITaskManagerStoreParams);
|
|
38
|
+
getStatus(): TaskDataStatus;
|
|
39
|
+
getTask(): ITask<T, O>;
|
|
40
|
+
listChildTasks<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput>(definitionId?: string): Promise<ITask<I, O>[]>;
|
|
41
|
+
updateTask(param: ITaskManagerStoreUpdateTaskParams<T, O>, options?: ITaskManagerStoreUpdateTaskOptions): Promise<void>;
|
|
42
|
+
updateInput(param: ITaskManagerStoreUpdateTaskInputParam<T>, options?: ITaskManagerStoreUpdateTaskInputOptions): Promise<void>;
|
|
43
|
+
getInput(): T;
|
|
44
|
+
updateOutput(values: Partial<O>, options?: ITaskManagerStoreSetOutputOptions): Promise<void>;
|
|
45
|
+
getOutput(): O;
|
|
46
|
+
/**
|
|
47
|
+
* Currently the methods throws an error if something goes wrong during the database update.
|
|
48
|
+
* TODO: Maybe we should wrap it into try/catch and return error if any?
|
|
49
|
+
*/
|
|
50
|
+
addInfoLog(log: ITaskManagerStoreInfoLog, options?: ITaskManagerStoreAddLogOptions): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Currently the methods throws an error if something goes wrong during the database update.
|
|
53
|
+
* TODO: Maybe we should wrap it into try/catch and return error if any?
|
|
54
|
+
*/
|
|
55
|
+
addErrorLog(log: ITaskManagerStoreErrorLog, options?: ITaskManagerStoreAddLogOptions): Promise<void>;
|
|
56
|
+
save(): Promise<void>;
|
|
57
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { TaskLogItemType } from "../types.js";
|
|
2
|
+
import deep_equal from "deep-equal";
|
|
3
|
+
import { getObjectProperties } from "../utils/getObjectProperties.js";
|
|
4
|
+
import { ObjectUpdater } from "../utils/ObjectUpdater.js";
|
|
5
|
+
const getInput = (originalInput, input)=>{
|
|
6
|
+
if ("function" == typeof input) return input(originalInput);
|
|
7
|
+
return {
|
|
8
|
+
...originalInput,
|
|
9
|
+
...input
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
class TaskManagerStore {
|
|
13
|
+
constructor(params){
|
|
14
|
+
this.taskUpdater = new ObjectUpdater();
|
|
15
|
+
this.taskLogUpdater = new ObjectUpdater();
|
|
16
|
+
this.context = params.context;
|
|
17
|
+
this.listTasksUseCase = params.listTasks;
|
|
18
|
+
this.updateTaskUseCase = params.updateTask;
|
|
19
|
+
this.updateTaskLogUseCase = params.updateTaskLog;
|
|
20
|
+
this.logger = params.logger;
|
|
21
|
+
this.task = params.task;
|
|
22
|
+
this.taskLog = params.log;
|
|
23
|
+
this.databaseLogs = true === params.databaseLogs;
|
|
24
|
+
}
|
|
25
|
+
getStatus() {
|
|
26
|
+
return this.task.taskStatus;
|
|
27
|
+
}
|
|
28
|
+
getTask() {
|
|
29
|
+
return this.task;
|
|
30
|
+
}
|
|
31
|
+
async listChildTasks(definitionId) {
|
|
32
|
+
const where = {
|
|
33
|
+
parentId: this.task.id
|
|
34
|
+
};
|
|
35
|
+
if (definitionId) where.definitionId = definitionId;
|
|
36
|
+
const result = await this.listTasksUseCase.execute({
|
|
37
|
+
where,
|
|
38
|
+
sort: [
|
|
39
|
+
"createdOn_ASC"
|
|
40
|
+
],
|
|
41
|
+
limit: 1000000
|
|
42
|
+
});
|
|
43
|
+
if (result.isFail()) throw result.error;
|
|
44
|
+
return result.value.items;
|
|
45
|
+
}
|
|
46
|
+
async updateTask(param, options) {
|
|
47
|
+
const data = "function" == typeof param ? param(this.task) : param;
|
|
48
|
+
if (deep_equal(data, this.task)) return;
|
|
49
|
+
this.taskUpdater.update(data);
|
|
50
|
+
if (options?.save === false) return;
|
|
51
|
+
await this.save();
|
|
52
|
+
}
|
|
53
|
+
async updateInput(param, options) {
|
|
54
|
+
const input = getInput(this.task.input, param);
|
|
55
|
+
if (deep_equal(input, this.task.input)) return;
|
|
56
|
+
this.taskUpdater.update({
|
|
57
|
+
input: input
|
|
58
|
+
});
|
|
59
|
+
if (options?.save === false) return;
|
|
60
|
+
await this.save();
|
|
61
|
+
}
|
|
62
|
+
getInput() {
|
|
63
|
+
return this.task.input;
|
|
64
|
+
}
|
|
65
|
+
async updateOutput(values, options = {}) {
|
|
66
|
+
this.taskUpdater.update({
|
|
67
|
+
output: values
|
|
68
|
+
});
|
|
69
|
+
if (options?.save === false) return;
|
|
70
|
+
await this.save();
|
|
71
|
+
}
|
|
72
|
+
getOutput() {
|
|
73
|
+
return this.task.output;
|
|
74
|
+
}
|
|
75
|
+
async addInfoLog(log, options) {
|
|
76
|
+
if (!this.databaseLogs) return;
|
|
77
|
+
this.taskLogUpdater.update({
|
|
78
|
+
items: [
|
|
79
|
+
{
|
|
80
|
+
message: log.message,
|
|
81
|
+
data: log.data,
|
|
82
|
+
type: TaskLogItemType.INFO,
|
|
83
|
+
createdOn: new Date().toISOString()
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
});
|
|
87
|
+
if (options?.save === false) return;
|
|
88
|
+
await this.save();
|
|
89
|
+
}
|
|
90
|
+
async addErrorLog(log, options) {
|
|
91
|
+
if (!this.databaseLogs) return;
|
|
92
|
+
this.logger.error({
|
|
93
|
+
error: log.error,
|
|
94
|
+
taskId: this.task.id
|
|
95
|
+
}, "Task reported an error.");
|
|
96
|
+
this.taskLogUpdater.update({
|
|
97
|
+
items: [
|
|
98
|
+
{
|
|
99
|
+
message: log.message,
|
|
100
|
+
error: log.error instanceof Error ? getObjectProperties(log.error) : log.error,
|
|
101
|
+
type: TaskLogItemType.ERROR,
|
|
102
|
+
createdOn: new Date().toISOString()
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
});
|
|
106
|
+
if (options?.save === false) return;
|
|
107
|
+
await this.save();
|
|
108
|
+
}
|
|
109
|
+
async save() {
|
|
110
|
+
if (this.taskUpdater.isDirty()) {
|
|
111
|
+
const changes = this.taskUpdater.fetch();
|
|
112
|
+
const result = await this.updateTaskUseCase.execute(this.task.id, changes);
|
|
113
|
+
if (result.isFail()) throw result.error;
|
|
114
|
+
this.task = result.value;
|
|
115
|
+
}
|
|
116
|
+
if (!this.databaseLogs) return;
|
|
117
|
+
if (this.taskLogUpdater.isDirty()) {
|
|
118
|
+
const changes = this.taskLogUpdater.fetch();
|
|
119
|
+
const result = await this.updateTaskLogUseCase.execute(this.taskLog.id, changes);
|
|
120
|
+
if (result.isFail()) throw result.error;
|
|
121
|
+
this.taskLog = result.value;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
export { TaskManagerStore };
|
|
126
|
+
|
|
127
|
+
//# sourceMappingURL=TaskManagerStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/runner/TaskManagerStore.js","sources":["../../../src/api/runner/TaskManagerStore.ts"],"sourcesContent":["import type {\n IListTaskParamsWhere,\n ITask,\n ITaskDataInput,\n ITaskLog,\n ITaskManagerStoreInfoLog,\n ITaskManagerStorePrivate,\n ITaskManagerStoreSetOutputOptions,\n ITaskManagerStoreUpdateTaskInputOptions,\n ITaskManagerStoreUpdateTaskOptions,\n TaskDataStatus\n} from \"~/api/types.js\";\nimport type { ListTasksUseCase } from \"~/api/features/ListTasks/index.js\";\nimport type { UpdateTaskUseCase } from \"~/api/features/UpdateTask/index.js\";\nimport type { UpdateTaskLogUseCase } from \"~/api/features/UpdateTaskLog/index.js\";\nimport type { Logger } from \"@webiny/api-core/features/logger/index.js\";\nimport type { Container } from \"@webiny/feature/api\";\nimport { TaskLogItemType } from \"~/api/types.js\";\nimport type {\n ITaskManagerStoreAddLogOptions,\n ITaskManagerStoreErrorLog,\n ITaskManagerStoreUpdateTaskInputParam,\n ITaskManagerStoreUpdateTaskParams\n} from \"./abstractions/index.js\";\n/**\n * Package deep-equal does not have types.\n */\nimport deepEqual from \"deep-equal\";\nimport { getObjectProperties } from \"~/api/utils/getObjectProperties.js\";\nimport { ObjectUpdater } from \"~/api/utils/ObjectUpdater.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nconst getInput = <T extends ITaskDataInput = ITaskDataInput>(\n originalInput: T,\n input: ITaskManagerStoreUpdateTaskInputParam<T>\n): T => {\n if (typeof input === \"function\") {\n return input(originalInput);\n }\n return {\n ...originalInput,\n ...input\n };\n};\n\nexport interface TaskManagerStoreContext {\n container: Container;\n}\n\nexport interface ITaskManagerStoreParams {\n context: TaskManagerStoreContext;\n task: ITask;\n log: ITaskLog;\n databaseLogs: boolean;\n /**\n * Supplied by the caller rather than pulled from `context.container`, so the store's\n * collaborators are visible in its signature and a test can substitute them.\n */\n listTasks: ListTasksUseCase.Interface;\n updateTask: UpdateTaskUseCase.Interface;\n updateTaskLog: UpdateTaskLogUseCase.Interface;\n logger: Logger.Interface;\n}\n\nexport class TaskManagerStore<\n T extends ITaskDataInput = ITaskDataInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n> implements ITaskManagerStorePrivate<T, O> {\n private readonly context: TaskManagerStoreContext;\n private readonly listTasksUseCase: ListTasksUseCase.Interface;\n private readonly updateTaskUseCase: UpdateTaskUseCase.Interface;\n private readonly updateTaskLogUseCase: UpdateTaskLogUseCase.Interface;\n private readonly logger: Logger.Interface;\n private task: ITask<T, O>;\n private taskLog: ITaskLog;\n private readonly databaseLogs: boolean;\n\n private readonly taskUpdater = new ObjectUpdater<ITask<T, O>>();\n private readonly taskLogUpdater = new ObjectUpdater<ITaskLog>();\n\n public constructor(params: ITaskManagerStoreParams) {\n this.context = params.context;\n this.listTasksUseCase = params.listTasks;\n this.updateTaskUseCase = params.updateTask;\n this.updateTaskLogUseCase = params.updateTaskLog;\n this.logger = params.logger;\n this.task = params.task as ITask<T, O>;\n this.taskLog = params.log;\n this.databaseLogs = params.databaseLogs === true;\n }\n\n public getStatus(): TaskDataStatus {\n return this.task.taskStatus;\n }\n\n public getTask(): ITask<T, O> {\n return this.task as ITask<T, O>;\n }\n\n public async listChildTasks<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n >(definitionId?: string): Promise<ITask<I, O>[]> {\n const where: IListTaskParamsWhere = {\n parentId: this.task.id\n };\n if (definitionId) {\n where.definitionId = definitionId;\n }\n const result = await this.listTasksUseCase.execute<I, O>({\n where,\n sort: [\"createdOn_ASC\"],\n limit: 1000000\n });\n if (result.isFail()) {\n throw result.error;\n }\n return result.value.items;\n }\n\n public async updateTask(\n param: ITaskManagerStoreUpdateTaskParams<T, O>,\n options?: ITaskManagerStoreUpdateTaskOptions\n ): Promise<void> {\n const data = typeof param === \"function\" ? param(this.task) : param;\n\n /**\n * No need to update if nothing changed.\n */\n if (deepEqual(data, this.task)) {\n return;\n }\n\n this.taskUpdater.update(data);\n\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public async updateInput(\n param: ITaskManagerStoreUpdateTaskInputParam<T>,\n options?: ITaskManagerStoreUpdateTaskInputOptions\n ): Promise<void> {\n const input = getInput<T>(this.task.input, param);\n\n /**\n * No need to update if nothing changed.\n */\n if (deepEqual(input, this.task.input)) {\n return;\n }\n this.taskUpdater.update({\n input: input as T\n });\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public getInput(): T {\n return this.task.input as T;\n }\n\n public async updateOutput(\n values: Partial<O>,\n options: ITaskManagerStoreSetOutputOptions = {}\n ): Promise<void> {\n this.taskUpdater.update({\n output: values as O\n });\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public getOutput(): O {\n return this.task.output as O;\n }\n /**\n * Currently the methods throws an error if something goes wrong during the database update.\n * TODO: Maybe we should wrap it into try/catch and return error if any?\n */\n public async addInfoLog(\n log: ITaskManagerStoreInfoLog,\n options?: ITaskManagerStoreAddLogOptions\n ): Promise<void> {\n if (!this.databaseLogs) {\n return;\n }\n this.taskLogUpdater.update({\n items: [\n {\n message: log.message,\n data: log.data,\n type: TaskLogItemType.INFO,\n createdOn: new Date().toISOString()\n }\n ]\n });\n if (options?.save === false) {\n return;\n }\n\n await this.save();\n }\n /**\n * Currently the methods throws an error if something goes wrong during the database update.\n * TODO: Maybe we should wrap it into try/catch and return error if any?\n */\n public async addErrorLog(\n log: ITaskManagerStoreErrorLog,\n options?: ITaskManagerStoreAddLogOptions\n ): Promise<void> {\n if (!this.databaseLogs) {\n return;\n }\n // Log the error as well, not only into the task log.\n this.logger.error({ error: log.error, taskId: this.task.id }, \"Task reported an error.\");\n /**\n * Then update the log object.\n */\n this.taskLogUpdater.update({\n items: [\n {\n message: log.message,\n error: log.error instanceof Error ? getObjectProperties(log.error) : log.error,\n type: TaskLogItemType.ERROR,\n createdOn: new Date().toISOString()\n }\n ]\n });\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public async save(): Promise<void> {\n /**\n * Update both task and the log, if anything to update.\n */\n if (this.taskUpdater.isDirty()) {\n const changes = this.taskUpdater.fetch();\n const result = await this.updateTaskUseCase.execute<T, O>(this.task.id, changes);\n if (result.isFail()) {\n throw result.error;\n }\n this.task = result.value;\n }\n if (!this.databaseLogs) {\n return;\n }\n if (this.taskLogUpdater.isDirty()) {\n const changes = this.taskLogUpdater.fetch();\n const result = await this.updateTaskLogUseCase.execute(this.taskLog.id, changes);\n if (result.isFail()) {\n throw result.error;\n }\n this.taskLog = result.value;\n }\n }\n}\n"],"names":["getInput","originalInput","input","TaskManagerStore","params","ObjectUpdater","definitionId","where","result","param","options","data","deepEqual","values","log","TaskLogItemType","Date","Error","getObjectProperties","changes"],"mappings":";;;;AAgCA,MAAMA,WAAW,CACbC,eACAC;IAEA,IAAI,AAAiB,cAAjB,OAAOA,OACP,OAAOA,MAAMD;IAEjB,OAAO;QACH,GAAGA,aAAa;QAChB,GAAGC,KAAK;IACZ;AACJ;AAqBO,MAAMC;IAgBT,YAAmBC,MAA+B,CAAE;aAHnC,WAAW,GAAG,IAAIC;aAClB,cAAc,GAAG,IAAIA;QAGlC,IAAI,CAAC,OAAO,GAAGD,OAAO,OAAO;QAC7B,IAAI,CAAC,gBAAgB,GAAGA,OAAO,SAAS;QACxC,IAAI,CAAC,iBAAiB,GAAGA,OAAO,UAAU;QAC1C,IAAI,CAAC,oBAAoB,GAAGA,OAAO,aAAa;QAChD,IAAI,CAAC,MAAM,GAAGA,OAAO,MAAM;QAC3B,IAAI,CAAC,IAAI,GAAGA,OAAO,IAAI;QACvB,IAAI,CAAC,OAAO,GAAGA,OAAO,GAAG;QACzB,IAAI,CAAC,YAAY,GAAGA,AAAwB,SAAxBA,OAAO,YAAY;IAC3C;IAEO,YAA4B;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU;IAC/B;IAEO,UAAuB;QAC1B,OAAO,IAAI,CAAC,IAAI;IACpB;IAEA,MAAa,eAGXE,YAAqB,EAA0B;QAC7C,MAAMC,QAA8B;YAChC,UAAU,IAAI,CAAC,IAAI,CAAC,EAAE;QAC1B;QACA,IAAID,cACAC,MAAM,YAAY,GAAGD;QAEzB,MAAME,SAAS,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAO;YACrDD;YACA,MAAM;gBAAC;aAAgB;YACvB,OAAO;QACX;QACA,IAAIC,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;QAEtB,OAAOA,OAAO,KAAK,CAAC,KAAK;IAC7B;IAEA,MAAa,WACTC,KAA8C,EAC9CC,OAA4C,EAC/B;QACb,MAAMC,OAAO,AAAiB,cAAjB,OAAOF,QAAuBA,MAAM,IAAI,CAAC,IAAI,IAAIA;QAK9D,IAAIG,WAAUD,MAAM,IAAI,CAAC,IAAI,GACzB;QAGJ,IAAI,CAAC,WAAW,CAAC,MAAM,CAACA;QAExB,IAAID,SAAS,SAAS,OAClB;QAEJ,MAAM,IAAI,CAAC,IAAI;IACnB;IAEA,MAAa,YACTD,KAA+C,EAC/CC,OAAiD,EACpC;QACb,MAAMR,QAAQF,SAAY,IAAI,CAAC,IAAI,CAAC,KAAK,EAAES;QAK3C,IAAIG,WAAUV,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAChC;QAEJ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACpB,OAAOA;QACX;QACA,IAAIQ,SAAS,SAAS,OAClB;QAEJ,MAAM,IAAI,CAAC,IAAI;IACnB;IAEO,WAAc;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK;IAC1B;IAEA,MAAa,aACTG,MAAkB,EAClBH,UAA6C,CAAC,CAAC,EAClC;QACb,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACpB,QAAQG;QACZ;QACA,IAAIH,SAAS,SAAS,OAClB;QAEJ,MAAM,IAAI,CAAC,IAAI;IACnB;IAEO,YAAe;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM;IAC3B;IAKA,MAAa,WACTI,GAA6B,EAC7BJ,OAAwC,EAC3B;QACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAClB;QAEJ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YACvB,OAAO;gBACH;oBACI,SAASI,IAAI,OAAO;oBACpB,MAAMA,IAAI,IAAI;oBACd,MAAMC,gBAAgB,IAAI;oBAC1B,WAAW,IAAIC,OAAO,WAAW;gBACrC;aACH;QACL;QACA,IAAIN,SAAS,SAAS,OAClB;QAGJ,MAAM,IAAI,CAAC,IAAI;IACnB;IAKA,MAAa,YACTI,GAA8B,EAC9BJ,OAAwC,EAC3B;QACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAClB;QAGJ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,OAAOI,IAAI,KAAK;YAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE;QAAC,GAAG;QAI9D,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YACvB,OAAO;gBACH;oBACI,SAASA,IAAI,OAAO;oBACpB,OAAOA,IAAI,KAAK,YAAYG,QAAQC,oBAAoBJ,IAAI,KAAK,IAAIA,IAAI,KAAK;oBAC9E,MAAMC,gBAAgB,KAAK;oBAC3B,WAAW,IAAIC,OAAO,WAAW;gBACrC;aACH;QACL;QACA,IAAIN,SAAS,SAAS,OAClB;QAEJ,MAAM,IAAI,CAAC,IAAI;IACnB;IAEA,MAAa,OAAsB;QAI/B,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI;YAC5B,MAAMS,UAAU,IAAI,CAAC,WAAW,CAAC,KAAK;YACtC,MAAMX,SAAS,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAO,IAAI,CAAC,IAAI,CAAC,EAAE,EAAEW;YACxE,IAAIX,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;YAEtB,IAAI,CAAC,IAAI,GAAGA,OAAO,KAAK;QAC5B;QACA,IAAI,CAAC,IAAI,CAAC,YAAY,EAClB;QAEJ,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI;YAC/B,MAAMW,UAAU,IAAI,CAAC,cAAc,CAAC,KAAK;YACzC,MAAMX,SAAS,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAEW;YACxE,IAAIX,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;YAEtB,IAAI,CAAC,OAAO,GAAGA,OAAO,KAAK;QAC/B;IACJ;AACJ"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ITaskRawEvent } from "../../api/handler/types.js";
|
|
2
|
+
import type { ITaskEventValidation, ITaskRunner } from "./abstractions/index.js";
|
|
3
|
+
import type { Context } from "../../api/types.js";
|
|
4
|
+
import type { IResponseResult } from "../../api/response/abstractions/index.js";
|
|
5
|
+
import type { Timer } from "../../api/abstractions/Timer.js";
|
|
6
|
+
export declare class TaskRunner<C extends Context = Context> implements ITaskRunner<C> {
|
|
7
|
+
/**
|
|
8
|
+
* When DI is introduced, these will get injected.
|
|
9
|
+
*
|
|
10
|
+
* container.bind<Request>("Request").toConstantValue(request);
|
|
11
|
+
* @inject("Request") public readonly request: Request;
|
|
12
|
+
*
|
|
13
|
+
* Follow the same example for the rest of the properties.
|
|
14
|
+
*/
|
|
15
|
+
readonly context: C;
|
|
16
|
+
readonly timer: Timer.Interface;
|
|
17
|
+
private readonly validation;
|
|
18
|
+
/**
|
|
19
|
+
* We take all required variables separately because they will get injected via DI - so less refactoring is required in the future.
|
|
20
|
+
*/
|
|
21
|
+
constructor(context: C, timer: Timer.Interface, validation: ITaskEventValidation);
|
|
22
|
+
isCloseToTimeout(seconds?: number): boolean;
|
|
23
|
+
run(rawEvent: ITaskRawEvent): Promise<IResponseResult>;
|
|
24
|
+
private getIsCloseToTimeoutMilliseconds;
|
|
25
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Response, ResponseErrorResult } from "../response/index.js";
|
|
2
|
+
import { TaskControl } from "./TaskControl.js";
|
|
3
|
+
import { getErrorProperties } from "../utils/getErrorProperties.js";
|
|
4
|
+
import { Logger } from "@webiny/api-core/features/logger/index.js";
|
|
5
|
+
import { TaskController } from "@webiny/api-core/features/task/TaskController/abstractions.js";
|
|
6
|
+
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
7
|
+
import { TaskExecutionContext } from "../features/TaskExecutionContext/index.js";
|
|
8
|
+
import { GetTaskUseCase } from "../features/GetTask/index.js";
|
|
9
|
+
import { ListTasksUseCase } from "../features/ListTasks/index.js";
|
|
10
|
+
import { CreateTaskLogUseCase } from "../features/CreateTaskLog/index.js";
|
|
11
|
+
import { GetLatestTaskLogUseCase } from "../features/GetLatestTaskLog/index.js";
|
|
12
|
+
import { UpdateTaskLogUseCase } from "../features/UpdateTaskLog/index.js";
|
|
13
|
+
import { UpdateTaskUseCase } from "../features/UpdateTask/index.js";
|
|
14
|
+
import { GetRunnableTaskDefinitionUseCase } from "../features/GetRunnableTaskDefinition/abstractions.js";
|
|
15
|
+
const transformMinutesIntoMilliseconds = (minutes)=>60000 * minutes;
|
|
16
|
+
const DEFAULT_TASKS_TIMEOUT_CLOSE_MINUTES = 3;
|
|
17
|
+
class TaskRunner {
|
|
18
|
+
constructor(context, timer, validation){
|
|
19
|
+
this.context = context;
|
|
20
|
+
this.timer = timer;
|
|
21
|
+
this.validation = validation;
|
|
22
|
+
}
|
|
23
|
+
isCloseToTimeout(seconds) {
|
|
24
|
+
const milliseconds = seconds ? 1000 * seconds : this.getIsCloseToTimeoutMilliseconds();
|
|
25
|
+
return this.timer.getRemainingMilliseconds() < milliseconds;
|
|
26
|
+
}
|
|
27
|
+
async run(rawEvent) {
|
|
28
|
+
const response = new Response({
|
|
29
|
+
...rawEvent
|
|
30
|
+
});
|
|
31
|
+
let event;
|
|
32
|
+
try {
|
|
33
|
+
event = this.validation.validate(rawEvent);
|
|
34
|
+
} catch (ex) {
|
|
35
|
+
return response.error({
|
|
36
|
+
error: getErrorProperties(ex)
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
response.setEvent(event);
|
|
40
|
+
if (rawEvent.delay && rawEvent.delay > 0) return response.continue({
|
|
41
|
+
input: {},
|
|
42
|
+
wait: rawEvent.delay
|
|
43
|
+
});
|
|
44
|
+
const container = this.context.container;
|
|
45
|
+
const deps = {
|
|
46
|
+
logger: container.resolve(Logger),
|
|
47
|
+
identityContext: container.resolve(IdentityContext),
|
|
48
|
+
taskExecutionContext: container.resolve(TaskExecutionContext),
|
|
49
|
+
getTask: container.resolve(GetTaskUseCase),
|
|
50
|
+
listTasks: container.resolve(ListTasksUseCase),
|
|
51
|
+
updateTask: container.resolve(UpdateTaskUseCase),
|
|
52
|
+
getLatestTaskLog: container.resolve(GetLatestTaskLogUseCase),
|
|
53
|
+
createTaskLog: container.resolve(CreateTaskLogUseCase),
|
|
54
|
+
updateTaskLog: container.resolve(UpdateTaskLogUseCase),
|
|
55
|
+
taskController: container.resolve(TaskController),
|
|
56
|
+
getRunnableTaskDefinition: container.resolve(GetRunnableTaskDefinitionUseCase)
|
|
57
|
+
};
|
|
58
|
+
const logger = deps.logger;
|
|
59
|
+
const control = new TaskControl(this, response, this.context, deps);
|
|
60
|
+
try {
|
|
61
|
+
const result = await control.run(event);
|
|
62
|
+
if (result instanceof ResponseErrorResult === false) return result;
|
|
63
|
+
logger.error({
|
|
64
|
+
taskId: event.webinyTaskId,
|
|
65
|
+
result
|
|
66
|
+
}, "Task returned an error result.");
|
|
67
|
+
return result;
|
|
68
|
+
} catch (ex) {
|
|
69
|
+
logger.error({
|
|
70
|
+
error: getErrorProperties(ex),
|
|
71
|
+
taskId: event.webinyTaskId
|
|
72
|
+
}, "Failed to execute task.");
|
|
73
|
+
return response.error({
|
|
74
|
+
error: getErrorProperties(ex)
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
getIsCloseToTimeoutMilliseconds() {
|
|
79
|
+
const value = parseInt(process.env["WEBINY_TASKS_TIMEOUT_CLOSE_MINUTES"] || "");
|
|
80
|
+
const result = value > 0 ? value : DEFAULT_TASKS_TIMEOUT_CLOSE_MINUTES;
|
|
81
|
+
return transformMinutesIntoMilliseconds(result);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export { TaskRunner };
|
|
85
|
+
|
|
86
|
+
//# sourceMappingURL=TaskRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/runner/TaskRunner.js","sources":["../../../src/api/runner/TaskRunner.ts"],"sourcesContent":["import type { ITaskEvent, ITaskRawEvent } from \"~/api/handler/types.js\";\nimport type { ITaskEventValidation, ITaskRunner } from \"./abstractions/index.js\";\nimport type { Context } from \"~/api/types.js\";\nimport { Response, ResponseErrorResult } from \"~/api/response/index.js\";\nimport { TaskControl } from \"./TaskControl.js\";\nimport type { IResponseResult } from \"~/api/response/abstractions/index.js\";\nimport { getErrorProperties } from \"~/api/utils/getErrorProperties.js\";\nimport type { Timer } from \"~/api/abstractions/Timer.js\";\nimport { Logger } from \"@webiny/api-core/features/logger/index.js\";\nimport { TaskController } from \"@webiny/api-core/features/task/TaskController/abstractions.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { TaskExecutionContext } from \"~/api/features/TaskExecutionContext/index.js\";\nimport { GetTaskUseCase } from \"~/api/features/GetTask/index.js\";\nimport { ListTasksUseCase } from \"~/api/features/ListTasks/index.js\";\nimport { CreateTaskLogUseCase } from \"~/api/features/CreateTaskLog/index.js\";\nimport { GetLatestTaskLogUseCase } from \"~/api/features/GetLatestTaskLog/index.js\";\nimport { UpdateTaskLogUseCase } from \"~/api/features/UpdateTaskLog/index.js\";\nimport { UpdateTaskUseCase } from \"~/api/features/UpdateTask/index.js\";\nimport { GetRunnableTaskDefinitionUseCase } from \"~/api/features/GetRunnableTaskDefinition/abstractions.js\";\nimport type { ITaskControlDependencies } from \"./TaskControl.js\";\n\nconst transformMinutesIntoMilliseconds = (minutes: number) => {\n return minutes * 60000;\n};\n\nconst DEFAULT_TASKS_TIMEOUT_CLOSE_MINUTES = 3;\n\nexport class TaskRunner<C extends Context = Context> implements ITaskRunner<C> {\n /**\n * When DI is introduced, these will get injected.\n *\n * container.bind<Request>(\"Request\").toConstantValue(request);\n * @inject(\"Request\") public readonly request: Request;\n *\n * Follow the same example for the rest of the properties.\n */\n public readonly context: C;\n public readonly timer: Timer.Interface;\n private readonly validation: ITaskEventValidation;\n\n /**\n * We take all required variables separately because they will get injected via DI - so less refactoring is required in the future.\n */\n public constructor(context: C, timer: Timer.Interface, validation: ITaskEventValidation) {\n this.context = context;\n this.timer = timer;\n this.validation = validation;\n }\n\n public isCloseToTimeout(seconds?: number) {\n const milliseconds = seconds ? seconds * 1000 : this.getIsCloseToTimeoutMilliseconds();\n return this.timer.getRemainingMilliseconds() < milliseconds;\n }\n\n public async run(rawEvent: ITaskRawEvent): Promise<IResponseResult> {\n const response = new Response({\n ...rawEvent\n });\n\n let event: ITaskEvent;\n try {\n event = this.validation.validate(rawEvent);\n } catch (ex) {\n return response.error({\n error: getErrorProperties(ex)\n });\n }\n response.setEvent(event);\n /**\n * If we received a delay when initiating the task, we need to send the continue response immediately.\n */\n if (rawEvent.delay && rawEvent.delay > 0) {\n return response.continue({\n input: {},\n wait: rawEvent.delay\n });\n }\n\n // Resolved here, where the control's collaborators are assembled. TaskControl is built\n // by hand rather than by DI, so this is the one place that knows how to satisfy it; doing\n // it inside TaskControl's methods instead would leave the class with dependencies nothing\n // reading its signature can see, and nothing in a test can substitute.\n const container = this.context.container;\n const deps: ITaskControlDependencies = {\n logger: container.resolve(Logger),\n identityContext: container.resolve(IdentityContext),\n taskExecutionContext: container.resolve(TaskExecutionContext),\n getTask: container.resolve(GetTaskUseCase),\n listTasks: container.resolve(ListTasksUseCase),\n updateTask: container.resolve(UpdateTaskUseCase),\n getLatestTaskLog: container.resolve(GetLatestTaskLogUseCase),\n createTaskLog: container.resolve(CreateTaskLogUseCase),\n updateTaskLog: container.resolve(UpdateTaskLogUseCase),\n taskController: container.resolve(TaskController),\n getRunnableTaskDefinition: container.resolve(GetRunnableTaskDefinitionUseCase)\n };\n const logger = deps.logger;\n const control = new TaskControl(this, response, this.context, deps);\n\n try {\n const result = await control.run(event);\n if (result instanceof ResponseErrorResult === false) {\n return result;\n }\n logger.error({ taskId: event.webinyTaskId, result }, \"Task returned an error result.\");\n return result;\n } catch (ex) {\n logger.error(\n { error: getErrorProperties(ex), taskId: event.webinyTaskId },\n \"Failed to execute task.\"\n );\n return response.error({\n error: getErrorProperties(ex)\n });\n }\n }\n\n private getIsCloseToTimeoutMilliseconds() {\n const value = parseInt(process.env[\"WEBINY_TASKS_TIMEOUT_CLOSE_MINUTES\"] || \"\");\n const result = value > 0 ? value : DEFAULT_TASKS_TIMEOUT_CLOSE_MINUTES;\n return transformMinutesIntoMilliseconds(result);\n }\n}\n"],"names":["transformMinutesIntoMilliseconds","minutes","DEFAULT_TASKS_TIMEOUT_CLOSE_MINUTES","TaskRunner","context","timer","validation","seconds","milliseconds","rawEvent","response","Response","event","ex","getErrorProperties","container","deps","Logger","IdentityContext","TaskExecutionContext","GetTaskUseCase","ListTasksUseCase","UpdateTaskUseCase","GetLatestTaskLogUseCase","CreateTaskLogUseCase","UpdateTaskLogUseCase","TaskController","GetRunnableTaskDefinitionUseCase","logger","control","TaskControl","result","ResponseErrorResult","value","parseInt","process"],"mappings":";;;;;;;;;;;;;;AAqBA,MAAMA,mCAAmC,CAACC,UAC/BA,AAAU,QAAVA;AAGX,MAAMC,sCAAsC;AAErC,MAAMC;IAgBT,YAAmBC,OAAU,EAAEC,KAAsB,EAAEC,UAAgC,CAAE;QACrF,IAAI,CAAC,OAAO,GAAGF;QACf,IAAI,CAAC,KAAK,GAAGC;QACb,IAAI,CAAC,UAAU,GAAGC;IACtB;IAEO,iBAAiBC,OAAgB,EAAE;QACtC,MAAMC,eAAeD,UAAUA,AAAU,OAAVA,UAAiB,IAAI,CAAC,+BAA+B;QACpF,OAAO,IAAI,CAAC,KAAK,CAAC,wBAAwB,KAAKC;IACnD;IAEA,MAAa,IAAIC,QAAuB,EAA4B;QAChE,MAAMC,WAAW,IAAIC,SAAS;YAC1B,GAAGF,QAAQ;QACf;QAEA,IAAIG;QACJ,IAAI;YACAA,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAACH;QACrC,EAAE,OAAOI,IAAI;YACT,OAAOH,SAAS,KAAK,CAAC;gBAClB,OAAOI,mBAAmBD;YAC9B;QACJ;QACAH,SAAS,QAAQ,CAACE;QAIlB,IAAIH,SAAS,KAAK,IAAIA,SAAS,KAAK,GAAG,GACnC,OAAOC,SAAS,QAAQ,CAAC;YACrB,OAAO,CAAC;YACR,MAAMD,SAAS,KAAK;QACxB;QAOJ,MAAMM,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS;QACxC,MAAMC,OAAiC;YACnC,QAAQD,UAAU,OAAO,CAACE;YAC1B,iBAAiBF,UAAU,OAAO,CAACG;YACnC,sBAAsBH,UAAU,OAAO,CAACI;YACxC,SAASJ,UAAU,OAAO,CAACK;YAC3B,WAAWL,UAAU,OAAO,CAACM;YAC7B,YAAYN,UAAU,OAAO,CAACO;YAC9B,kBAAkBP,UAAU,OAAO,CAACQ;YACpC,eAAeR,UAAU,OAAO,CAACS;YACjC,eAAeT,UAAU,OAAO,CAACU;YACjC,gBAAgBV,UAAU,OAAO,CAACW;YAClC,2BAA2BX,UAAU,OAAO,CAACY;QACjD;QACA,MAAMC,SAASZ,KAAK,MAAM;QAC1B,MAAMa,UAAU,IAAIC,YAAY,IAAI,EAAEpB,UAAU,IAAI,CAAC,OAAO,EAAEM;QAE9D,IAAI;YACA,MAAMe,SAAS,MAAMF,QAAQ,GAAG,CAACjB;YACjC,IAAImB,kBAAkBC,wBAAwB,OAC1C,OAAOD;YAEXH,OAAO,KAAK,CAAC;gBAAE,QAAQhB,MAAM,YAAY;gBAAEmB;YAAO,GAAG;YACrD,OAAOA;QACX,EAAE,OAAOlB,IAAI;YACTe,OAAO,KAAK,CACR;gBAAE,OAAOd,mBAAmBD;gBAAK,QAAQD,MAAM,YAAY;YAAC,GAC5D;YAEJ,OAAOF,SAAS,KAAK,CAAC;gBAClB,OAAOI,mBAAmBD;YAC9B;QACJ;IACJ;IAEQ,kCAAkC;QACtC,MAAMoB,QAAQC,SAASC,QAAQ,GAAG,CAAC,qCAAqC,IAAI;QAC5E,MAAMJ,SAASE,QAAQ,IAAIA,QAAQ/B;QACnC,OAAOF,iCAAiC+B;IAC5C;AACJ"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ITaskRunner } from "../../../api/runner/abstractions/index.js";
|
|
2
|
+
import type { IResponse, IResponseResult } from "../../../api/response/abstractions/index.js";
|
|
3
|
+
import type { Context } from "../../../api/types.js";
|
|
4
|
+
import type { ITaskEvent } from "../../../api/handler/types.js";
|
|
5
|
+
export interface ITaskControl {
|
|
6
|
+
runner: ITaskRunner;
|
|
7
|
+
response: IResponse;
|
|
8
|
+
context: Context;
|
|
9
|
+
run(event: ITaskEvent): Promise<IResponseResult>;
|
|
10
|
+
}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IResponseResult } from "../../../api/response/abstractions/index.js";
|
|
2
|
+
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
3
|
+
export interface ITaskManager {
|
|
4
|
+
run: (definition: TaskDefinition.Runnable) => Promise<IResponseResult>;
|
|
5
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { IResponseError, ITask, ITaskLogItemData, ITaskUpdateData, TaskDataStatus } from "../../../api/types.js";
|
|
2
|
+
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
3
|
+
export type ITaskManagerStoreUpdateTaskValues<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput> = T;
|
|
4
|
+
export interface ITaskManagerStoreUpdateTaskValuesCb<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput> {
|
|
5
|
+
(input: T): T;
|
|
6
|
+
}
|
|
7
|
+
export interface ITaskManagerStoreUpdateTaskInputOptions {
|
|
8
|
+
save: boolean;
|
|
9
|
+
}
|
|
10
|
+
export type ITaskManagerStoreUpdateTaskInputParam<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput> = ITaskManagerStoreUpdateTaskValuesCb<T> | Partial<ITaskManagerStoreUpdateTaskValues<T>>;
|
|
11
|
+
export interface ITaskManagerStoreUpdateTaskParamCb<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> {
|
|
12
|
+
(task: ITask<T, O>): ITaskUpdateData<T, O>;
|
|
13
|
+
}
|
|
14
|
+
export type ITaskManagerStoreUpdateTask<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> = ITaskUpdateData<T, O>;
|
|
15
|
+
export type ITaskManagerStoreUpdateTaskParams<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> = ITaskManagerStoreUpdateTaskParamCb<T, O> | Partial<ITaskManagerStoreUpdateTask<T, O>>;
|
|
16
|
+
export interface ITaskManagerStoreInfoLog {
|
|
17
|
+
message: string;
|
|
18
|
+
data?: ITaskLogItemData;
|
|
19
|
+
}
|
|
20
|
+
export interface ITaskManagerStoreErrorLog {
|
|
21
|
+
message: string;
|
|
22
|
+
data?: ITaskLogItemData;
|
|
23
|
+
error: IResponseError | Error;
|
|
24
|
+
}
|
|
25
|
+
export interface ITaskManagerStoreSetOutputOptions {
|
|
26
|
+
/**
|
|
27
|
+
* Default is true.
|
|
28
|
+
*/
|
|
29
|
+
save?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface ITaskManagerStoreUpdateTaskOptions {
|
|
32
|
+
/**
|
|
33
|
+
* Default is true.
|
|
34
|
+
*/
|
|
35
|
+
save?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface ITaskManagerStoreAddLogOptions {
|
|
38
|
+
/**
|
|
39
|
+
* Default is true.
|
|
40
|
+
*/
|
|
41
|
+
save?: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Interface should not be used outside the @webiny/background-tasks package.
|
|
45
|
+
*/
|
|
46
|
+
export interface ITaskManagerStorePrivate<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> {
|
|
47
|
+
getTask: () => ITask<T, O>;
|
|
48
|
+
getStatus: () => TaskDataStatus;
|
|
49
|
+
/**
|
|
50
|
+
* @throws {Error} If task not found or something goes wrong during the database update.
|
|
51
|
+
*/
|
|
52
|
+
updateTask(params: ITaskManagerStoreUpdateTaskParams<T, O>, options?: ITaskManagerStoreUpdateTaskOptions): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* List all child tasks of the current task.
|
|
55
|
+
* If definitionId is provided, filter by that parameter.
|
|
56
|
+
*/
|
|
57
|
+
listChildTasks<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput>(definitionId?: string): Promise<ITask<T, O>[]>;
|
|
58
|
+
/**
|
|
59
|
+
* Update the task input, which are used to store custom user data.
|
|
60
|
+
* You can send partial input, and it will be merged with the existing input.
|
|
61
|
+
*
|
|
62
|
+
* @throws {Error} If task not found or something goes wrong during the database update.
|
|
63
|
+
*/
|
|
64
|
+
updateInput: (params: ITaskManagerStoreUpdateTaskInputParam<T>, options?: ITaskManagerStoreUpdateTaskInputOptions) => Promise<void>;
|
|
65
|
+
getInput: () => T;
|
|
66
|
+
/**
|
|
67
|
+
* Update the task output, which are used to store the output data.
|
|
68
|
+
* You can send partial output, and it will be merged with the existing output.
|
|
69
|
+
*
|
|
70
|
+
* Second parameter is optional options, and it contains a possibility not to store the task immediately.
|
|
71
|
+
*
|
|
72
|
+
* @throws {Error} If task not found or something goes wrong during the database update.
|
|
73
|
+
*/
|
|
74
|
+
updateOutput: (values: Partial<O>, options?: ITaskManagerStoreSetOutputOptions) => Promise<void>;
|
|
75
|
+
getOutput: () => O;
|
|
76
|
+
/**
|
|
77
|
+
* @throws {Error} If task not found or something goes wrong during the database update.
|
|
78
|
+
*/
|
|
79
|
+
addInfoLog: (log: ITaskManagerStoreInfoLog) => Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* @throws {Error} If task not found or something goes wrong during the database update.
|
|
82
|
+
*
|
|
83
|
+
*
|
|
84
|
+
*/
|
|
85
|
+
addErrorLog: (log: ITaskManagerStoreErrorLog) => Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Should store the task and logs into the database, if any.
|
|
88
|
+
* If nothing to update, it should skip calling the internal store methods.
|
|
89
|
+
*/
|
|
90
|
+
save(): Promise<void>;
|
|
91
|
+
}
|
|
92
|
+
export type ITaskManagerStore<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> = Omit<ITaskManagerStorePrivate<T, O>, "save">;
|
|
File without changes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Context } from "../../../api/types.js";
|
|
2
|
+
import type { ITaskEvent } from "../../../api/handler/types.js";
|
|
3
|
+
import type { IResponseResult } from "../../../api/response/abstractions/index.js";
|
|
4
|
+
import type { Timer } from "../../../api/abstractions/Timer.js";
|
|
5
|
+
export interface IIsCloseToTimeoutCallable {
|
|
6
|
+
(seconds?: number): boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface ITaskRunner<C extends Context = Context> {
|
|
9
|
+
context: C;
|
|
10
|
+
isCloseToTimeout: IIsCloseToTimeoutCallable;
|
|
11
|
+
timer: Timer.Interface;
|
|
12
|
+
run(event: ITaskEvent): Promise<IResponseResult>;
|
|
13
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./TaskRunner.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./TaskRunner.js";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TaskDefinition, TaskHandler } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
2
|
+
declare class TestingRunTaskHandler implements TaskHandler.Interface {
|
|
3
|
+
run({ controller }: TaskHandler.RunParams): Promise<TaskDefinition.ResultDone<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
4
|
+
}
|
|
5
|
+
export declare const TestingRunTaskHandlerImplementation: typeof TestingRunTaskHandler & {
|
|
6
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskHandler<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
7
|
+
};
|
|
8
|
+
declare class TestingRunTask implements TaskDefinition.Interface {
|
|
9
|
+
id: string;
|
|
10
|
+
title: string;
|
|
11
|
+
description: string;
|
|
12
|
+
handler: typeof TestingRunTaskHandler & {
|
|
13
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskHandler<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export declare const TestingRunTaskDefinition: typeof TestingRunTask & {
|
|
17
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskDefinition<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { TaskDefinition, TaskHandler } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
2
|
+
class TestingRunTaskHandler {
|
|
3
|
+
async run({ controller }) {
|
|
4
|
+
return controller.response.done("Task successfully finished.");
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
const TestingRunTaskHandlerImplementation = TaskHandler.createImplementation({
|
|
8
|
+
implementation: TestingRunTaskHandler,
|
|
9
|
+
dependencies: []
|
|
10
|
+
});
|
|
11
|
+
class TestingRunTask {
|
|
12
|
+
constructor(){
|
|
13
|
+
this.id = "testingRun";
|
|
14
|
+
this.title = "Test Step Function Permissions";
|
|
15
|
+
this.description = "A task to test the step function permissions.";
|
|
16
|
+
this.handler = TestingRunTaskHandlerImplementation;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const TestingRunTaskDefinition = TaskDefinition.createImplementation({
|
|
20
|
+
implementation: TestingRunTask,
|
|
21
|
+
dependencies: []
|
|
22
|
+
});
|
|
23
|
+
export { TestingRunTaskDefinition, TestingRunTaskHandlerImplementation };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=testingRunTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/tasks/testingRunTask.js","sources":["../../../src/api/tasks/testingRunTask.ts"],"sourcesContent":["import {\n TaskDefinition,\n TaskHandler\n} from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nclass TestingRunTaskHandler implements TaskHandler.Interface {\n async run({ controller }: TaskHandler.RunParams) {\n return controller.response.done(\"Task successfully finished.\");\n }\n}\n\nexport const TestingRunTaskHandlerImplementation = TaskHandler.createImplementation({\n implementation: TestingRunTaskHandler,\n dependencies: []\n});\n\nclass TestingRunTask implements TaskDefinition.Interface {\n id = \"testingRun\";\n title = \"Test Step Function Permissions\";\n description = \"A task to test the step function permissions.\";\n handler = TestingRunTaskHandlerImplementation;\n}\n\nexport const TestingRunTaskDefinition = TaskDefinition.createImplementation({\n implementation: TestingRunTask,\n dependencies: []\n});\n"],"names":["TestingRunTaskHandler","controller","TestingRunTaskHandlerImplementation","TaskHandler","TestingRunTask","TestingRunTaskDefinition","TaskDefinition"],"mappings":";AAKA,MAAMA;IACF,MAAM,IAAI,EAAEC,UAAU,EAAyB,EAAE;QAC7C,OAAOA,WAAW,QAAQ,CAAC,IAAI,CAAC;IACpC;AACJ;AAEO,MAAMC,sCAAsCC,YAAY,oBAAoB,CAAC;IAChF,gBAAgBH;IAChB,cAAc,EAAE;AACpB;AAEA,MAAMI;;aACF,EAAE,GAAG;aACL,KAAK,GAAG;aACR,WAAW,GAAG;aACd,OAAO,GAAGF;;AACd;AAEO,MAAMG,2BAA2BC,eAAe,oBAAoB,CAAC;IACxE,gBAAgBF;IAChB,cAAc,EAAE;AACpB"}
|