@webiny/tasks 0.0.0-unstable.6f45466a1d → 0.0.0-unstable.7be00a75a9

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.
Files changed (225) hide show
  1. package/context.js +38 -37
  2. package/context.js.map +1 -1
  3. package/crud/TaskLogPrivateModel.js +33 -24
  4. package/crud/TaskLogPrivateModel.js.map +1 -1
  5. package/crud/TaskPrivateModel.js +48 -36
  6. package/crud/TaskPrivateModel.js.map +1 -1
  7. package/crud/cleanupTaskSubtree.d.ts +8 -0
  8. package/crud/cleanupTaskSubtree.js +62 -0
  9. package/crud/cleanupTaskSubtree.js.map +1 -0
  10. package/crud/crud.tasks.js +292 -352
  11. package/crud/crud.tasks.js.map +1 -1
  12. package/crud/definition.tasks.js +13 -16
  13. package/crud/definition.tasks.js.map +1 -1
  14. package/crud/service.tasks.js +119 -155
  15. package/crud/service.tasks.js.map +1 -1
  16. package/decorators/RunnableTaskDecorator.d.ts +4 -3
  17. package/decorators/RunnableTaskDecorator.js +61 -74
  18. package/decorators/RunnableTaskDecorator.js.map +1 -1
  19. package/decorators/SelfCleaningTaskDecorator.d.ts +30 -0
  20. package/decorators/SelfCleaningTaskDecorator.js +84 -0
  21. package/decorators/SelfCleaningTaskDecorator.js.map +1 -0
  22. package/domain/errors.js +35 -39
  23. package/domain/errors.js.map +1 -1
  24. package/events/TaskAfterCreateEvent.d.ts +2 -2
  25. package/events/TaskAfterCreateEvent.js +10 -7
  26. package/events/TaskAfterCreateEvent.js.map +1 -1
  27. package/events/TaskAfterDeleteEvent.d.ts +2 -2
  28. package/events/TaskAfterDeleteEvent.js +10 -7
  29. package/events/TaskAfterDeleteEvent.js.map +1 -1
  30. package/events/TaskAfterUpdateEvent.d.ts +2 -2
  31. package/events/TaskAfterUpdateEvent.js +10 -7
  32. package/events/TaskAfterUpdateEvent.js.map +1 -1
  33. package/events/TaskBeforeCreateEvent.d.ts +2 -2
  34. package/events/TaskBeforeCreateEvent.js +10 -7
  35. package/events/TaskBeforeCreateEvent.js.map +1 -1
  36. package/events/TaskBeforeDeleteEvent.d.ts +2 -2
  37. package/events/TaskBeforeDeleteEvent.js +10 -7
  38. package/events/TaskBeforeDeleteEvent.js.map +1 -1
  39. package/events/TaskBeforeUpdateEvent.d.ts +2 -2
  40. package/events/TaskBeforeUpdateEvent.js +10 -7
  41. package/events/TaskBeforeUpdateEvent.js.map +1 -1
  42. package/events/abstractions.d.ts +13 -13
  43. package/events/abstractions.js +7 -36
  44. package/events/abstractions.js.map +1 -1
  45. package/events/index.js +0 -2
  46. package/features/AbortTask/AbortTaskUseCase.js +9 -8
  47. package/features/AbortTask/AbortTaskUseCase.js.map +1 -1
  48. package/features/AbortTask/abstractions.js +2 -1
  49. package/features/AbortTask/abstractions.js.map +1 -1
  50. package/features/AbortTask/feature.d.ts +4 -1
  51. package/features/AbortTask/feature.js +6 -5
  52. package/features/AbortTask/feature.js.map +1 -1
  53. package/features/AbortTask/index.js +0 -2
  54. package/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.d.ts +7 -0
  55. package/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js +11 -0
  56. package/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js.map +1 -0
  57. package/features/CleanupTaskSubtree/abstractions.d.ts +7 -0
  58. package/features/CleanupTaskSubtree/abstractions.js +5 -0
  59. package/features/CleanupTaskSubtree/abstractions.js.map +1 -0
  60. package/features/CleanupTaskSubtree/index.d.ts +2 -0
  61. package/features/CleanupTaskSubtree/index.js +2 -0
  62. package/features/GetTask/GetTaskUseCase.js +8 -7
  63. package/features/GetTask/GetTaskUseCase.js.map +1 -1
  64. package/features/GetTask/abstractions.js +2 -1
  65. package/features/GetTask/abstractions.js.map +1 -1
  66. package/features/GetTask/feature.d.ts +4 -1
  67. package/features/GetTask/feature.js +6 -5
  68. package/features/GetTask/feature.js.map +1 -1
  69. package/features/GetTask/index.js +0 -2
  70. package/features/GetTaskDefinition/GetTaskDefinitionUseCase.js +18 -16
  71. package/features/GetTaskDefinition/GetTaskDefinitionUseCase.js.map +1 -1
  72. package/features/GetTaskDefinition/abstractions.js +2 -1
  73. package/features/GetTaskDefinition/abstractions.js.map +1 -1
  74. package/features/GetTaskDefinition/feature.d.ts +4 -1
  75. package/features/GetTaskDefinition/feature.js +6 -5
  76. package/features/GetTaskDefinition/feature.js.map +1 -1
  77. package/features/GetTaskDefinition/index.js +0 -2
  78. package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js +18 -12
  79. package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js.map +1 -1
  80. package/features/ListTaskDefinitions/abstractions.js +2 -1
  81. package/features/ListTaskDefinitions/abstractions.js.map +1 -1
  82. package/features/ListTaskDefinitions/feature.d.ts +4 -1
  83. package/features/ListTaskDefinitions/feature.js +6 -5
  84. package/features/ListTaskDefinitions/feature.js.map +1 -1
  85. package/features/ListTaskDefinitions/index.js +0 -2
  86. package/features/ListTasks/ListTasksUseCase.js +8 -7
  87. package/features/ListTasks/ListTasksUseCase.js.map +1 -1
  88. package/features/ListTasks/abstractions.js +2 -1
  89. package/features/ListTasks/abstractions.js.map +1 -1
  90. package/features/ListTasks/feature.d.ts +4 -1
  91. package/features/ListTasks/feature.js +6 -5
  92. package/features/ListTasks/feature.js.map +1 -1
  93. package/features/ListTasks/index.js +0 -2
  94. package/features/TaskController/TaskController.js +60 -60
  95. package/features/TaskController/TaskController.js.map +1 -1
  96. package/features/TaskController/augmentation.js +0 -3
  97. package/features/TaskController/index.js +0 -5
  98. package/features/TaskExecutionContext/TaskExecutionContext.js +38 -45
  99. package/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -1
  100. package/features/TaskExecutionContext/abstractions.js +2 -10
  101. package/features/TaskExecutionContext/abstractions.js.map +1 -1
  102. package/features/TaskExecutionContext/feature.d.ts +4 -1
  103. package/features/TaskExecutionContext/feature.js +6 -5
  104. package/features/TaskExecutionContext/feature.js.map +1 -1
  105. package/features/TaskExecutionContext/index.js +0 -2
  106. package/features/TriggerTask/TriggerTaskUseCase.js +9 -8
  107. package/features/TriggerTask/TriggerTaskUseCase.js.map +1 -1
  108. package/features/TriggerTask/abstractions.js +2 -1
  109. package/features/TriggerTask/abstractions.js.map +1 -1
  110. package/features/TriggerTask/feature.d.ts +4 -1
  111. package/features/TriggerTask/feature.js +6 -5
  112. package/features/TriggerTask/feature.js.map +1 -1
  113. package/features/TriggerTask/index.js +0 -2
  114. package/global.js +0 -2
  115. package/graphql/checkPermissions.js +16 -35
  116. package/graphql/checkPermissions.js.map +1 -1
  117. package/graphql/index.js +156 -202
  118. package/graphql/index.js.map +1 -1
  119. package/graphql/utils.js +15 -14
  120. package/graphql/utils.js.map +1 -1
  121. package/handler/index.js +46 -53
  122. package/handler/index.js.map +1 -1
  123. package/handler/register.js +7 -15
  124. package/handler/register.js.map +1 -1
  125. package/handler/types.js +0 -3
  126. package/index.js +2 -4
  127. package/package.json +30 -25
  128. package/plugins/TaskServicePlugin.js +9 -6
  129. package/plugins/TaskServicePlugin.js.map +1 -1
  130. package/plugins/index.js +0 -2
  131. package/response/DatabaseResponse.js +113 -132
  132. package/response/DatabaseResponse.js.map +1 -1
  133. package/response/Response.js +78 -96
  134. package/response/Response.js.map +1 -1
  135. package/response/ResponseAbortedResult.js +8 -7
  136. package/response/ResponseAbortedResult.js.map +1 -1
  137. package/response/ResponseContinueResult.js +12 -14
  138. package/response/ResponseContinueResult.js.map +1 -1
  139. package/response/ResponseDoneResult.js +10 -9
  140. package/response/ResponseDoneResult.js.map +1 -1
  141. package/response/ResponseErrorResult.js +9 -8
  142. package/response/ResponseErrorResult.js.map +1 -1
  143. package/response/TaskResponse.js +44 -64
  144. package/response/TaskResponse.js.map +1 -1
  145. package/response/abstractions/Response.js +0 -3
  146. package/response/abstractions/ResponseAbortedResult.js +0 -3
  147. package/response/abstractions/ResponseBaseResult.js +0 -3
  148. package/response/abstractions/ResponseContinueResult.js +0 -3
  149. package/response/abstractions/ResponseDoneResult.js +0 -3
  150. package/response/abstractions/ResponseErrorResult.js +0 -3
  151. package/response/abstractions/TaskResponse.js +0 -3
  152. package/response/abstractions/index.js +0 -2
  153. package/response/index.js +0 -2
  154. package/runner/TaskControl.js +151 -212
  155. package/runner/TaskControl.js.map +1 -1
  156. package/runner/TaskEventValidation.js +12 -13
  157. package/runner/TaskEventValidation.js.map +1 -1
  158. package/runner/TaskManager.js +68 -106
  159. package/runner/TaskManager.js.map +1 -1
  160. package/runner/TaskManagerStore.d.ts +2 -2
  161. package/runner/TaskManagerStore.js +90 -139
  162. package/runner/TaskManagerStore.js.map +1 -1
  163. package/runner/TaskRunner.js +45 -65
  164. package/runner/TaskRunner.js.map +1 -1
  165. package/runner/abstractions/TaskControl.js +0 -3
  166. package/runner/abstractions/TaskEventValidation.js +0 -3
  167. package/runner/abstractions/TaskManager.js +0 -3
  168. package/runner/abstractions/TaskManagerStore.js +0 -3
  169. package/runner/abstractions/TaskRunner.js +0 -3
  170. package/runner/abstractions/index.js +0 -2
  171. package/runner/index.js +0 -2
  172. package/service/EventBridgeEventTransportPlugin.js +43 -42
  173. package/service/EventBridgeEventTransportPlugin.js.map +1 -1
  174. package/service/StepFunctionServicePlugin.js +65 -66
  175. package/service/StepFunctionServicePlugin.js.map +1 -1
  176. package/service/createService.js +10 -13
  177. package/service/createService.js.map +1 -1
  178. package/service/index.js +7 -5
  179. package/service/index.js.map +1 -1
  180. package/tasks/testingRunTask.js +11 -10
  181. package/tasks/testingRunTask.js.map +1 -1
  182. package/types.d.ts +10 -1
  183. package/types.js +13 -11
  184. package/types.js.map +1 -1
  185. package/utils/ObjectUpdater.js +25 -31
  186. package/utils/ObjectUpdater.js.map +1 -1
  187. package/utils/getErrorProperties.js +5 -4
  188. package/utils/getErrorProperties.js.map +1 -1
  189. package/utils/getObjectProperties.js +8 -15
  190. package/utils/getObjectProperties.js.map +1 -1
  191. package/utils/index.js +0 -2
  192. package/utils/normalizeSelfCleanup.d.ts +2 -0
  193. package/utils/normalizeSelfCleanup.js +16 -0
  194. package/utils/normalizeSelfCleanup.js.map +1 -0
  195. package/events/index.js.map +0 -1
  196. package/features/AbortTask/index.js.map +0 -1
  197. package/features/GetTask/index.js.map +0 -1
  198. package/features/GetTaskDefinition/index.js.map +0 -1
  199. package/features/ListTaskDefinitions/index.js.map +0 -1
  200. package/features/ListTasks/index.js.map +0 -1
  201. package/features/TaskController/augmentation.js.map +0 -1
  202. package/features/TaskController/index.js.map +0 -1
  203. package/features/TaskExecutionContext/index.js.map +0 -1
  204. package/features/TriggerTask/index.js.map +0 -1
  205. package/global.js.map +0 -1
  206. package/handler/types.js.map +0 -1
  207. package/index.js.map +0 -1
  208. package/plugins/index.js.map +0 -1
  209. package/response/abstractions/Response.js.map +0 -1
  210. package/response/abstractions/ResponseAbortedResult.js.map +0 -1
  211. package/response/abstractions/ResponseBaseResult.js.map +0 -1
  212. package/response/abstractions/ResponseContinueResult.js.map +0 -1
  213. package/response/abstractions/ResponseDoneResult.js.map +0 -1
  214. package/response/abstractions/ResponseErrorResult.js.map +0 -1
  215. package/response/abstractions/TaskResponse.js.map +0 -1
  216. package/response/abstractions/index.js.map +0 -1
  217. package/response/index.js.map +0 -1
  218. package/runner/abstractions/TaskControl.js.map +0 -1
  219. package/runner/abstractions/TaskEventValidation.js.map +0 -1
  220. package/runner/abstractions/TaskManager.js.map +0 -1
  221. package/runner/abstractions/TaskManagerStore.js.map +0 -1
  222. package/runner/abstractions/TaskRunner.js.map +0 -1
  223. package/runner/abstractions/index.js.map +0 -1
  224. package/runner/index.js.map +0 -1
  225. package/utils/index.js.map +0 -1
