@webiny/api-headless-cms-es-tasks 0.0.0-unstable.eb196ccd2f → 0.0.0-unstable.eb81deee7e

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 (64) hide show
  1. package/HeadlessCmsEsTasksFeature.d.ts +4 -0
  2. package/HeadlessCmsEsTasksFeature.js +13 -0
  3. package/HeadlessCmsEsTasksFeature.js.map +1 -0
  4. package/README.md +11 -15
  5. package/index.d.ts +4 -3
  6. package/index.js +3 -37
  7. package/package.json +24 -26
  8. package/tasks/MockDataCreator/MockDataCreator.d.ts +9 -5
  9. package/tasks/MockDataCreator/MockDataCreator.js +68 -97
  10. package/tasks/MockDataCreator/MockDataCreator.js.map +1 -1
  11. package/tasks/MockDataCreator/mockData.js +1333 -1193
  12. package/tasks/MockDataCreator/mockData.js.map +1 -1
  13. package/tasks/MockDataCreator/types.d.ts +3 -3
  14. package/tasks/MockDataCreator/types.js +0 -7
  15. package/tasks/MockDataCreatorTask.d.ts +24 -0
  16. package/tasks/MockDataCreatorTask.js +42 -0
  17. package/tasks/MockDataCreatorTask.js.map +1 -0
  18. package/tasks/MockDataManager/MockDataManager.d.ts +11 -5
  19. package/tasks/MockDataManager/MockDataManager.js +81 -104
  20. package/tasks/MockDataManager/MockDataManager.js.map +1 -1
  21. package/tasks/MockDataManager/calculateAmounts.js +26 -58
  22. package/tasks/MockDataManager/calculateAmounts.js.map +1 -1
  23. package/tasks/MockDataManager/calculateSeconds.js +8 -18
  24. package/tasks/MockDataManager/calculateSeconds.js.map +1 -1
  25. package/tasks/MockDataManager/constants.js +2 -7
  26. package/tasks/MockDataManager/constants.js.map +1 -1
  27. package/tasks/MockDataManager/createModelAndGroup.d.ts +2 -2
  28. package/tasks/MockDataManager/createModelAndGroup.js +40 -43
  29. package/tasks/MockDataManager/createModelAndGroup.js.map +1 -1
  30. package/tasks/MockDataManager/group.d.ts +1 -1
  31. package/tasks/MockDataManager/group.js +11 -16
  32. package/tasks/MockDataManager/group.js.map +1 -1
  33. package/tasks/MockDataManager/model.d.ts +2 -2
  34. package/tasks/MockDataManager/model.js +6292 -4701
  35. package/tasks/MockDataManager/model.js.map +1 -1
  36. package/tasks/MockDataManager/types.d.ts +3 -3
  37. package/tasks/MockDataManager/types.js +0 -7
  38. package/tasks/MockDataManagerTask.d.ts +28 -0
  39. package/tasks/MockDataManagerTask.js +73 -0
  40. package/tasks/MockDataManagerTask.js.map +1 -0
  41. package/types.d.ts +4 -5
  42. package/types.js +0 -18
  43. package/utils/createIndex.d.ts +5 -5
  44. package/utils/createIndex.js +19 -35
  45. package/utils/createIndex.js.map +1 -1
  46. package/utils/disableIndexing.d.ts +5 -3
  47. package/utils/disableIndexing.js +22 -31
  48. package/utils/disableIndexing.js.map +1 -1
  49. package/utils/enableIndexing.d.ts +5 -3
  50. package/utils/enableIndexing.js +22 -31
  51. package/utils/enableIndexing.js.map +1 -1
  52. package/utils/index.d.ts +3 -3
  53. package/utils/index.js +3 -40
  54. package/index.js.map +0 -1
  55. package/tasks/MockDataCreator/types.js.map +0 -1
  56. package/tasks/MockDataManager/types.js.map +0 -1
  57. package/tasks/createMockDataCreatorTask.d.ts +0 -4
  58. package/tasks/createMockDataCreatorTask.js +0 -29
  59. package/tasks/createMockDataCreatorTask.js.map +0 -1
  60. package/tasks/createMockDataManagerTask.d.ts +0 -4
  61. package/tasks/createMockDataManagerTask.js +0 -61
  62. package/tasks/createMockDataManagerTask.js.map +0 -1
  63. package/types.js.map +0 -1
  64. package/utils/index.js.map +0 -1