package/graphql/utils.js CHANGED
@@ -1,19 +1,20 @@
1
1
  import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "@webiny/handler-graphql";
2
- export const emptyResolver = () => ({});
3
- export const resolve = async fn => {
4
- try {
5
- return new Response(await fn());
6
- } catch (ex) {
7
- return new ErrorResponse(ex);
8
- }
2
+ const emptyResolver = ()=>({});
3
+ const resolve = async (fn)=>{
4
+ try {
5
+ return new Response(await fn());
6
+ } catch (ex) {
7
+ return new ErrorResponse(ex);
8
+ }
9
9
  };
10
- export const resolveList = async fn => {
11
- try {
12
- const result = await fn();
13
- return new ListResponse(result.items, result.meta);
14
- } catch (ex) {
15
- return new ListErrorResponse(ex);
16
- }
10
+ const resolveList = async (fn)=>{
11
+ try {
12
+ const result = await fn();
13
+ return new ListResponse(result.items, result.meta);
14
+ } catch (ex) {
15
+ return new ListErrorResponse(ex);
16
+ }
17
17
  };
18
+ export { emptyResolver, resolve, resolveList };
18
19
 
19
20
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ErrorResponse","ListErrorResponse","ListResponse","Response","emptyResolver","resolve","fn","ex","resolveList","result","items","meta"],"sources":["utils.ts"],"sourcesContent":["import { ErrorResponse, ListErrorResponse, ListResponse, Response } from \"@webiny/handler-graphql\";\nimport type { CmsEntryMeta } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport const emptyResolver = () => ({});\n\ninterface ResolveCallable<T = any> {\n (): Promise<T>;\n}\n\nexport const resolve = async <T = any>(fn: ResolveCallable<T>) => {\n try {\n return new Response(await fn());\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n};\n\ninterface IListResult {\n items: any[];\n meta: CmsEntryMeta;\n}\n\nexport const resolveList = async (fn: ResolveCallable) => {\n try {\n const result = (await fn()) as IListResult;\n return new ListResponse(result.items, result.meta);\n } catch (ex) {\n return new ListErrorResponse(ex);\n }\n};\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,iBAAiB,EAAEC,YAAY,EAAEC,QAAQ,QAAQ,yBAAyB;AAGlG,OAAO,MAAMC,aAAa,GAAGA,CAAA,MAAO,CAAC,CAAC,CAAC;AAMvC,OAAO,MAAMC,OAAO,GAAG,MAAgBC,EAAsB,IAAK;EAC9D,IAAI;IACA,OAAO,IAAIH,QAAQ,CAAC,MAAMG,EAAE,CAAC,CAAC,CAAC;EACnC,CAAC,CAAC,OAAOC,EAAE,EAAE;IACT,OAAO,IAAIP,aAAa,CAACO,EAAE,CAAC;EAChC;AACJ,CAAC;AAOD,OAAO,MAAMC,WAAW,GAAG,MAAOF,EAAmB,IAAK;EACtD,IAAI;IACA,MAAMG,MAAM,GAAI,MAAMH,EAAE,CAAC,CAAiB;IAC1C,OAAO,IAAIJ,YAAY,CAACO,MAAM,CAACC,KAAK,EAAED,MAAM,CAACE,IAAI,CAAC;EACtD,CAAC,CAAC,OAAOJ,EAAE,EAAE;IACT,OAAO,IAAIN,iBAAiB,CAACM,EAAE,CAAC;EACpC;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"graphql/utils.js","sources":["../../src/graphql/utils.ts"],"sourcesContent":["import { ErrorResponse, ListErrorResponse, ListResponse, Response } from \"@webiny/handler-graphql\";\nimport type { CmsEntryMeta } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport const emptyResolver = () => ({});\n\ninterface ResolveCallable<T = any> {\n (): Promise<T>;\n}\n\nexport const resolve = async <T = any>(fn: ResolveCallable<T>) => {\n try {\n return new Response(await fn());\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n};\n\ninterface IListResult {\n items: any[];\n meta: CmsEntryMeta;\n}\n\nexport const resolveList = async (fn: ResolveCallable) => {\n try {\n const result = (await fn()) as IListResult;\n return new ListResponse(result.items, result.meta);\n } catch (ex) {\n return new ListErrorResponse(ex);\n }\n};\n"],"names":["emptyResolver","resolve","fn","Response","ex","ErrorResponse","resolveList","result","ListResponse","ListErrorResponse"],"mappings":";AAGO,MAAMA,gBAAgB,IAAO,EAAC;AAM9B,MAAMC,UAAU,OAAgBC;IACnC,IAAI;QACA,OAAO,IAAIC,SAAS,MAAMD;IAC9B,EAAE,OAAOE,IAAI;QACT,OAAO,IAAIC,cAAcD;IAC7B;AACJ;AAOO,MAAME,cAAc,OAAOJ;IAC9B,IAAI;QACA,MAAMK,SAAU,MAAML;QACtB,OAAO,IAAIM,aAAaD,OAAO,KAAK,EAAEA,OAAO,IAAI;IACrD,EAAE,OAAOH,IAAI;QACT,OAAO,IAAIK,kBAAkBL;IACjC;AACJ"}
package/handler/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { createHandler as createBaseHandler } from "@webiny/handler";
1
+ import { createHandler } from "@webiny/handler";
2
2
  import { registerDefaultPlugins } from "@webiny/handler-aws/plugins/index.js";
3
3
  import { execute } from "@webiny/handler-aws/execute.js";
4
4
  import { TaskRunner } from "../runner/index.js";
@@ -6,57 +6,50 @@ import { timerFactory } from "@webiny/handler-aws/utils/index.js";
6
6
  import { TaskEventValidation } from "../runner/TaskEventValidation.js";
7
7
  import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
8
8
  const url = "/webiny-background-task-event";
9
- export const createHandler = params => {
10
- return async (event, context) => {
11
- const app = createBaseHandler({
12
- ...params,
13
- options: {
14
- logger: params.debug === true,
15
- ...(params.options || {})
16
- }
17
- });
18
- registerDefaultPlugins(app.webiny);
19
- app.addHook("preSerialization", async (_, __, payload) => {
20
- if (!payload.body) {
21
- return payload;
22
- }
23
- return payload.body;
24
- });
25
- await app.register(async taskApp => {
26
- taskApp.setErrorHandler(async (error, _, reply) => {
27
- app.__webiny_raw_result = {
28
- error: {
29
- message: error.message,
30
- code: error.code,
31
- data: error.data
32
- },
33
- status: TaskResultStatus.ERROR
34
- };
35
- return reply.send();
36
- });
37
- taskApp.post(url, async (_, reply) => {
38
- const handler = new TaskRunner(
39
- /**
40
- * We can safely cast because we know that the context is of type tasks/Context
41
- */
42
- app.webiny, timerFactory(context), new TaskEventValidation());
43
- app.__webiny_raw_result = await handler.run(event);
44
- return reply.send({});
45
- });
46
- });
47
- return execute({
48
- app,
49
- url,
50
- payload: {
51
- ...event,
52
- headers: {
53
- ["x-tenant"]: event.tenant,
54
- ["x-webiny-cms-endpoint"]: event.endpoint,
55
- ["accept-language"]: "en-US"
56
- }
57
- }
58
- });
59
- };
60
- };
9
+ const handler_createHandler = (params)=>async (event, context)=>{
10
+ const app = createHandler({
11
+ ...params,
12
+ options: {
13
+ logger: true === params.debug,
14
+ ...params.options || {}
15
+ }
16
+ });
17
+ registerDefaultPlugins(app.webiny);
18
+ app.addHook("preSerialization", async (_, __, payload)=>{
19
+ if (!payload.body) return payload;
20
+ return payload.body;
21
+ });
22
+ await app.register(async (taskApp)=>{
23
+ taskApp.setErrorHandler(async (error, _, reply)=>{
24
+ app.__webiny_raw_result = {
25
+ error: {
26
+ message: error.message,
27
+ code: error.code,
28
+ data: error.data
29
+ },
30
+ status: TaskResultStatus.ERROR
31
+ };
32
+ return reply.send();
33
+ });
34
+ taskApp.post(url, async (_, reply)=>{
35
+ const handler = new TaskRunner(app.webiny, timerFactory(context), new TaskEventValidation());
36
+ app.__webiny_raw_result = await handler.run(event);
37
+ return reply.send({});
38
+ });
39
+ });
40
+ return execute({
41
+ app,
42
+ url: url,
43
+ payload: {
44
+ ...event,
45
+ headers: {
46
+ ["x-tenant"]: event.tenant,
47
+ ["x-webiny-cms-endpoint"]: event.endpoint,
48
+ ["accept-language"]: "en-US"
49
+ }
50
+ }
51
+ });
52
+ };
53
+ export { handler_createHandler as createHandler };
61
54
 