@@ -1,113 +1,90 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.MockDataManager = void 0;
7
- var _tasks = require("@webiny/tasks");
8
- var _calculateAmounts = require("./calculateAmounts");
9
- var _calculateSeconds = require("./calculateSeconds");
10
- var _createMockDataCreatorTask = require("../createMockDataCreatorTask");
11
- var _createModelAndGroup = require("./createModelAndGroup");
12
- var _utils = require("../../utils");
1
+ import { AbortTaskUseCase, ListTasksUseCase, TaskDataStatus } from "@webiny/background-tasks/api";
2
+ import { calculateAmounts } from "./calculateAmounts.js";
3
+ import { WAIT_MAX_SECONDS, calculateSeconds } from "./calculateSeconds.js";
4
+ import { createModelAndGroup } from "./createModelAndGroup.js";
5
+ import { disableIndexing, enableIndexing } from "../../utils/index.js";
6
+ import { MOCK_DATA_CREATOR_TASK_ID } from "../MockDataCreatorTask.js";
13
7
  class MockDataManager {
14
- async execute(params) {
15
- const {
16
- context,
17
- isAborted,
18
- input,
19
- response,
20
- trigger,
21
- store
22
- } = params;
23
- const taskId = store.getTask().id;
24
- if (isAborted()) {
25
- await this.abortChildTasks(context, taskId);
26
- return response.aborted();
27
- } else if (input.seconds) {
28
- const items = await this.listChildTasksNotDone(context, taskId);
29
-
30
- /**
31
- * If there are still running creator tasks, we need to wait a bit more.
32
- */
33
- if (items.length > 0) {
34
- return response.continue({
35
- ...input
8
+ constructor(context, openSearchClient, indexProvider){
9
+ this.context = context;
10
+ this.openSearchClient = openSearchClient;
11
+ this.indexProvider = indexProvider;
12
+ }
13
+ async execute(params) {
14
+ const { input, controller } = params;
15
+ const taskId = controller.state.getTask().id;
16
+ if (controller.runtime.isAborted()) {
17
+ await this.abortChildTasks(this.context, taskId);
18
+ return controller.response.aborted();
19
+ }
20
+ if (input.seconds) {
21
+ const items = await this.listChildTasksNotDone(this.context, taskId);
22
+ if (items.length > 0) return controller.response.continue({
23
+ ...input
24
+ }, {
25
+ seconds: input.seconds || WAIT_MAX_SECONDS
26
+ });
27
+ await enableIndexing({
28
+ client: this.openSearchClient.use(),
29
+ model: {
30
+ modelId: input.modelId,
31
+ tenant: "root"
32
+ },
33
+ indexProvider: this.indexProvider
34
+ });
35
+ return controller.response.done();
36
+ }
37
+ const result = await createModelAndGroup({
38
+ context: this.context,
39
+ modelId: input.modelId,
40
+ overwrite: input.overwrite
41
+ });
42
+ if ("string" == typeof result) return controller.response.done(result);
43
+ await disableIndexing({
44
+ model: result.model,
45
+ client: this.openSearchClient.use(),
46
+ indexProvider: this.indexProvider
47
+ });
48
+ const { amountOfTasks, amountOfRecords } = calculateAmounts(input.amount);
49
+ const seconds = calculateSeconds(amountOfRecords);
50
+ for(let current = 0; current < amountOfTasks; current++)await controller.task.trigger({
51
+ definition: MOCK_DATA_CREATOR_TASK_ID,
52
+ input: {
53
+ totalAmount: amountOfRecords,
54
+ createdAmount: 0
55
+ },
56
+ name: `Mock Data Creator Task #${current + 1} of ${amountOfTasks}`
57
+ });
58
+ return controller.response.continue({
59
+ ...input,
60
+ seconds,
61
+ amountOfTasks,
62
+ amountOfRecords
36
63
  }, {
37
- seconds: input.seconds || _calculateSeconds.WAIT_MAX_SECONDS
64
+ seconds
38
65
  });
39
- }
40
- /**
41
- * If there are no running tasks, we can enable indexing and finish the manager task.
42
- */
43
- await (0, _utils.enableIndexing)({
44
- client: context.elasticsearch,
45
- model: {
46
- modelId: input.modelId,
47
- tenant: "root",
48
- locale: "en-US"
49
- }
50
- });
51
- return response.done();
52
66
  }
53
- const result = await (0, _createModelAndGroup.createModelAndGroup)({
54
- context,
55
- modelId: input.modelId,
56
- overwrite: input.overwrite
57
- });
58
- if (typeof result === "string") {
59
- return response.done(result);
60
- }
61
- await (0, _utils.disableIndexing)({
62
- model: result.model,
63
- client: context.elasticsearch
64
- });
65
- const {
66
- amountOfTasks,
67
- amountOfRecords
68
- } = (0, _calculateAmounts.calculateAmounts)(input.amount);
69
- const seconds = (0, _calculateSeconds.calculateSeconds)(amountOfRecords);
70
- for (let current = 0; current < amountOfTasks; current++) {
71
- await trigger({
72
- definition: _createMockDataCreatorTask.MOCK_DATA_CREATOR_TASK_ID,
73
- input: {
74
- totalAmount: amountOfRecords,
75
- createdAmount: 0
76
- },
77
- name: `Mock Data Creator Task #${current + 1} of ${amountOfTasks}`
78
- });
67
+ async listChildTasksNotDone(context, id) {
68
+ const { items } = await context.container.resolve(ListTasksUseCase).execute({
69
+ where: {
70
+ parentId: id,
71
+ taskStatus_in: [
72
+ TaskDataStatus.PENDING,
73
+ TaskDataStatus.RUNNING
74
+ ]
75
+ },
76
+ limit: 10000
77
+ });
78
+ return items;
79
79
  }
80
- return response.continue({
81
- ...input,
82
- seconds,
83
- amountOfTasks,
84
- amountOfRecords
85
- }, {
86
- seconds
87
- });
88
- }
89
- async listChildTasksNotDone(context, id) {
90
- const {
91
- items
92
- } = await context.tasks.listTasks({
93
- where: {
94
- parentId: id,
95
- taskStatus_in: [_tasks.TaskDataStatus.PENDING, _tasks.TaskDataStatus.RUNNING]
96
- },
97
- limit: 10000
98
- });
99
- return items;
100
- }
101
- async abortChildTasks(context, id) {
102
- const items = await this.listChildTasksNotDone(context, id);
103
- for (const item of items) {
104
- await context.tasks.abort({
105
- id: item.id,
106
- message: "Aborted by parent task."
107
- });
80
+ async abortChildTasks(context, id) {
81
+ const items = await this.listChildTasksNotDone(context, id);
82
+ for (const item of items)await context.container.resolve(AbortTaskUseCase).execute({
83
+ id: item.id,
84
+ message: "Aborted by parent task."
85
+ });
108
86
  }
109
- }
110
87
  }
111
- exports.MockDataManager = MockDataManager;
88
+ export { MockDataManager };
112
89
 
113
90
  //# sourceMappingURL=MockDataManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_tasks","require","_calculateAmounts","_calculateSeconds","_createMockDataCreatorTask","_createModelAndGroup","_utils","MockDataManager","execute","params","context","isAborted","input","response","trigger","store","taskId","getTask","id","abortChildTasks","aborted","seconds","items","listChildTasksNotDone","length","continue","WAIT_MAX_SECONDS","enableIndexing","client","elasticsearch","model","modelId","tenant","locale","done","result","createModelAndGroup","overwrite","disableIndexing","amountOfTasks","amountOfRecords","calculateAmounts","amount","calculateSeconds","current","definition","MOCK_DATA_CREATOR_TASK_ID","totalAmount","createdAmount","name","tasks","listTasks","where","parentId","taskStatus_in","TaskDataStatus","PENDING","RUNNING","limit","item","abort","message","exports"],"sources":["MockDataManager.ts"],"sourcesContent":["import type { ITask, ITaskResponseResult, ITaskRunParams } from \"@webiny/tasks\";\nimport { TaskDataStatus } from \"@webiny/tasks\";\nimport type { IMockDataManagerInput, IMockDataManagerOutput } from \"~/tasks/MockDataManager/types\";\nimport { calculateAmounts } from \"./calculateAmounts\";\nimport type { IMockDataCreatorInput } from \"~/tasks/MockDataCreator/types\";\nimport { calculateSeconds, WAIT_MAX_SECONDS } from \"./calculateSeconds\";\nimport { MOCK_DATA_CREATOR_TASK_ID } from \"~/tasks/createMockDataCreatorTask\";\nimport { createModelAndGroup } from \"~/tasks/MockDataManager/createModelAndGroup\";\nimport type { Context } from \"~/types\";\nimport { disableIndexing, enableIndexing } from \"~/utils\";\n\nexport class MockDataManager<\n C extends Context,\n I extends IMockDataManagerInput,\n O extends IMockDataManagerOutput\n> {\n public async execute(params: ITaskRunParams<C, I, O>): Promise<ITaskResponseResult<I, O>> {\n const { context, isAborted, input, response, trigger, store } = params;\n\n const taskId = store.getTask().id;\n if (isAborted()) {\n await this.abortChildTasks(context, taskId);\n return response.aborted();\n } else if (input.seconds) {\n const items = await this.listChildTasksNotDone(context, taskId);\n\n /**\n * If there are still running creator tasks, we need to wait a bit more.\n */\n if (items.length > 0) {\n return response.continue(\n {\n ...input\n },\n {\n seconds: input.seconds || WAIT_MAX_SECONDS\n }\n );\n }\n /**\n * If there are no running tasks, we can enable indexing and finish the manager task.\n */\n await enableIndexing({\n client: context.elasticsearch,\n model: {\n modelId: input.modelId,\n tenant: \"root\",\n locale: \"en-US\"\n }\n });\n return response.done();\n }\n\n const result = await createModelAndGroup({\n context,\n modelId: input.modelId,\n overwrite: input.overwrite\n });\n if (typeof result === \"string\") {\n return response.done(result);\n }\n\n await disableIndexing({\n model: result.model,\n client: context.elasticsearch\n });\n\n const { amountOfTasks, amountOfRecords } = calculateAmounts(input.amount);\n\n const seconds = calculateSeconds(amountOfRecords);\n\n for (let current = 0; current < amountOfTasks; current++) {\n await trigger<IMockDataCreatorInput>({\n definition: MOCK_DATA_CREATOR_TASK_ID,\n input: {\n totalAmount: amountOfRecords,\n createdAmount: 0\n },\n name: `Mock Data Creator Task #${current + 1} of ${amountOfTasks}`\n });\n }\n\n return response.continue(\n {\n ...input,\n seconds,\n amountOfTasks,\n amountOfRecords\n },\n {\n seconds\n }\n );\n }\n\n private async listChildTasksNotDone(context: Context, id: string): Promise<ITask[]> {\n const { items } = await context.tasks.listTasks({\n where: {\n parentId: id,\n taskStatus_in: [TaskDataStatus.PENDING, TaskDataStatus.RUNNING]\n },\n limit: 10000\n });\n return items;\n }\n\n private async abortChildTasks(context: Context, id: string): Promise<void> {\n const items = await this.listChildTasksNotDone(context, id);\n for (const item of items) {\n await context.tasks.abort({\n id: item.id,\n message: \"Aborted by parent task.\"\n });\n }\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,0BAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AAEA,IAAAK,MAAA,GAAAL,OAAA;AAEO,MAAMM,eAAe,CAI1B;EACE,MAAaC,OAAOA,CAACC,MAA+B,EAAsC;IACtF,MAAM;MAAEC,OAAO;MAAEC,SAAS;MAAEC,KAAK;MAAEC,QAAQ;MAAEC,OAAO;MAAEC;IAAM,CAAC,GAAGN,MAAM;IAEtE,MAAMO,MAAM,GAAGD,KAAK,CAACE,OAAO,CAAC,CAAC,CAACC,EAAE;IACjC,IAAIP,SAAS,CAAC,CAAC,EAAE;MACb,MAAM,IAAI,CAACQ,eAAe,CAACT,OAAO,EAAEM,MAAM,CAAC;MAC3C,OAAOH,QAAQ,CAACO,OAAO,CAAC,CAAC;IAC7B,CAAC,MAAM,IAAIR,KAAK,CAACS,OAAO,EAAE;MACtB,MAAMC,KAAK,GAAG,MAAM,IAAI,CAACC,qBAAqB,CAACb,OAAO,EAAEM,MAAM,CAAC;;MAE/D;AACZ;AACA;MACY,IAAIM,KAAK,CAACE,MAAM,GAAG,CAAC,EAAE;QAClB,OAAOX,QAAQ,CAACY,QAAQ,CACpB;UACI,GAAGb;QACP,CAAC,EACD;UACIS,OAAO,EAAET,KAAK,CAACS,OAAO,IAAIK;QAC9B,CACJ,CAAC;MACL;MACA;AACZ;AACA;MACY,MAAM,IAAAC,qBAAc,EAAC;QACjBC,MAAM,EAAElB,OAAO,CAACmB,aAAa;QAC7BC,KAAK,EAAE;UACHC,OAAO,EAAEnB,KAAK,CAACmB,OAAO;UACtBC,MAAM,EAAE,MAAM;UACdC,MAAM,EAAE;QACZ;MACJ,CAAC,CAAC;MACF,OAAOpB,QAAQ,CAACqB,IAAI,CAAC,CAAC;IAC1B;IAEA,MAAMC,MAAM,GAAG,MAAM,IAAAC,wCAAmB,EAAC;MACrC1B,OAAO;MACPqB,OAAO,EAAEnB,KAAK,CAACmB,OAAO;MACtBM,SAAS,EAAEzB,KAAK,CAACyB;IACrB,CAAC,CAAC;IACF,IAAI,OAAOF,MAAM,KAAK,QAAQ,EAAE;MAC5B,OAAOtB,QAAQ,CAACqB,IAAI,CAACC,MAAM,CAAC;IAChC;IAEA,MAAM,IAAAG,sBAAe,EAAC;MAClBR,KAAK,EAAEK,MAAM,CAACL,KAAK;MACnBF,MAAM,EAAElB,OAAO,CAACmB;IACpB,CAAC,CAAC;IAEF,MAAM;MAAEU,aAAa;MAAEC;IAAgB,CAAC,GAAG,IAAAC,kCAAgB,EAAC7B,KAAK,CAAC8B,MAAM,CAAC;IAEzE,MAAMrB,OAAO,GAAG,IAAAsB,kCAAgB,EAACH,eAAe,CAAC;IAEjD,KAAK,IAAII,OAAO,GAAG,CAAC,EAAEA,OAAO,GAAGL,aAAa,EAAEK,OAAO,EAAE,EAAE;MACtD,MAAM9B,OAAO,CAAwB;QACjC+B,UAAU,EAAEC,oDAAyB;QACrClC,KAAK,EAAE;UACHmC,WAAW,EAAEP,eAAe;UAC5BQ,aAAa,EAAE;QACnB,CAAC;QACDC,IAAI,EAAE,2BAA2BL,OAAO,GAAG,CAAC,OAAOL,aAAa;MACpE,CAAC,CAAC;IACN;IAEA,OAAO1B,QAAQ,CAACY,QAAQ,CACpB;MACI,GAAGb,KAAK;MACRS,OAAO;MACPkB,aAAa;MACbC;IACJ,CAAC,EACD;MACInB;IACJ,CACJ,CAAC;EACL;EAEA,MAAcE,qBAAqBA,CAACb,OAAgB,EAAEQ,EAAU,EAAoB;IAChF,MAAM;MAAEI;IAAM,CAAC,GAAG,MAAMZ,OAAO,CAACwC,KAAK,CAACC,SAAS,CAAC;MAC5CC,KAAK,EAAE;QACHC,QAAQ,EAAEnC,EAAE;QACZoC,aAAa,EAAE,CAACC,qBAAc,CAACC,OAAO,EAAED,qBAAc,CAACE,OAAO;MAClE,CAAC;MACDC,KAAK,EAAE;IACX,CAAC,CAAC;IACF,OAAOpC,KAAK;EAChB;EAEA,MAAcH,eAAeA,CAACT,OAAgB,EAAEQ,EAAU,EAAiB;IACvE,MAAMI,KAAK,GAAG,MAAM,IAAI,CAACC,qBAAqB,CAACb,OAAO,EAAEQ,EAAE,CAAC;IAC3D,KAAK,MAAMyC,IAAI,IAAIrC,KAAK,EAAE;MACtB,MAAMZ,OAAO,CAACwC,KAAK,CAACU,KAAK,CAAC;QACtB1C,EAAE,EAAEyC,IAAI,CAACzC,EAAE;QACX2C,OAAO,EAAE;MACb,CAAC,CAAC;IACN;EACJ;AACJ;AAACC,OAAA,CAAAvD,eAAA,GAAAA,eAAA","ignoreList":[]}
1
+ {"version":3,"file":"tasks/MockDataManager/MockDataManager.js","sources":["../../../src/tasks/MockDataManager/MockDataManager.ts"],"sourcesContent":["import { TaskDataStatus, AbortTaskUseCase, ListTasksUseCase } from \"@webiny/background-tasks/api\";\nimport type {\n IMockDataManagerInput,\n IMockDataManagerOutput\n} from \"~/tasks/MockDataManager/types.js\";\nimport { calculateAmounts } from \"./calculateAmounts.js\";\nimport type { IMockDataCreatorInput } from \"~/tasks/MockDataCreator/types.js\";\nimport { calculateSeconds, WAIT_MAX_SECONDS } from \"./calculateSeconds.js\";\nimport { createModelAndGroup } from \"~/tasks/MockDataManager/createModelAndGroup.js\";\nimport type { StorageCmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { Context } from \"~/types.js\";\nimport { disableIndexing, enableIndexing } from \"~/utils/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { MOCK_DATA_CREATOR_TASK_ID } from \"~/tasks/MockDataCreatorTask.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { OpenSearchClient } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\nimport type { CmsModelOpenSearchIndexProvider } from \"@webiny/api-headless-cms-utils-os/exports/api/cms/opensearch.js\";\n\nexport class MockDataManager<I extends IMockDataManagerInput, O extends IMockDataManagerOutput> {\n constructor(\n private readonly context: Context,\n private readonly openSearchClient: OpenSearchClient.Interface,\n private readonly indexProvider: CmsModelOpenSearchIndexProvider.Interface\n ) {}\n\n public async execute(\n params: TaskDefinition.RunParams<I, O>\n ): Promise<TaskDefinition.Result<I, O>> {\n const { input, controller } = params;\n\n const taskId = controller.state.getTask().id;\n if (controller.runtime.isAborted()) {\n await this.abortChildTasks(this.context, taskId);\n return controller.response.aborted();\n } else if (input.seconds) {\n const items = await this.listChildTasksNotDone(this.context, taskId);\n\n /**\n * If there are still running creator tasks, we need to wait a bit more.\n */\n if (items.length > 0) {\n return controller.response.continue(\n {\n ...input\n },\n {\n seconds: input.seconds || WAIT_MAX_SECONDS\n }\n );\n }\n /**\n * If there are no running tasks, we can enable indexing and finish the manager task.\n */\n await enableIndexing({\n client: this.openSearchClient.use(),\n model: {\n modelId: input.modelId,\n tenant: \"root\"\n } as StorageCmsModel,\n indexProvider: this.indexProvider\n });\n return controller.response.done();\n }\n\n const result = await createModelAndGroup({\n context: this.context,\n modelId: input.modelId,\n overwrite: input.overwrite\n });\n if (typeof result === \"string\") {\n return controller.response.done(result);\n }\n\n await disableIndexing({\n model: result.model,\n client: this.openSearchClient.use(),\n indexProvider: this.indexProvider\n });\n\n const { amountOfTasks, amountOfRecords } = calculateAmounts(input.amount);\n\n const seconds = calculateSeconds(amountOfRecords);\n\n for (let current = 0; current < amountOfTasks; current++) {\n await controller.task.trigger<IMockDataCreatorInput>({\n definition: MOCK_DATA_CREATOR_TASK_ID,\n input: {\n totalAmount: amountOfRecords,\n createdAmount: 0\n },\n name: `Mock Data Creator Task #${current + 1} of ${amountOfTasks}`\n });\n }\n\n return controller.response.continue(\n {\n ...input,\n seconds,\n amountOfTasks,\n amountOfRecords\n },\n {\n seconds\n }\n );\n }\n\n private async listChildTasksNotDone(context: Context, id: string): Promise<TaskService.Task[]> {\n const { items } = await context.container.resolve(ListTasksUseCase).execute({\n where: {\n parentId: id,\n taskStatus_in: [TaskDataStatus.PENDING, TaskDataStatus.RUNNING]\n },\n limit: 10000\n });\n return items;\n }\n\n private async abortChildTasks(context: Context, id: string): Promise<void> {\n const items = await this.listChildTasksNotDone(context, id);\n for (const item of items) {\n await context.container.resolve(AbortTaskUseCase).execute({\n id: item.id,\n message: \"Aborted by parent task.\"\n });\n }\n }\n}\n"],"names":["MockDataManager","context","openSearchClient","indexProvider","params","input","controller","taskId","items","WAIT_MAX_SECONDS","enableIndexing","result","createModelAndGroup","disableIndexing","amountOfTasks","amountOfRecords","calculateAmounts","seconds","calculateSeconds","current","MOCK_DATA_CREATOR_TASK_ID","id","ListTasksUseCase","TaskDataStatus","item","AbortTaskUseCase"],"mappings":";;;;;;AAkBO,MAAMA;IACT,YACqBC,OAAgB,EAChBC,gBAA4C,EAC5CC,aAAwD,CAC3E;aAHmBF,OAAO,GAAPA;aACAC,gBAAgB,GAAhBA;aACAC,aAAa,GAAbA;IAClB;IAEH,MAAa,QACTC,MAAsC,EACF;QACpC,MAAM,EAAEC,KAAK,EAAEC,UAAU,EAAE,GAAGF;QAE9B,MAAMG,SAASD,WAAW,KAAK,CAAC,OAAO,GAAG,EAAE;QAC5C,IAAIA,WAAW,OAAO,CAAC,SAAS,IAAI;YAChC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAEC;YACzC,OAAOD,WAAW,QAAQ,CAAC,OAAO;QACtC;QAAO,IAAID,MAAM,OAAO,EAAE;YACtB,MAAMG,QAAQ,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAED;YAK7D,IAAIC,MAAM,MAAM,GAAG,GACf,OAAOF,WAAW,QAAQ,CAAC,QAAQ,CAC/B;gBACI,GAAGD,KAAK;YACZ,GACA;gBACI,SAASA,MAAM,OAAO,IAAII;YAC9B;YAMR,MAAMC,eAAe;gBACjB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG;gBACjC,OAAO;oBACH,SAASL,MAAM,OAAO;oBACtB,QAAQ;gBACZ;gBACA,eAAe,IAAI,CAAC,aAAa;YACrC;YACA,OAAOC,WAAW,QAAQ,CAAC,IAAI;QACnC;QAEA,MAAMK,SAAS,MAAMC,oBAAoB;YACrC,SAAS,IAAI,CAAC,OAAO;YACrB,SAASP,MAAM,OAAO;YACtB,WAAWA,MAAM,SAAS;QAC9B;QACA,IAAI,AAAkB,YAAlB,OAAOM,QACP,OAAOL,WAAW,QAAQ,CAAC,IAAI,CAACK;QAGpC,MAAME,gBAAgB;YAClB,OAAOF,OAAO,KAAK;YACnB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG;YACjC,eAAe,IAAI,CAAC,aAAa;QACrC;QAEA,MAAM,EAAEG,aAAa,EAAEC,eAAe,EAAE,GAAGC,iBAAiBX,MAAM,MAAM;QAExE,MAAMY,UAAUC,iBAAiBH;QAEjC,IAAK,IAAII,UAAU,GAAGA,UAAUL,eAAeK,UAC3C,MAAMb,WAAW,IAAI,CAAC,OAAO,CAAwB;YACjD,YAAYc;YACZ,OAAO;gBACH,aAAaL;gBACb,eAAe;YACnB;YACA,MAAM,CAAC,wBAAwB,EAAEI,UAAU,EAAE,IAAI,EAAEL,eAAe;QACtE;QAGJ,OAAOR,WAAW,QAAQ,CAAC,QAAQ,CAC/B;YACI,GAAGD,KAAK;YACRY;YACAH;YACAC;QACJ,GACA;YACIE;QACJ;IAER;IAEA,MAAc,sBAAsBhB,OAAgB,EAAEoB,EAAU,EAA+B;QAC3F,MAAM,EAAEb,KAAK,EAAE,GAAG,MAAMP,QAAQ,SAAS,CAAC,OAAO,CAACqB,kBAAkB,OAAO,CAAC;YACxE,OAAO;gBACH,UAAUD;gBACV,eAAe;oBAACE,eAAe,OAAO;oBAAEA,eAAe,OAAO;iBAAC;YACnE;YACA,OAAO;QACX;QACA,OAAOf;IACX;IAEA,MAAc,gBAAgBP,OAAgB,EAAEoB,EAAU,EAAiB;QACvE,MAAMb,QAAQ,MAAM,IAAI,CAAC,qBAAqB,CAACP,SAASoB;QACxD,KAAK,MAAMG,QAAQhB,MACf,MAAMP,QAAQ,SAAS,CAAC,OAAO,CAACwB,kBAAkB,OAAO,CAAC;YACtD,IAAID,KAAK,EAAE;YACX,SAAS;QACb;IAER;AACJ"}
@@ -1,63 +1,31 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.calculateAmounts = void 0;
7
- const constrains = [{
8
- amount: 50,
9
- percentagePerTask: 100
10
- }, {
11
- amount: 1000,
12
- percentagePerTask: 50
13
- }, {
14
- amount: 100000,
15
- percentagePerTask: 20
16
- }
17
- // {
18
- // amount: 50000,
19
- // percentagePerTask: 10
20
- // },
21
- // {
22
- // amount: 750000,
23
- // percentagePerTask: 10
24
- // },
25
- // {
26
- // amount: 1000000,
27
- // percentagePerTask: 2
28
- // },
29
- // {
30
- // amount: 5000000,
31
- // percentagePerTask: 1
32
- // },
33
- // {
34
- // amount: 10000000,
35
- // percentagePerTask: 0.5
36
- // }
37
- ];
38
- const findValue = input => {
39
- for (const value of constrains) {
40
- if (input <= value.amount) {
41
- return value;
1
+ const constrains = [
2
+ {
3
+ amount: 50,
4
+ percentagePerTask: 100
5
+ },
6
+ {
7
+ amount: 1000,
8
+ percentagePerTask: 50
9
+ },
10
+ {
11
+ amount: 100000,
12
+ percentagePerTask: 20
42
13
  }
43
- }
44
- throw new Error(`No valid value found - input value is too large: ${input}.`);
14
+ ];
15
+ const findValue = (input)=>{
16
+ for (const value of constrains)if (input <= value.amount) return value;
17
+ throw new Error(`No valid value found - input value is too large: ${input}.`);
45
18
  };
46
- const calculateAmounts = input => {
47
- const values = findValue(input);
48
- const {
49
- percentagePerTask
50
- } = values;
51
- /**
52
- * Do not ask...
53
- */
54
- const amountOfRecords = percentagePerTask < 100 ? Math.round(parseFloat(String(input / (100 / percentagePerTask)))) : input;
55
- const amountOfTasks = Math.ceil(100 / percentagePerTask);
56
- return {
57
- amountOfRecords,
58
- amountOfTasks
59
- };
19
+ const calculateAmounts = (input)=>{
20
+ const values = findValue(input);
21
+ const { percentagePerTask } = values;
22
+ const amountOfRecords = percentagePerTask < 100 ? Math.round(parseFloat(String(input / (100 / percentagePerTask)))) : input;
23
+ const amountOfTasks = Math.ceil(100 / percentagePerTask);
24
+ return {
25
+ amountOfRecords,
26
+ amountOfTasks
27
+ };
60
28
  };
61
- exports.calculateAmounts = calculateAmounts;
29
+ export { calculateAmounts };
62
30
 
63
31
  //# sourceMappingURL=calculateAmounts.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["constrains","amount","percentagePerTask","findValue","input","value","Error","calculateAmounts","values","amountOfRecords","Math","round","parseFloat","String","amountOfTasks","ceil","exports"],"sources":["calculateAmounts.ts"],"sourcesContent":["interface ICalculateAmounts {\n amountOfTasks: number;\n amountOfRecords: number;\n}\n\ninterface IMaxRecordsPerTask {\n amount: number;\n percentagePerTask: number;\n}\n\nconst constrains: IMaxRecordsPerTask[] = [\n {\n amount: 50,\n percentagePerTask: 100\n },\n {\n amount: 1000,\n percentagePerTask: 50\n },\n {\n amount: 100000,\n percentagePerTask: 20\n }\n // {\n // amount: 50000,\n // percentagePerTask: 10\n // },\n // {\n // amount: 750000,\n // percentagePerTask: 10\n // },\n // {\n // amount: 1000000,\n // percentagePerTask: 2\n // },\n // {\n // amount: 5000000,\n // percentagePerTask: 1\n // },\n // {\n // amount: 10000000,\n // percentagePerTask: 0.5\n // }\n];\n\nconst findValue = (input: number): IMaxRecordsPerTask => {\n for (const value of constrains) {\n if (input <= value.amount) {\n return value;\n }\n }\n throw new Error(`No valid value found - input value is too large: ${input}.`);\n};\n\nexport const calculateAmounts = (input: number): ICalculateAmounts => {\n const values = findValue(input);\n\n const { percentagePerTask } = values;\n /**\n * Do not ask...\n */\n const amountOfRecords =\n percentagePerTask < 100\n ? Math.round(parseFloat(String(input / (100 / percentagePerTask))))\n : input;\n\n const amountOfTasks = Math.ceil(100 / percentagePerTask);\n\n return {\n amountOfRecords,\n amountOfTasks\n };\n};\n"],"mappings":";;;;;;AAUA,MAAMA,UAAgC,GAAG,CACrC;EACIC,MAAM,EAAE,EAAE;EACVC,iBAAiB,EAAE;AACvB,CAAC,EACD;EACID,MAAM,EAAE,IAAI;EACZC,iBAAiB,EAAE;AACvB,CAAC,EACD;EACID,MAAM,EAAE,MAAM;EACdC,iBAAiB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,CACH;AAED,MAAMC,SAAS,GAAIC,KAAa,IAAyB;EACrD,KAAK,MAAMC,KAAK,IAAIL,UAAU,EAAE;IAC5B,IAAII,KAAK,IAAIC,KAAK,CAACJ,MAAM,EAAE;MACvB,OAAOI,KAAK;IAChB;EACJ;EACA,MAAM,IAAIC,KAAK,CAAC,oDAAoDF,KAAK,GAAG,CAAC;AACjF,CAAC;AAEM,MAAMG,gBAAgB,GAAIH,KAAa,IAAwB;EAClE,MAAMI,MAAM,GAAGL,SAAS,CAACC,KAAK,CAAC;EAE/B,MAAM;IAAEF;EAAkB,CAAC,GAAGM,MAAM;EACpC;AACJ;AACA;EACI,MAAMC,eAAe,GACjBP,iBAAiB,GAAG,GAAG,GACjBQ,IAAI,CAACC,KAAK,CAACC,UAAU,CAACC,MAAM,CAACT,KAAK,IAAI,GAAG,GAAGF,iBAAiB,CAAC,CAAC,CAAC,CAAC,GACjEE,KAAK;EAEf,MAAMU,aAAa,GAAGJ,IAAI,CAACK,IAAI,CAAC,GAAG,GAAGb,iBAAiB,CAAC;EAExD,OAAO;IACHO,eAAe;IACfK;EACJ,CAAC;AACL,CAAC;AAACE,OAAA,CAAAT,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"file":"tasks/MockDataManager/calculateAmounts.js","sources":["../../../src/tasks/MockDataManager/calculateAmounts.ts"],"sourcesContent":["interface ICalculateAmounts {\n amountOfTasks: number;\n amountOfRecords: number;\n}\n\ninterface IMaxRecordsPerTask {\n amount: number;\n percentagePerTask: number;\n}\n\nconst constrains: IMaxRecordsPerTask[] = [\n {\n amount: 50,\n percentagePerTask: 100\n },\n {\n amount: 1000,\n percentagePerTask: 50\n },\n {\n amount: 100000,\n percentagePerTask: 20\n }\n // {\n // amount: 50000,\n // percentagePerTask: 10\n // },\n // {\n // amount: 750000,\n // percentagePerTask: 10\n // },\n // {\n // amount: 1000000,\n // percentagePerTask: 2\n // },\n // {\n // amount: 5000000,\n // percentagePerTask: 1\n // },\n // {\n // amount: 10000000,\n // percentagePerTask: 0.5\n // }\n];\n\nconst findValue = (input: number): IMaxRecordsPerTask => {\n for (const value of constrains) {\n if (input <= value.amount) {\n return value;\n }\n }\n throw new Error(`No valid value found - input value is too large: ${input}.`);\n};\n\nexport const calculateAmounts = (input: number): ICalculateAmounts => {\n const values = findValue(input);\n\n const { percentagePerTask } = values;\n /**\n * Do not ask...\n */\n const amountOfRecords =\n percentagePerTask < 100\n ? Math.round(parseFloat(String(input / (100 / percentagePerTask))))\n : input;\n\n const amountOfTasks = Math.ceil(100 / percentagePerTask);\n\n return {\n amountOfRecords,\n amountOfTasks\n };\n};\n"],"names":["constrains","findValue","input","value","Error","calculateAmounts","values","percentagePerTask","amountOfRecords","Math","parseFloat","String","amountOfTasks"],"mappings":"AAUA,MAAMA,aAAmC;IACrC;QACI,QAAQ;QACR,mBAAmB;IACvB;IACA;QACI,QAAQ;QACR,mBAAmB;IACvB;IACA;QACI,QAAQ;QACR,mBAAmB;IACvB;CAqBH;AAED,MAAMC,YAAY,CAACC;IACf,KAAK,MAAMC,SAASH,WAChB,IAAIE,SAASC,MAAM,MAAM,EACrB,OAAOA;IAGf,MAAM,IAAIC,MAAM,CAAC,iDAAiD,EAAEF,MAAM,CAAC,CAAC;AAChF;AAEO,MAAMG,mBAAmB,CAACH;IAC7B,MAAMI,SAASL,UAAUC;IAEzB,MAAM,EAAEK,iBAAiB,EAAE,GAAGD;IAI9B,MAAME,kBACFD,oBAAoB,MACdE,KAAK,KAAK,CAACC,WAAWC,OAAOT,QAAS,OAAMK,iBAAgB,OAC5DL;IAEV,MAAMU,gBAAgBH,KAAK,IAAI,CAAC,MAAMF;IAEtC,OAAO;QACHC;QACAI;IACJ;AACJ"}
@@ -1,23 +1,13 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.calculateSeconds = exports.WAIT_MIN_SECONDS = exports.WAIT_MAX_SECONDS = void 0;
7
1
  const recordsPerSecond = 4;
8
- const WAIT_MIN_SECONDS = exports.WAIT_MIN_SECONDS = 15;
9
- const WAIT_MAX_SECONDS = exports.WAIT_MAX_SECONDS = 90;
10
- const calculateSeconds = records => {
11
- const seconds = Math.ceil(records / recordsPerSecond);
12
- if (seconds > WAIT_MAX_SECONDS) {
2
+ const WAIT_MIN_SECONDS = 15;
3
+ const WAIT_MAX_SECONDS = 90;
4
+ const calculateSeconds = (records)=>{
5
+ const seconds = Math.ceil(records / recordsPerSecond);
6
+ if (seconds > WAIT_MAX_SECONDS) ;
7
+ else if (seconds < WAIT_MIN_SECONDS) return WAIT_MIN_SECONDS;
8
+ else if (seconds > 0) return seconds;
13
9
  return WAIT_MAX_SECONDS;
14
- } else if (seconds < WAIT_MIN_SECONDS) {
15
- return WAIT_MIN_SECONDS;
16
- } else if (seconds > 0) {
17
- return seconds;
18
- }
19
- return WAIT_MAX_SECONDS;
20
10
  };
21
- exports.calculateSeconds = calculateSeconds;
11
+ export { WAIT_MAX_SECONDS, WAIT_MIN_SECONDS, calculateSeconds };
22
12
 
23
13
  //# sourceMappingURL=calculateSeconds.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["recordsPerSecond","WAIT_MIN_SECONDS","exports","WAIT_MAX_SECONDS","calculateSeconds","records","seconds","Math","ceil"],"sources":["calculateSeconds.ts"],"sourcesContent":["const recordsPerSecond = 4;\nexport const WAIT_MIN_SECONDS = 15;\nexport const WAIT_MAX_SECONDS = 90;\n\nexport const calculateSeconds = (records: number): number => {\n const seconds = Math.ceil(records / recordsPerSecond);\n if (seconds > WAIT_MAX_SECONDS) {\n return WAIT_MAX_SECONDS;\n } else if (seconds < WAIT_MIN_SECONDS) {\n return WAIT_MIN_SECONDS;\n } else if (seconds > 0) {\n return seconds;\n }\n return WAIT_MAX_SECONDS;\n};\n"],"mappings":";;;;;;AAAA,MAAMA,gBAAgB,GAAG,CAAC;AACnB,MAAMC,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,EAAE;AAC3B,MAAME,gBAAgB,GAAAD,OAAA,CAAAC,gBAAA,GAAG,EAAE;AAE3B,MAAMC,gBAAgB,GAAIC,OAAe,IAAa;EACzD,MAAMC,OAAO,GAAGC,IAAI,CAACC,IAAI,CAACH,OAAO,GAAGL,gBAAgB,CAAC;EACrD,IAAIM,OAAO,GAAGH,gBAAgB,EAAE;IAC5B,OAAOA,gBAAgB;EAC3B,CAAC,MAAM,IAAIG,OAAO,GAAGL,gBAAgB,EAAE;IACnC,OAAOA,gBAAgB;EAC3B,CAAC,MAAM,IAAIK,OAAO,GAAG,CAAC,EAAE;IACpB,OAAOA,OAAO;EAClB;EACA,OAAOH,gBAAgB;AAC3B,CAAC;AAACD,OAAA,CAAAE,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"file":"tasks/MockDataManager/calculateSeconds.js","sources":["../../../src/tasks/MockDataManager/calculateSeconds.ts"],"sourcesContent":["const recordsPerSecond = 4;\nexport const WAIT_MIN_SECONDS = 15;\nexport const WAIT_MAX_SECONDS = 90;\n\nexport const calculateSeconds = (records: number): number => {\n const seconds = Math.ceil(records / recordsPerSecond);\n if (seconds > WAIT_MAX_SECONDS) {\n return WAIT_MAX_SECONDS;\n } else if (seconds < WAIT_MIN_SECONDS) {\n return WAIT_MIN_SECONDS;\n } else if (seconds > 0) {\n return seconds;\n }\n return WAIT_MAX_SECONDS;\n};\n"],"names":["recordsPerSecond","WAIT_MIN_SECONDS","WAIT_MAX_SECONDS","calculateSeconds","records","seconds","Math"],"mappings":"AAAA,MAAMA,mBAAmB;AAClB,MAAMC,mBAAmB;AACzB,MAAMC,mBAAmB;AAEzB,MAAMC,mBAAmB,CAACC;IAC7B,MAAMC,UAAUC,KAAK,IAAI,CAACF,UAAUJ;IACpC,IAAIK,UAAUH;SAEP,IAAIG,UAAUJ,kBACjB,OAAOA;SACJ,IAAII,UAAU,GACjB,OAAOA;IAEX,OAAOH;AACX"}
@@ -1,9 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.CARS_MODEL_ID = void 0;
7
- const CARS_MODEL_ID = exports.CARS_MODEL_ID = "cars";
1
+ const CARS_MODEL_ID = "cars";
2
+ export { CARS_MODEL_ID };
8
3
 
9
4
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CARS_MODEL_ID","exports"],"sources":["constants.ts"],"sourcesContent":["export const CARS_MODEL_ID = \"cars\";\n"],"mappings":";;;;;;AAAO,MAAMA,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,MAAM","ignoreList":[]}
1
+ {"version":3,"file":"tasks/MockDataManager/constants.js","sources":["../../../src/tasks/MockDataManager/constants.ts"],"sourcesContent":["export const CARS_MODEL_ID = \"cars\";\n"],"names":["CARS_MODEL_ID"],"mappings":"AAAO,MAAMA,gBAAgB"}
@@ -1,5 +1,5 @@
1
- import type { CmsGroup, CmsModel } from "@webiny/api-headless-cms/types";
2
- import type { Context } from "../../types";
1
+ import type { CmsGroup, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { Context } from "../../types.js";
3
3
  interface ICreateModelAndGroupParams {
4
4
  context: Context;
5
5
  modelId: string;
@@ -1,47 +1,44 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createModelAndGroup = void 0;
7
- var _group = require("./group");
8
- var _model = require("./model");
9
- var _utils = require("../../utils");
10
- const createModelAndGroup = async params => {
11
- const {
12
- context,
13
- modelId,
14
- overwrite = false
15
- } = params;
16
- /**
17
- * First we need to check if the model already exists in the database. If not, we need to create it.
18
- */
19
- let model = (await context.cms.listModels()).find(m => m.modelId === modelId);
20
- let group;
21
- if (model && !overwrite) {
22
- return `Model "${modelId}" already exists.`;
23
- } else if (!model) {
24
- group = (await context.cms.listGroups()).find(group => group.slug === "mocks");
25
- if (!group) {
26
- const groupData = (0, _group.createGroupData)();
27
- group = await context.cms.createGroup(groupData);
1
+ import { createGroupData } from "./group.js";
2
+ import { createCarsModel } from "./model.js";
3
+ import { createIndex } from "../../utils/index.js";
4
+ import { CmsModelOpenSearchIndexProvider } from "@webiny/api-headless-cms-utils-os/exports/api/cms/opensearch.js";
5
+ import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
6
+ import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
7
+ import { ListGroupsUseCase } from "@webiny/api-headless-cms/features/contentModelGroup/ListGroups/index.js";
8
+ import { CreateGroupUseCase } from "@webiny/api-headless-cms/features/contentModelGroup/CreateGroup/index.js";
9
+ import { CreateModelUseCase } from "@webiny/api-headless-cms/features/contentModel/CreateModel/index.js";
10
+ const createModelAndGroup = async (params)=>{
11
+ const { context, modelId, overwrite = false } = params;
12
+ const modelsResult = await context.container.resolve(ListModelsUseCase).execute();
13
+ if (modelsResult.isFail()) throw modelsResult.error;
14
+ let model = modelsResult.value.find((m)=>m.modelId === modelId);
15
+ let group;
16
+ if (model && !overwrite) return `Model "${modelId}" already exists.`;
17
+ if (!model) {
18
+ const groupsResult = await context.container.resolve(ListGroupsUseCase).execute();
19
+ if (groupsResult.isFail()) throw groupsResult.error;
20
+ group = groupsResult.value.find((g)=>"mocks" === g.slug);
21
+ if (!group) {
22
+ const groupData = createGroupData();
23
+ const createGroupResult = await context.container.resolve(CreateGroupUseCase).execute(groupData);
24
+ if (createGroupResult.isFail()) throw createGroupResult.error;
25
+ group = createGroupResult.value;
26
+ }
27
+ const carsModel = createCarsModel(group);
28
+ const createModelResult = await context.container.resolve(CreateModelUseCase).execute(carsModel);
29
+ if (createModelResult.isFail()) throw createModelResult.error;
30
+ model = createModelResult.value;
28
31
  }
29
- /**
30
- * Possibly we need to create the model.
31
- */
32
- const carsModel = (0, _model.createCarsModel)(group);
33
- model = await context.cms.createModel(carsModel);
34
- }
35
- await (0, _utils.createIndex)({
36
- model,
37
- client: context.elasticsearch,
38
- plugins: context.plugins
39
- });
40
- return {
41
- group: group,
42
- model: model
43
- };
32
+ await createIndex({
33
+ model,
34
+ client: context.container.resolve(OpenSearchClient).use(),
35
+ indexProvider: context.container.resolve(CmsModelOpenSearchIndexProvider)
36
+ });
37
+ return {
38
+ group: group,
39
+ model: model
40
+ };
44
41
  };
45
- exports.createModelAndGroup = createModelAndGroup;
42
+ export { createModelAndGroup };
46
43
 
47
44
  //# sourceMappingURL=createModelAndGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_group","require","_model","_utils","createModelAndGroup","params","context","modelId","overwrite","model","cms","listModels","find","m","group","listGroups","slug","groupData","createGroupData","createGroup","carsModel","createCarsModel","createModel","createIndex","client","elasticsearch","plugins","exports"],"sources":["createModelAndGroup.ts"],"sourcesContent":["import type { CmsGroup, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport type { Context } from \"~/types\";\nimport { createGroupData } from \"./group\";\nimport { createCarsModel } from \"./model\";\nimport { createIndex } from \"~/utils\";\n\ninterface ICreateModelAndGroupParams {\n context: Context;\n modelId: string;\n overwrite?: boolean;\n}\nexport interface ICreateModelAndGroupResultSuccess {\n group: CmsGroup;\n model: CmsModel;\n}\nexport type ICreateModelAndGroupResult = string | ICreateModelAndGroupResultSuccess;\n\nexport const createModelAndGroup = async (\n params: ICreateModelAndGroupParams\n): Promise<ICreateModelAndGroupResult> => {\n const { context, modelId, overwrite = false } = params;\n /**\n * First we need to check if the model already exists in the database. If not, we need to create it.\n */\n let model = (await context.cms.listModels()).find(m => m.modelId === modelId);\n let group: CmsGroup | undefined;\n if (model && !overwrite) {\n return `Model \"${modelId}\" already exists.`;\n } else if (!model) {\n group = (await context.cms.listGroups()).find(group => group.slug === \"mocks\");\n if (!group) {\n const groupData = createGroupData();\n group = await context.cms.createGroup(groupData);\n }\n /**\n * Possibly we need to create the model.\n */\n const carsModel = createCarsModel(group);\n model = await context.cms.createModel(carsModel);\n }\n await createIndex({\n model,\n client: context.elasticsearch,\n plugins: context.plugins\n });\n\n return {\n group: group as CmsGroup,\n model: model as CmsModel\n };\n};\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAaO,MAAMG,mBAAmB,GAAG,MAC/BC,MAAkC,IACI;EACtC,MAAM;IAAEC,OAAO;IAAEC,OAAO;IAAEC,SAAS,GAAG;EAAM,CAAC,GAAGH,MAAM;EACtD;AACJ;AACA;EACI,IAAII,KAAK,GAAG,CAAC,MAAMH,OAAO,CAACI,GAAG,CAACC,UAAU,CAAC,CAAC,EAAEC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACN,OAAO,KAAKA,OAAO,CAAC;EAC7E,IAAIO,KAA2B;EAC/B,IAAIL,KAAK,IAAI,CAACD,SAAS,EAAE;IACrB,OAAO,UAAUD,OAAO,mBAAmB;EAC/C,CAAC,MAAM,IAAI,CAACE,KAAK,EAAE;IACfK,KAAK,GAAG,CAAC,MAAMR,OAAO,CAACI,GAAG,CAACK,UAAU,CAAC,CAAC,EAAEH,IAAI,CAACE,KAAK,IAAIA,KAAK,CAACE,IAAI,KAAK,OAAO,CAAC;IAC9E,IAAI,CAACF,KAAK,EAAE;MACR,MAAMG,SAAS,GAAG,IAAAC,sBAAe,EAAC,CAAC;MACnCJ,KAAK,GAAG,MAAMR,OAAO,CAACI,GAAG,CAACS,WAAW,CAACF,SAAS,CAAC;IACpD;IACA;AACR;AACA;IACQ,MAAMG,SAAS,GAAG,IAAAC,sBAAe,EAACP,KAAK,CAAC;IACxCL,KAAK,GAAG,MAAMH,OAAO,CAACI,GAAG,CAACY,WAAW,CAACF,SAAS,CAAC;EACpD;EACA,MAAM,IAAAG,kBAAW,EAAC;IACdd,KAAK;IACLe,MAAM,EAAElB,OAAO,CAACmB,aAAa;IAC7BC,OAAO,EAAEpB,OAAO,CAACoB;EACrB,CAAC,CAAC;EAEF,OAAO;IACHZ,KAAK,EAAEA,KAAiB;IACxBL,KAAK,EAAEA;EACX,CAAC;AACL,CAAC;AAACkB,OAAA,CAAAvB,mBAAA,GAAAA,mBAAA","ignoreList":[]}
1
+ {"version":3,"file":"tasks/MockDataManager/createModelAndGroup.js","sources":["../../../src/tasks/MockDataManager/createModelAndGroup.ts"],"sourcesContent":["import type { CmsGroup, CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { Context } from \"~/types.js\";\nimport { createGroupData } from \"./group.js\";\nimport { createCarsModel } from \"./model.js\";\nimport { createIndex } from \"~/utils/index.js\";\nimport { CmsModelOpenSearchIndexProvider } from \"@webiny/api-headless-cms-utils-os/exports/api/cms/opensearch.js\";\nimport { OpenSearchClient } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { ListGroupsUseCase } from \"@webiny/api-headless-cms/features/contentModelGroup/ListGroups/index.js\";\nimport { CreateGroupUseCase } from \"@webiny/api-headless-cms/features/contentModelGroup/CreateGroup/index.js\";\nimport { CreateModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/CreateModel/index.js\";\n\ninterface ICreateModelAndGroupParams {\n context: Context;\n modelId: string;\n overwrite?: boolean;\n}\nexport interface ICreateModelAndGroupResultSuccess {\n group: CmsGroup;\n model: CmsModel;\n}\nexport type ICreateModelAndGroupResult = string | ICreateModelAndGroupResultSuccess;\n\nexport const createModelAndGroup = async (\n params: ICreateModelAndGroupParams\n): Promise<ICreateModelAndGroupResult> => {\n const { context, modelId, overwrite = false } = params;\n /**\n * First we need to check if the model already exists in the database. If not, we need to create it.\n */\n const modelsResult = await context.container.resolve(ListModelsUseCase).execute();\n if (modelsResult.isFail()) {\n throw modelsResult.error;\n }\n let model = modelsResult.value.find(m => m.modelId === modelId);\n let group: CmsGroup | undefined;\n if (model && !overwrite) {\n return `Model \"${modelId}\" already exists.`;\n } else if (!model) {\n const groupsResult = await context.container.resolve(ListGroupsUseCase).execute();\n if (groupsResult.isFail()) {\n throw groupsResult.error;\n }\n group = groupsResult.value.find(g => g.slug === \"mocks\");\n if (!group) {\n const groupData = createGroupData();\n const createGroupResult = await context.container\n .resolve(CreateGroupUseCase)\n .execute(groupData);\n if (createGroupResult.isFail()) {\n throw createGroupResult.error;\n }\n group = createGroupResult.value;\n }\n /**\n * Possibly we need to create the model.\n */\n const carsModel = createCarsModel(group);\n const createModelResult = await context.container\n .resolve(CreateModelUseCase)\n .execute(carsModel);\n if (createModelResult.isFail()) {\n throw createModelResult.error;\n }\n model = createModelResult.value;\n }\n await createIndex({\n model,\n client: context.container.resolve(OpenSearchClient).use(),\n indexProvider: context.container.resolve(CmsModelOpenSearchIndexProvider)\n });\n\n return {\n group: group as CmsGroup,\n model: model as CmsModel\n };\n};\n"],"names":["createModelAndGroup","params","context","modelId","overwrite","modelsResult","ListModelsUseCase","model","m","group","groupsResult","ListGroupsUseCase","g","groupData","createGroupData","createGroupResult","CreateGroupUseCase","carsModel","createCarsModel","createModelResult","CreateModelUseCase","createIndex","OpenSearchClient","CmsModelOpenSearchIndexProvider"],"mappings":";;;;;;;;;AAuBO,MAAMA,sBAAsB,OAC/BC;IAEA,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,YAAY,KAAK,EAAE,GAAGH;IAIhD,MAAMI,eAAe,MAAMH,QAAQ,SAAS,CAAC,OAAO,CAACI,mBAAmB,OAAO;IAC/E,IAAID,aAAa,MAAM,IACnB,MAAMA,aAAa,KAAK;IAE5B,IAAIE,QAAQF,aAAa,KAAK,CAAC,IAAI,CAACG,CAAAA,IAAKA,EAAE,OAAO,KAAKL;IACvD,IAAIM;IACJ,IAAIF,SAAS,CAACH,WACV,OAAO,CAAC,OAAO,EAAED,QAAQ,iBAAiB,CAAC;IACxC,IAAI,CAACI,OAAO;QACf,MAAMG,eAAe,MAAMR,QAAQ,SAAS,CAAC,OAAO,CAACS,mBAAmB,OAAO;QAC/E,IAAID,aAAa,MAAM,IACnB,MAAMA,aAAa,KAAK;QAE5BD,QAAQC,aAAa,KAAK,CAAC,IAAI,CAACE,CAAAA,IAAKA,AAAW,YAAXA,EAAE,IAAI;QAC3C,IAAI,CAACH,OAAO;YACR,MAAMI,YAAYC;YAClB,MAAMC,oBAAoB,MAAMb,QAAQ,SAAS,CAC5C,OAAO,CAACc,oBACR,OAAO,CAACH;YACb,IAAIE,kBAAkB,MAAM,IACxB,MAAMA,kBAAkB,KAAK;YAEjCN,QAAQM,kBAAkB,KAAK;QACnC;QAIA,MAAME,YAAYC,gBAAgBT;QAClC,MAAMU,oBAAoB,MAAMjB,QAAQ,SAAS,CAC5C,OAAO,CAACkB,oBACR,OAAO,CAACH;QACb,IAAIE,kBAAkB,MAAM,IACxB,MAAMA,kBAAkB,KAAK;QAEjCZ,QAAQY,kBAAkB,KAAK;IACnC;IACA,MAAME,YAAY;QACdd;QACA,QAAQL,QAAQ,SAAS,CAAC,OAAO,CAACoB,kBAAkB,GAAG;QACvD,eAAepB,QAAQ,SAAS,CAAC,OAAO,CAACqB;IAC7C;IAEA,OAAO;QACH,OAAOd;QACP,OAAOF;IACX;AACJ"}
@@ -1,2 +1,2 @@
1
- import type { CmsGroupCreateInput } from "@webiny/api-headless-cms/types";
1
+ import type { CmsGroupCreateInput } from "@webiny/api-headless-cms/types/index.js";
2
2
  export declare const createGroupData: () => CmsGroupCreateInput;
@@ -1,18 +1,13 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createGroupData = void 0;
7
- const createGroupData = () => {
8
- return {
9
- id: "mocks",
10
- icon: "fas/star",
11
- name: "Mocks",
12
- description: "A group for mock models",
13
- slug: "mocks"
14
- };
15
- };
16
- exports.createGroupData = createGroupData;
1
+ const createGroupData = ()=>({
2
+ id: "mocks",
3
+ icon: {
4
+ type: "icon",
5
+ name: "fas/star"
6
+ },
7
+ name: "Mocks",
8
+ description: "A group for mock models",
9
+ slug: "mocks"
10
+ });
11
+ export { createGroupData };
17
12
 
18
13
  //# sourceMappingURL=group.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createGroupData","id","icon","name","description","slug","exports"],"sources":["group.ts"],"sourcesContent":["import type { CmsGroupCreateInput } from \"@webiny/api-headless-cms/types\";\n\nexport const createGroupData = (): CmsGroupCreateInput => {\n return {\n id: \"mocks\",\n icon: \"fas/star\",\n name: \"Mocks\",\n description: \"A group for mock models\",\n slug: \"mocks\"\n };\n};\n"],"mappings":";;;;;;AAEO,MAAMA,eAAe,GAAGA,CAAA,KAA2B;EACtD,OAAO;IACHC,EAAE,EAAE,OAAO;IACXC,IAAI,EAAE,UAAU;IAChBC,IAAI,EAAE,OAAO;IACbC,WAAW,EAAE,yBAAyB;IACtCC,IAAI,EAAE;EACV,CAAC;AACL,CAAC;AAACC,OAAA,CAAAN,eAAA,GAAAA,eAAA","ignoreList":[]}
1
+ {"version":3,"file":"tasks/MockDataManager/group.js","sources":["../../../src/tasks/MockDataManager/group.ts"],"sourcesContent":["import type { CmsGroupCreateInput } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport const createGroupData = (): CmsGroupCreateInput => {\n return {\n id: \"mocks\",\n icon: {\n type: \"icon\",\n name: \"fas/star\"\n },\n name: \"Mocks\",\n description: \"A group for mock models\",\n slug: \"mocks\"\n };\n};\n"],"names":["createGroupData"],"mappings":"AAEO,MAAMA,kBAAkB,IACpB;QACH,IAAI;QACJ,MAAM;YACF,MAAM;YACN,MAAM;QACV;QACA,MAAM;QACN,aAAa;QACb,MAAM;IACV"}
@@ -1,3 +1,3 @@
1
- import type { CmsModelCreateInput } from "@webiny/api-headless-cms/types";
2
- import type { CmsGroup } from "@webiny/api-headless-cms/types";
1
+ import type { CmsModelCreateInput } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { CmsGroup } from "@webiny/api-headless-cms/types/index.js";
3
3
  export declare const createCarsModel: (group: CmsGroup) => CmsModelCreateInput;