62
55
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createHandler","createBaseHandler","registerDefaultPlugins","execute","TaskRunner","timerFactory","TaskEventValidation","TaskResultStatus","url","params","event","context","app","options","logger","debug","webiny","addHook","_","__","payload","body","register","taskApp","setErrorHandler","error","reply","__webiny_raw_result","message","code","data","status","ERROR","send","post","handler","run","headers","tenant","endpoint"],"sources":["index.ts"],"sourcesContent":["import { createHandler as createBaseHandler } from \"@webiny/handler\";\nimport { registerDefaultPlugins } from \"@webiny/handler-aws/plugins/index.js\";\nimport { execute } from \"@webiny/handler-aws/execute.js\";\nimport type {\n APIGatewayProxyResult,\n Context as LambdaContext\n} from \"@webiny/aws-sdk/types/index.js\";\nimport type { Context } from \"~/types.js\";\nimport type { HandlerParams, ITaskRawEvent } from \"~/handler/types.js\";\nimport { TaskRunner } from \"~/runner/index.js\";\nimport type WebinyError from \"@webiny/error\";\nimport { timerFactory } from \"@webiny/handler-aws/utils/index.js\";\nimport { TaskEventValidation } from \"~/runner/TaskEventValidation.js\";\nimport { TaskResultStatus } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface HandlerCallable {\n (event: ITaskRawEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;\n}\n\nconst url = \"/webiny-background-task-event\";\n\nexport const createHandler = (params: HandlerParams): HandlerCallable => {\n return async (event, context) => {\n const app = createBaseHandler({\n ...params,\n options: {\n logger: params.debug === true,\n ...(params.options || {})\n }\n });\n\n registerDefaultPlugins(app.webiny);\n\n app.addHook(\"preSerialization\", async (_, __, payload: Record<string, any>) => {\n if (!payload.body) {\n return payload;\n }\n return payload.body;\n });\n\n await app.register(async taskApp => {\n taskApp.setErrorHandler<WebinyError>(async (error, _, reply) => {\n app.__webiny_raw_result = {\n error: {\n message: error.message,\n code: error.code,\n data: error.data\n },\n status: TaskResultStatus.ERROR\n };\n return reply.send();\n });\n\n taskApp.post(url, async (_, reply) => {\n const handler = new TaskRunner(\n /**\n * We can safely cast because we know that the context is of type tasks/Context\n */\n app.webiny as Context,\n timerFactory(context),\n new TaskEventValidation()\n );\n\n app.__webiny_raw_result = await handler.run(event);\n return reply.send({});\n });\n });\n\n return execute({\n app,\n url,\n payload: {\n ...event,\n headers: {\n [\"x-tenant\"]: event.tenant,\n [\"x-webiny-cms-endpoint\"]: event.endpoint,\n [\"accept-language\"]: \"en-US\"\n }\n }\n });\n };\n};\n"],"mappings":"AAAA,SAASA,aAAa,IAAIC,iBAAiB,QAAQ,iBAAiB;AACpE,SAASC,sBAAsB,QAAQ,sCAAsC;AAC7E,SAASC,OAAO,QAAQ,gCAAgC;AAOxD,SAASC,UAAU;AAEnB,SAASC,YAAY,QAAQ,oCAAoC;AACjE,SAASC,mBAAmB;AAC5B,SAASC,gBAAgB,QAAQ,wDAAwD;AAMzF,MAAMC,GAAG,GAAG,+BAA+B;AAE3C,OAAO,MAAMR,aAAa,GAAIS,MAAqB,IAAsB;EACrE,OAAO,OAAOC,KAAK,EAAEC,OAAO,KAAK;IAC7B,MAAMC,GAAG,GAAGX,iBAAiB,CAAC;MAC1B,GAAGQ,MAAM;MACTI,OAAO,EAAE;QACLC,MAAM,EAAEL,MAAM,CAACM,KAAK,KAAK,IAAI;QAC7B,IAAIN,MAAM,CAACI,OAAO,IAAI,CAAC,CAAC;MAC5B;IACJ,CAAC,CAAC;IAEFX,sBAAsB,CAACU,GAAG,CAACI,MAAM,CAAC;IAElCJ,GAAG,CAACK,OAAO,CAAC,kBAAkB,EAAE,OAAOC,CAAC,EAAEC,EAAE,EAAEC,OAA4B,KAAK;MAC3E,IAAI,CAACA,OAAO,CAACC,IAAI,EAAE;QACf,OAAOD,OAAO;MAClB;MACA,OAAOA,OAAO,CAACC,IAAI;IACvB,CAAC,CAAC;IAEF,MAAMT,GAAG,CAACU,QAAQ,CAAC,MAAMC,OAAO,IAAI;MAChCA,OAAO,CAACC,eAAe,CAAc,OAAOC,KAAK,EAAEP,CAAC,EAAEQ,KAAK,KAAK;QAC5Dd,GAAG,CAACe,mBAAmB,GAAG;UACtBF,KAAK,EAAE;YACHG,OAAO,EAAEH,KAAK,CAACG,OAAO;YACtBC,IAAI,EAAEJ,KAAK,CAACI,IAAI;YAChBC,IAAI,EAAEL,KAAK,CAACK;UAChB,CAAC;UACDC,MAAM,EAAExB,gBAAgB,CAACyB;QAC7B,CAAC;QACD,OAAON,KAAK,CAACO,IAAI,CAAC,CAAC;MACvB,CAAC,CAAC;MAEFV,OAAO,CAACW,IAAI,CAAC1B,GAAG,EAAE,OAAOU,CAAC,EAAEQ,KAAK,KAAK;QAClC,MAAMS,OAAO,GAAG,IAAI/B,UAAU;QAC1B;AACpB;AACA;QACoBQ,GAAG,CAACI,MAAM,EACVX,YAAY,CAACM,OAAO,CAAC,EACrB,IAAIL,mBAAmB,CAAC,CAC5B,CAAC;QAEDM,GAAG,CAACe,mBAAmB,GAAG,MAAMQ,OAAO,CAACC,GAAG,CAAC1B,KAAK,CAAC;QAClD,OAAOgB,KAAK,CAACO,IAAI,CAAC,CAAC,CAAC,CAAC;MACzB,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,OAAO9B,OAAO,CAAC;MACXS,GAAG;MACHJ,GAAG;MACHY,OAAO,EAAE;QACL,GAAGV,KAAK;QACR2B,OAAO,EAAE;UACL,CAAC,UAAU,GAAG3B,KAAK,CAAC4B,MAAM;UAC1B,CAAC,uBAAuB,GAAG5B,KAAK,CAAC6B,QAAQ;UACzC,CAAC,iBAAiB,GAAG;QACzB;MACJ;IACJ,CAAC,CAAC;EACN,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"handler/index.js","sources":["../../src/handler/index.ts"],"sourcesContent":["import { createHandler as createBaseHandler } from \"@webiny/handler\";\nimport { registerDefaultPlugins } from \"@webiny/handler-aws/plugins/index.js\";\nimport { execute } from \"@webiny/handler-aws/execute.js\";\nimport type {\n APIGatewayProxyResult,\n Context as LambdaContext\n} from \"@webiny/aws-sdk/types/index.js\";\nimport type { Context } from \"~/types.js\";\nimport type { HandlerParams, ITaskRawEvent } from \"~/handler/types.js\";\nimport { TaskRunner } from \"~/runner/index.js\";\nimport type WebinyError from \"@webiny/error\";\nimport { timerFactory } from \"@webiny/handler-aws/utils/index.js\";\nimport { TaskEventValidation } from \"~/runner/TaskEventValidation.js\";\nimport { TaskResultStatus } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface HandlerCallable {\n (event: ITaskRawEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;\n}\n\nconst url = \"/webiny-background-task-event\";\n\nexport const createHandler = (params: HandlerParams): HandlerCallable => {\n return async (event, context) => {\n const app = createBaseHandler({\n ...params,\n options: {\n logger: params.debug === true,\n ...(params.options || {})\n }\n });\n\n registerDefaultPlugins(app.webiny);\n\n app.addHook(\"preSerialization\", async (_, __, payload: Record<string, any>) => {\n if (!payload.body) {\n return payload;\n }\n return payload.body;\n });\n\n await app.register(async taskApp => {\n taskApp.setErrorHandler<WebinyError>(async (error, _, reply) => {\n app.__webiny_raw_result = {\n error: {\n message: error.message,\n code: error.code,\n data: error.data\n },\n status: TaskResultStatus.ERROR\n };\n return reply.send();\n });\n\n taskApp.post(url, async (_, reply) => {\n const handler = new TaskRunner(\n /**\n * We can safely cast because we know that the context is of type tasks/Context\n */\n app.webiny as Context,\n timerFactory(context),\n new TaskEventValidation()\n );\n\n app.__webiny_raw_result = await handler.run(event);\n return reply.send({});\n });\n });\n\n return execute({\n app,\n url,\n payload: {\n ...event,\n headers: {\n [\"x-tenant\"]: event.tenant,\n [\"x-webiny-cms-endpoint\"]: event.endpoint,\n [\"accept-language\"]: \"en-US\"\n }\n }\n });\n };\n};\n"],"names":["url","createHandler","params","event","context","app","createBaseHandler","registerDefaultPlugins","_","__","payload","taskApp","error","reply","TaskResultStatus","handler","TaskRunner","timerFactory","TaskEventValidation","execute"],"mappings":";;;;;;;AAmBA,MAAMA,MAAM;AAEL,MAAMC,wBAAgB,CAACC,SACnB,OAAOC,OAAOC;QACjB,MAAMC,MAAMC,cAAkB;YAC1B,GAAGJ,MAAM;YACT,SAAS;gBACL,QAAQA,AAAiB,SAAjBA,OAAO,KAAK;gBACpB,GAAIA,OAAO,OAAO,IAAI,CAAC,CAAC;YAC5B;QACJ;QAEAK,uBAAuBF,IAAI,MAAM;QAEjCA,IAAI,OAAO,CAAC,oBAAoB,OAAOG,GAAGC,IAAIC;YAC1C,IAAI,CAACA,QAAQ,IAAI,EACb,OAAOA;YAEX,OAAOA,QAAQ,IAAI;QACvB;QAEA,MAAML,IAAI,QAAQ,CAAC,OAAMM;YACrBA,QAAQ,eAAe,CAAc,OAAOC,OAAOJ,GAAGK;gBAClDR,IAAI,mBAAmB,GAAG;oBACtB,OAAO;wBACH,SAASO,MAAM,OAAO;wBACtB,MAAMA,MAAM,IAAI;wBAChB,MAAMA,MAAM,IAAI;oBACpB;oBACA,QAAQE,iBAAiB,KAAK;gBAClC;gBACA,OAAOD,MAAM,IAAI;YACrB;YAEAF,QAAQ,IAAI,CAACX,KAAK,OAAOQ,GAAGK;gBACxB,MAAME,UAAU,IAAIC,WAIhBX,IAAI,MAAM,EACVY,aAAab,UACb,IAAIc;gBAGRb,IAAI,mBAAmB,GAAG,MAAMU,QAAQ,GAAG,CAACZ;gBAC5C,OAAOU,MAAM,IAAI,CAAC,CAAC;YACvB;QACJ;QAEA,OAAOM,QAAQ;YACXd;YACAL,KAAAA;YACA,SAAS;gBACL,GAAGG,KAAK;gBACR,SAAS;oBACL,CAAC,WAAW,EAAEA,MAAM,MAAM;oBAC1B,CAAC,wBAAwB,EAAEA,MAAM,QAAQ;oBACzC,CAAC,kBAAkB,EAAE;gBACzB;YACJ;QACJ;IACJ"}
@@ -1,23 +1,15 @@
1
1
  import { registry } from "@webiny/handler-aws/registry.js";
2
2
  import { createSourceHandler } from "@webiny/handler-aws";
3
3
  const handler = createSourceHandler({
4
- name: "handler-webiny-background-task",
5
- canUse: event => {
6
- return !!event.payload?.webinyTaskId;
7
- },
8
- handle: async ({
9
- params,
10
- event,
11
- context
12
- }) => {
13
- const {
14
- createHandler
15
- } = await import(/* webpackChunkName: "tasks.handler.createHandler" */"./index.js");
16
- return createHandler(params)(event.payload, context);
17
- }
4
+ name: "handler-webiny-background-task",
5
+ canUse: (event)=>!!event.payload?.webinyTaskId,
6
+ handle: async ({ params, event, context })=>{
7
+ const { createHandler } = await import("./index.js");
8
+ return createHandler(params)(event.payload, context);
9
+ }
18
10
  });
19
11
  registry.register(handler, {
20
- silent: true
12
+ silent: true
21
13
  });
22
14
 
23
15
  //# sourceMappingURL=register.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["registry","createSourceHandler","handler","name","canUse","event","payload","webinyTaskId","handle","params","context","createHandler","register","silent"],"sources":["register.ts"],"sourcesContent":["import { registry } from \"@webiny/handler-aws/registry.js\";\nimport { createSourceHandler } from \"@webiny/handler-aws\";\nimport type { HandlerParams, IIncomingEvent, ITaskEvent } from \"./types.js\";\n\nconst handler = createSourceHandler<IIncomingEvent<ITaskEvent>, HandlerParams>({\n name: \"handler-webiny-background-task\",\n canUse: event => {\n return !!event.payload?.webinyTaskId;\n },\n handle: async ({ params, event, context }) => {\n const { createHandler } = await import(\n /* webpackChunkName: \"tasks.handler.createHandler\" */\n \"./index.js\"\n );\n return createHandler(params)(event.payload, context);\n }\n});\n\nregistry.register(handler, {\n silent: true\n});\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,iCAAiC;AAC1D,SAASC,mBAAmB,QAAQ,qBAAqB;AAGzD,MAAMC,OAAO,GAAGD,mBAAmB,CAA4C;EAC3EE,IAAI,EAAE,gCAAgC;EACtCC,MAAM,EAAEC,KAAK,IAAI;IACb,OAAO,CAAC,CAACA,KAAK,CAACC,OAAO,EAAEC,YAAY;EACxC,CAAC;EACDC,MAAM,EAAE,MAAAA,CAAO;IAAEC,MAAM;IAAEJ,KAAK;IAAEK;EAAQ,CAAC,KAAK;IAC1C,MAAM;MAAEC;IAAc,CAAC,GAAG,MAAM,MAAM,CAClC,iEAEJ,CAAC;IACD,OAAOA,aAAa,CAACF,MAAM,CAAC,CAACJ,KAAK,CAACC,OAAO,EAAEI,OAAO,CAAC;EACxD;AACJ,CAAC,CAAC;AAEFV,QAAQ,CAACY,QAAQ,CAACV,OAAO,EAAE;EACvBW,MAAM,EAAE;AACZ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"handler/register.js","sources":["../../src/handler/register.ts"],"sourcesContent":["import { registry } from \"@webiny/handler-aws/registry.js\";\nimport { createSourceHandler } from \"@webiny/handler-aws\";\nimport type { HandlerParams, IIncomingEvent, ITaskEvent } from \"./types.js\";\n\nconst handler = createSourceHandler<IIncomingEvent<ITaskEvent>, HandlerParams>({\n name: \"handler-webiny-background-task\",\n canUse: event => {\n return !!event.payload?.webinyTaskId;\n },\n handle: async ({ params, event, context }) => {\n const { createHandler } = await import(\n /* webpackChunkName: \"tasks.handler.createHandler\" */\n \"./index.js\"\n );\n return createHandler(params)(event.payload, context);\n }\n});\n\nregistry.register(handler, {\n silent: true\n});\n"],"names":["handler","createSourceHandler","event","params","context","createHandler","registry"],"mappings":";;AAIA,MAAMA,UAAUC,oBAA+D;IAC3E,MAAM;IACN,QAAQC,CAAAA,QACG,CAAC,CAACA,MAAM,OAAO,EAAE;IAE5B,QAAQ,OAAO,EAAEC,MAAM,EAAED,KAAK,EAAEE,OAAO,EAAE;QACrC,MAAM,EAAEC,aAAa,EAAE,GAAG,MAAM,MAAM,CAAN;QAIhC,OAAOA,cAAcF,QAAQD,MAAM,OAAO,EAAEE;IAChD;AACJ;AAEAE,SAAS,QAAQ,CAACN,SAAS;IACvB,QAAQ;AACZ"}
package/handler/types.js CHANGED
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=types.js.map
package/index.js CHANGED
@@ -1,7 +1,5 @@
1
1
  import "./handler/register.js";
2
- export { createBackgroundTaskGraphQL } from "./graphql/index.js";
3
- export { createBackgroundTaskContext } from "./context.js";
4
2
  export * from "./response/index.js";
5
3
  export * from "./types.js";
6
-
7
- //# sourceMappingURL=index.js.map
4
+ export { createBackgroundTaskGraphQL } from "./graphql/index.js";
5
+ export { createBackgroundTaskContext } from "./context.js";
package/package.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "name": "@webiny/tasks",
3
- "version": "0.0.0-unstable.6f45466a1d",
3
+ "version": "0.0.0-unstable.7be00a75a9",
4
4
  "type": "module",
5
- "main": "index.js",
5
+ "exports": {
6
+ ".": "./index.js",
7
+ "./*": "./*"
8
+ },
6
9
  "repository": {
7
10
  "type": "git",
8
11
  "url": "https://github.com/webiny/webiny-js.git"
@@ -13,34 +16,36 @@
13
16
  ],
14
17
  "license": "MIT",
15
18
  "dependencies": {
16
- "@webiny/api": "0.0.0-unstable.6f45466a1d",
17
- "@webiny/api-core": "0.0.0-unstable.6f45466a1d",
18
- "@webiny/api-headless-cms": "0.0.0-unstable.6f45466a1d",
19
- "@webiny/aws-sdk": "0.0.0-unstable.6f45466a1d",
20
- "@webiny/error": "0.0.0-unstable.6f45466a1d",
21
- "@webiny/feature": "0.0.0-unstable.6f45466a1d",
22
- "@webiny/handler": "0.0.0-unstable.6f45466a1d",
23
- "@webiny/handler-aws": "0.0.0-unstable.6f45466a1d",
24
- "@webiny/handler-graphql": "0.0.0-unstable.6f45466a1d",
25
- "@webiny/plugins": "0.0.0-unstable.6f45466a1d",
26
- "@webiny/utils": "0.0.0-unstable.6f45466a1d",
19
+ "@webiny/api": "0.0.0-unstable.7be00a75a9",
20
+ "@webiny/api-core": "0.0.0-unstable.7be00a75a9",
21
+ "@webiny/api-headless-cms": "0.0.0-unstable.7be00a75a9",
22
+ "@webiny/aws-sdk": "0.0.0-unstable.7be00a75a9",
23
+ "@webiny/error": "0.0.0-unstable.7be00a75a9",
24
+ "@webiny/feature": "0.0.0-unstable.7be00a75a9",
25
+ "@webiny/handler": "0.0.0-unstable.7be00a75a9",
26
+ "@webiny/handler-aws": "0.0.0-unstable.7be00a75a9",
27
+ "@webiny/handler-graphql": "0.0.0-unstable.7be00a75a9",
28
+ "@webiny/plugins": "0.0.0-unstable.7be00a75a9",
29
+ "@webiny/utils": "0.0.0-unstable.7be00a75a9",
27
30
  "deep-equal": "2.2.3",
28
- "lodash": "4.17.23",
29
- "object-merge-advanced": "12.1.0",
31
+ "lodash": "4.18.1",
32
+ "object-merge-advanced": "14.1.3",
30
33
  "object-sizeof": "2.6.5",
31
- "zod": "3.25.76"
34
+ "zod": "4.4.3"
32
35
  },
33
36
  "devDependencies": {
34
- "@webiny/build-tools": "0.0.0-unstable.6f45466a1d",
35
- "@webiny/project-utils": "0.0.0-unstable.6f45466a1d",
36
- "rimraf": "6.1.2",
37
- "type-fest": "5.4.4",
38
- "typescript": "5.9.3",
39
- "vitest": "3.2.4"
37
+ "@webiny/build-tools": "0.0.0-unstable.7be00a75a9",
38
+ "@webiny/project-utils": "0.0.0-unstable.7be00a75a9",
39
+ "rimraf": "6.1.3",
40
+ "type-fest": "5.6.0",
41
+ "typescript": "6.0.3",
42
+ "vitest": "4.1.7"
40
43
  },
41
44
  "publishConfig": {
42
- "access": "public",
43
- "directory": "dist"
45
+ "access": "public"
44
46
  },
45
- "gitHead": "6f45466a1d9fb94f6156923501eb90ac303b81a5"
47
+ "gitHead": "8476da73b653c89cc1474d968baf55c1b0ae0e5f",
48
+ "webiny": {
49
+ "publishFrom": "dist"
50
+ }
46
51
  }
@@ -1,10 +1,13 @@
1
1
  import { Plugin } from "@webiny/plugins";
2
- export class TaskServicePlugin extends Plugin {
3
- static type = "tasks.taskService";
4
- constructor(params) {
5
- super();
6
- this.default = !!params?.default;
7
- }
2
+ class TaskServicePlugin extends Plugin {
3
+ static{
4
+ this.type = "tasks.taskService";
5
+ }
6
+ constructor(params){
7
+ super();
8
+ this.default = !!params?.default;
9
+ }
8
10
  }
11
+ export { TaskServicePlugin };
9
12
 
10
13
  //# sourceMappingURL=TaskServicePlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Plugin","TaskServicePlugin","type","constructor","params","default"],"sources":["TaskServicePlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { ITask } from \"~/types.js\";\n\nexport interface ITaskServiceCreatePluginParams {\n getTenant(): string;\n}\n\nexport type ITaskServiceTask = Pick<ITask, \"id\" | \"definitionId\">;\n\nexport interface ITaskService {\n send(task: ITaskServiceTask, delay: number): Promise<unknown | null>;\n fetch(task: ITask): Promise<unknown | null>;\n}\n\nexport interface ITaskServicePluginParams {\n default?: boolean;\n}\n\nexport abstract class TaskServicePlugin extends Plugin {\n public static override readonly type: string = \"tasks.taskService\";\n public readonly default: boolean;\n\n public constructor(params?: ITaskServicePluginParams) {\n super();\n this.default = !!params?.default;\n }\n\n public abstract createService(params: ITaskServiceCreatePluginParams): ITaskService;\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,iBAAiB;AAkBxC,OAAO,MAAeC,iBAAiB,SAASD,MAAM,CAAC;EACnD,OAAgCE,IAAI,GAAW,mBAAmB;EAG3DC,WAAWA,CAACC,MAAiC,EAAE;IAClD,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,OAAO,GAAG,CAAC,CAACD,MAAM,EAAEC,OAAO;EACpC;AAGJ","ignoreList":[]}
1
+ {"version":3,"file":"plugins/TaskServicePlugin.js","sources":["../../src/plugins/TaskServicePlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { ITask } from \"~/types.js\";\n\nexport interface ITaskServiceCreatePluginParams {\n getTenant(): string;\n}\n\nexport type ITaskServiceTask = Pick<ITask, \"id\" | \"definitionId\">;\n\nexport interface ITaskService {\n send(task: ITaskServiceTask, delay: number): Promise<unknown | null>;\n fetch(task: ITask): Promise<unknown | null>;\n}\n\nexport interface ITaskServicePluginParams {\n default?: boolean;\n}\n\nexport abstract class TaskServicePlugin extends Plugin {\n public static override readonly type: string = \"tasks.taskService\";\n public readonly default: boolean;\n\n public constructor(params?: ITaskServicePluginParams) {\n super();\n this.default = !!params?.default;\n }\n\n public abstract createService(params: ITaskServiceCreatePluginParams): ITaskService;\n}\n"],"names":["TaskServicePlugin","Plugin","params"],"mappings":";AAkBO,MAAeA,0BAA0BC;;aACZ,IAAI,GAAW;;IAG/C,YAAmBC,MAAiC,CAAE;QAClD,KAAK;QACL,IAAI,CAAC,OAAO,GAAG,CAAC,CAACA,QAAQ;IAC7B;AAGJ"}
package/plugins/index.js CHANGED
@@ -1,3 +1 @@
1
1
  export * from "./TaskServicePlugin.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -2,145 +2,126 @@ import { TaskDataStatus } from "../types.js";
2
2
  import { NotFoundError } from "@webiny/handler-graphql";
3
3
  import { getErrorProperties } from "../utils/getErrorProperties.js";
4
4
  import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
5
- export class DatabaseResponse {
6
- constructor(response, store) {
7
- this.response = response;
8
- this.store = store;
9
- }
10
- from(result) {
11
- switch (result.status) {
12
- case TaskResultStatus.DONE:
13
- return this.done(result);
14
- case TaskResultStatus.CONTINUE:
15
- return this.continue(result);
16
- case TaskResultStatus.ERROR:
17
- return this.error(result);
18
- case TaskResultStatus.ABORTED:
19
- return this.aborted();
5
+ class DatabaseResponse {
6
+ constructor(response, store){
7
+ this.response = response;
8
+ this.store = store;
20
9
  }
21
- }
22
- async done(params) {
23
- const {
24
- output,
25
- ...rest
26
- } = params;
27
- let message = params.message;
28
- try {
29
- await this.store.updateTask({
30
- taskStatus: TaskDataStatus.SUCCESS,
31
- finishedOn: new Date().toISOString(),
32
- output
33
- });
34
- await this.store.addInfoLog({
35
- message: message || "Task done."
36
- });
37
- await this.store.save();
38
- } catch (ex) {
39
- message = `Task done, but failed to update task log. (${ex.message || "unknown"})`;
40
- }
41
- /**
42
- * Default behavior is to return the done response.
43
- */
44
- return this.response.done({
45
- ...rest,
46
- message,
47
- output
48
- });
49
- }
50
- async aborted() {
51
- return this.response.aborted();
52
- }
53
- async continue(params) {
54
- try {
55
- const task = this.store.getTask();
56
- await this.store.updateTask({
57
- input: {
58
- ...task.input,
59
- ...params.input
60
- },
61
- taskStatus: TaskDataStatus.RUNNING
62
- });
63
- await this.store.addInfoLog({
64
- message: "Task continuing.",
65
- data: params.input
66
- });
67
- await this.store.save();
68
- } catch (ex) {
69
- /**
70
- * If task was not found, we just return the error.
71
- */
72
- if (ex instanceof NotFoundError) {
73
- return this.response.error({
74
- error: {
75
- message: ex.message || `Task not found.`,
76
- code: ex.code || "TASK_NOT_FOUND",
77
- data: {
78
- ...ex.data,
79
- input: this.store.getInput()
80
- }
81
- }
82
- });
83
- }
84
- /**
85
- * Otherwise, we store the error and return it...
86
- */
87
- return this.error({
88
- error: {
89
- message: `Failed to update task input: ${ex.message || "unknown error"}`,
90
- code: ex.code || "TASK_UPDATE_ERROR"
10
+ from(result) {
11
+ switch(result.status){
12
+ case TaskResultStatus.DONE:
13
+ return this.done(result);
14
+ case TaskResultStatus.CONTINUE:
15
+ return this.continue(result);
16
+ case TaskResultStatus.ERROR:
17
+ return this.error(result);
18
+ case TaskResultStatus.ABORTED:
19
+ return this.aborted();
91
20
  }
92
- });
93
21
  }
94
- /**
95
- * Default behavior is to return the continue response.
96
- */
97
- return this.response.continue(params);
98
- }
99
- async error(params) {
100
- const error = params.error instanceof Error ? getErrorProperties(params.error) : params.error;
101
- try {
102
- await this.store.updateTask({
103
- taskStatus: TaskDataStatus.FAILED,
104
- finishedOn: new Date().toISOString(),
105
- output: {
106
- error
22
+ async done(params) {
23
+ const { output, ...rest } = params;
24
+ let message = params.message;
25
+ try {
26
+ await this.store.updateTask({
27
+ taskStatus: TaskDataStatus.SUCCESS,
28
+ finishedOn: new Date().toISOString(),
29
+ output
30
+ });
31
+ await this.store.addInfoLog({
32
+ message: message || "Task done."
33
+ });
34
+ await this.store.save();
35
+ } catch (ex) {
36
+ message = `Task done, but failed to update task log. (${ex.message || "unknown"})`;
107
37
  }
108
- });
109
- await this.store.addErrorLog({
110
- message: params.error.message,
111
- data: this.store.getInput(),
112
- error
113
- });
114
- await this.store.save();
115
- } catch (ex) {
116
- return this.response.error({
117
- ...params,
118
- error: {
119
- ...error,
120
- message: ex.message || error.message,
121
- code: ex.code || error.code,
122
- data: {
123
- ...error.data,
124
- ...ex.data,
125
- input: this.store.getInput()
126
- }
38
+ return this.response.done({
39
+ ...rest,
40
+ message,
41
+ output
42
+ });
43
+ }
44
+ async aborted() {
45
+ return this.response.aborted();
46
+ }
47
+ async continue(params) {
48
+ try {
49
+ const task = this.store.getTask();
50
+ await this.store.updateTask({
51
+ input: {
52
+ ...task.input,
53
+ ...params.input
54
+ },
55
+ taskStatus: TaskDataStatus.RUNNING
56
+ });
57
+ await this.store.addInfoLog({
58
+ message: "Task continuing.",
59
+ data: params.input
60
+ });
61
+ await this.store.save();
62
+ } catch (ex) {
63
+ if (ex instanceof NotFoundError) return this.response.error({
64
+ error: {
65
+ message: ex.message || "Task not found.",
66
+ code: ex.code || "TASK_NOT_FOUND",
67
+ data: {
68
+ ...ex.data,
69
+ input: this.store.getInput()
70
+ }
71
+ }
72
+ });
73
+ return this.error({
74
+ error: {
75
+ message: `Failed to update task input: ${ex.message || "unknown error"}`,
76
+ code: ex.code || "TASK_UPDATE_ERROR"
77
+ }
78
+ });
127
79
  }
128
- });
80
+ return this.response.continue(params);
129
81
  }
130
- /**
131
- * Default behavior is to return the error response.
132
- */
133
- return this.response.error({
134
- ...params,
135
- error: {
136
- ...params.error,
137
- data: {
138
- ...error.data,
139
- input: this.store.getInput()
82
+ async error(params) {
83
+ const error = params.error instanceof Error ? getErrorProperties(params.error) : params.error;
84
+ try {
85
+ await this.store.updateTask({
86
+ taskStatus: TaskDataStatus.FAILED,
87
+ finishedOn: new Date().toISOString(),
88
+ output: {
89
+ error
90
+ }
91
+ });
92
+ await this.store.addErrorLog({
93
+ message: params.error.message,
94
+ data: this.store.getInput(),
95
+ error
96
+ });
97
+ await this.store.save();
98
+ } catch (ex) {
99
+ return this.response.error({
100
+ ...params,
101
+ error: {
102
+ ...error,
103
+ message: ex.message || error.message,
104
+ code: ex.code || error.code,
105
+ data: {
106
+ ...error.data,
107
+ ...ex.data,
108
+ input: this.store.getInput()
109
+ }
110
+ }
111
+ });
140
112
  }
141
- }
142
- });
143
- }
113
+ return this.response.error({
114
+ ...params,
115
+ error: {
116
+ ...params.error,
117
+ data: {
118
+ ...error.data,
119
+ input: this.store.getInput()
120
+ }
121
+ }
122
+ });
123
+ }
144
124
  }
125
+ export { DatabaseResponse };
145
126
 
146
127
  //# sourceMappingURL=DatabaseResponse.js.map