@webiny/api-headless-cms-es-tasks 0.0.0-unstable.06b2ede40f → 0.0.0-unstable.0d717d18dd
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HeadlessCmsEsTasksFeature.d.ts +4 -0
- package/HeadlessCmsEsTasksFeature.js +13 -0
- package/HeadlessCmsEsTasksFeature.js.map +1 -0
- package/README.md +11 -15
- package/index.d.ts +4 -3
- package/index.js +3 -37
- package/package.json +25 -26
- package/tasks/MockDataCreator/MockDataCreator.d.ts +9 -5
- package/tasks/MockDataCreator/MockDataCreator.js +68 -97
- package/tasks/MockDataCreator/MockDataCreator.js.map +1 -1
- package/tasks/MockDataCreator/mockData.js +1333 -1193
- package/tasks/MockDataCreator/mockData.js.map +1 -1
- package/tasks/MockDataCreator/types.d.ts +3 -3
- package/tasks/MockDataCreator/types.js +0 -7
- package/tasks/MockDataCreatorTask.d.ts +19 -0
- package/tasks/MockDataCreatorTask.js +33 -0
- package/tasks/MockDataCreatorTask.js.map +1 -0
- package/tasks/MockDataManager/MockDataManager.d.ts +11 -5
- package/tasks/MockDataManager/MockDataManager.js +81 -104
- package/tasks/MockDataManager/MockDataManager.js.map +1 -1
- package/tasks/MockDataManager/calculateAmounts.js +26 -58
- package/tasks/MockDataManager/calculateAmounts.js.map +1 -1
- package/tasks/MockDataManager/calculateSeconds.js +8 -18
- package/tasks/MockDataManager/calculateSeconds.js.map +1 -1
- package/tasks/MockDataManager/constants.js +2 -7
- package/tasks/MockDataManager/constants.js.map +1 -1
- package/tasks/MockDataManager/createModelAndGroup.d.ts +2 -2
- package/tasks/MockDataManager/createModelAndGroup.js +40 -43
- package/tasks/MockDataManager/createModelAndGroup.js.map +1 -1
- package/tasks/MockDataManager/group.d.ts +1 -1
- package/tasks/MockDataManager/group.js +11 -16
- package/tasks/MockDataManager/group.js.map +1 -1
- package/tasks/MockDataManager/model.d.ts +2 -2
- package/tasks/MockDataManager/model.js +6292 -4701
- package/tasks/MockDataManager/model.js.map +1 -1
- package/tasks/MockDataManager/types.d.ts +3 -3
- package/tasks/MockDataManager/types.js +0 -7
- package/tasks/MockDataManagerTask.d.ts +23 -0
- package/tasks/MockDataManagerTask.js +64 -0
- package/tasks/MockDataManagerTask.js.map +1 -0
- package/types.d.ts +4 -5
- package/types.js +0 -18
- package/utils/createIndex.d.ts +5 -5
- package/utils/createIndex.js +19 -35
- package/utils/createIndex.js.map +1 -1
- package/utils/disableIndexing.d.ts +5 -3
- package/utils/disableIndexing.js +22 -31
- package/utils/disableIndexing.js.map +1 -1
- package/utils/enableIndexing.d.ts +5 -3
- package/utils/enableIndexing.js +22 -31
- package/utils/enableIndexing.js.map +1 -1
- package/utils/index.d.ts +3 -3
- package/utils/index.js +3 -40
- package/index.js.map +0 -1
- package/tasks/MockDataCreator/types.js.map +0 -1
- package/tasks/MockDataManager/types.js.map +0 -1
- package/tasks/createMockDataCreatorTask.d.ts +0 -4
- package/tasks/createMockDataCreatorTask.js +0 -29
- package/tasks/createMockDataCreatorTask.js.map +0 -1
- package/tasks/createMockDataManagerTask.d.ts +0 -4
- package/tasks/createMockDataManagerTask.js +0 -61
- package/tasks/createMockDataManagerTask.js.map +0 -1
- package/types.js.map +0 -1
- package/utils/index.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { MockDataCreatorTaskDefinition } from "./tasks/MockDataCreatorTask.js";
|
|
3
|
+
import { MockDataManagerTaskDefinition } from "./tasks/MockDataManagerTask.js";
|
|
4
|
+
const HeadlessCmsEsTasksFeature = createFeature({
|
|
5
|
+
name: "HeadlessCmsEsTasks",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(MockDataCreatorTaskDefinition);
|
|
8
|
+
container.register(MockDataManagerTaskDefinition);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export { HeadlessCmsEsTasksFeature };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=HeadlessCmsEsTasksFeature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeadlessCmsEsTasksFeature.js","sources":["../src/HeadlessCmsEsTasksFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { MockDataCreatorTaskDefinition } from \"~/tasks/MockDataCreatorTask.js\";\nimport { MockDataManagerTaskDefinition } from \"~/tasks/MockDataManagerTask.js\";\n\nexport const HeadlessCmsEsTasksFeature = createFeature({\n name: \"HeadlessCmsEsTasks\",\n register(container) {\n container.register(MockDataCreatorTaskDefinition);\n container.register(MockDataManagerTaskDefinition);\n }\n});\n"],"names":["HeadlessCmsEsTasksFeature","createFeature","container","MockDataCreatorTaskDefinition","MockDataManagerTaskDefinition"],"mappings":";;;AAIO,MAAMA,4BAA4BC,cAAc;IACnD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
|
package/README.md
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
# @webiny/api-headless-cms-tasks
|
|
2
|
-
|
|
3
|
-
[!
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
Or if you prefer yarn:
|
|
13
|
-
```
|
|
14
|
-
yarn add @webiny/api-headless-cms-tasks
|
|
15
|
-
```
|
|
1
|
+
# @webiny/api-headless-cms-es-tasks
|
|
2
|
+
|
|
3
|
+
> [!NOTE]
|
|
4
|
+
> This package is part of the [Webiny](https://www.webiny.com) monorepo.
|
|
5
|
+
> It’s **included in every Webiny project by default** and is not meant to be used as a standalone package.
|
|
6
|
+
|
|
7
|
+
📘 **Documentation:** [https://www.webiny.com/docs](https://www.webiny.com/docs)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
_This README file is automatically generated during the publish process._
|
package/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export
|
|
1
|
+
import { MOCK_DATA_CREATOR_TASK_ID } from "./tasks/MockDataCreatorTask.js";
|
|
2
|
+
import { MOCK_DATA_MANAGER_TASK_ID } from "./tasks/MockDataManagerTask.js";
|
|
3
|
+
export { MOCK_DATA_CREATOR_TASK_ID, MOCK_DATA_MANAGER_TASK_ID };
|
|
4
|
+
export { HeadlessCmsEsTasksFeature } from "./HeadlessCmsEsTasksFeature.js";
|
package/index.js
CHANGED
|
@@ -1,37 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
var _exportNames = {
|
|
7
|
-
createHeadlessCmsEsTasks: true
|
|
8
|
-
};
|
|
9
|
-
exports.createHeadlessCmsEsTasks = void 0;
|
|
10
|
-
var _createMockDataManagerTask = require("./tasks/createMockDataManagerTask");
|
|
11
|
-
Object.keys(_createMockDataManagerTask).forEach(function (key) {
|
|
12
|
-
if (key === "default" || key === "__esModule") return;
|
|
13
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
14
|
-
if (key in exports && exports[key] === _createMockDataManagerTask[key]) return;
|
|
15
|
-
Object.defineProperty(exports, key, {
|
|
16
|
-
enumerable: true,
|
|
17
|
-
get: function () {
|
|
18
|
-
return _createMockDataManagerTask[key];
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
var _createMockDataCreatorTask = require("./tasks/createMockDataCreatorTask");
|
|
23
|
-
Object.keys(_createMockDataCreatorTask).forEach(function (key) {
|
|
24
|
-
if (key === "default" || key === "__esModule") return;
|
|
25
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
26
|
-
if (key in exports && exports[key] === _createMockDataCreatorTask[key]) return;
|
|
27
|
-
Object.defineProperty(exports, key, {
|
|
28
|
-
enumerable: true,
|
|
29
|
-
get: function () {
|
|
30
|
-
return _createMockDataCreatorTask[key];
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
const createHeadlessCmsEsTasks = () => [(0, _createMockDataManagerTask.createMockDataManagerTask)(), (0, _createMockDataCreatorTask.createMockDataCreatorTask)()];
|
|
35
|
-
exports.createHeadlessCmsEsTasks = createHeadlessCmsEsTasks;
|
|
36
|
-
|
|
37
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export { MOCK_DATA_CREATOR_TASK_ID } from "./tasks/MockDataCreatorTask.js";
|
|
2
|
+
export { MOCK_DATA_MANAGER_TASK_ID } from "./tasks/MockDataManagerTask.js";
|
|
3
|
+
export { HeadlessCmsEsTasksFeature } from "./HeadlessCmsEsTasksFeature.js";
|
package/package.json
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-headless-cms-es-tasks",
|
|
3
|
-
"version": "0.0.0-unstable.
|
|
4
|
-
"
|
|
3
|
+
"version": "0.0.0-unstable.0d717d18dd",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"exports": {
|
|
6
|
+
".": "./index.js",
|
|
7
|
+
"./*": "./*"
|
|
8
|
+
},
|
|
5
9
|
"description": "Elasticsearch Background tasks for Webiny Headless CMS",
|
|
6
10
|
"keywords": [
|
|
7
11
|
"api-headless-cms-es-tasks:base"
|
|
@@ -13,33 +17,28 @@
|
|
|
13
17
|
},
|
|
14
18
|
"license": "MIT",
|
|
15
19
|
"dependencies": {
|
|
16
|
-
"@webiny/api-
|
|
17
|
-
"@webiny/api-headless-cms": "0.0.0-unstable.
|
|
18
|
-
"@webiny/api-headless-cms-ddb-es": "0.0.0-unstable.
|
|
19
|
-
"@webiny/
|
|
20
|
-
"@webiny/
|
|
21
|
-
"@webiny/
|
|
22
|
-
"@webiny/utils": "0.0.0-unstable.
|
|
20
|
+
"@webiny/api-core": "0.0.0-unstable.0d717d18dd",
|
|
21
|
+
"@webiny/api-headless-cms": "0.0.0-unstable.0d717d18dd",
|
|
22
|
+
"@webiny/api-headless-cms-ddb-es": "0.0.0-unstable.0d717d18dd",
|
|
23
|
+
"@webiny/api-opensearch": "0.0.0-unstable.0d717d18dd",
|
|
24
|
+
"@webiny/background-tasks": "0.0.0-unstable.0d717d18dd",
|
|
25
|
+
"@webiny/feature": "0.0.0-unstable.0d717d18dd",
|
|
26
|
+
"@webiny/utils": "0.0.0-unstable.0d717d18dd"
|
|
23
27
|
},
|
|
24
28
|
"devDependencies": {
|
|
25
|
-
"@
|
|
26
|
-
"@webiny/api": "0.0.0-unstable.
|
|
27
|
-
"@webiny/
|
|
28
|
-
"@webiny/
|
|
29
|
-
"@webiny/
|
|
30
|
-
"@webiny/
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"@webiny/project-utils": "0.0.0-unstable.06b2ede40f",
|
|
34
|
-
"typescript": "5.3.3"
|
|
35
|
-
},
|
|
36
|
-
"scripts": {
|
|
37
|
-
"build": "node ../cli/bin.js run build",
|
|
38
|
-
"watch": "node ../cli/bin.js run watch"
|
|
29
|
+
"@webiny/api-graphql": "0.0.0-unstable.0d717d18dd",
|
|
30
|
+
"@webiny/api-headless-cms-testing": "0.0.0-unstable.0d717d18dd",
|
|
31
|
+
"@webiny/build-tools": "0.0.0-unstable.0d717d18dd",
|
|
32
|
+
"@webiny/db-dynamodb": "0.0.0-unstable.0d717d18dd",
|
|
33
|
+
"@webiny/project-utils": "0.0.0-unstable.0d717d18dd",
|
|
34
|
+
"@webiny/wcp": "0.0.0-unstable.0d717d18dd",
|
|
35
|
+
"typescript": "7.0.2",
|
|
36
|
+
"vitest": "4.1.10"
|
|
39
37
|
},
|
|
40
38
|
"publishConfig": {
|
|
41
|
-
"access": "public"
|
|
42
|
-
"directory": "dist"
|
|
39
|
+
"access": "public"
|
|
43
40
|
},
|
|
44
|
-
"
|
|
41
|
+
"webiny": {
|
|
42
|
+
"publishFrom": "dist"
|
|
43
|
+
}
|
|
45
44
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import
|
|
3
|
-
import type { Context } from "../../types";
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import type { IMockDataCreatorInput, IMockDataCreatorOutput } from "./types.js";
|
|
2
|
+
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
3
|
+
import type { Context } from "../../types.js";
|
|
4
|
+
import { OpenSearchClient } from "@webiny/api-opensearch/exports/api/opensearch.js";
|
|
5
|
+
export declare class MockDataCreator<I extends IMockDataCreatorInput, O extends IMockDataCreatorOutput> {
|
|
6
|
+
private readonly context;
|
|
7
|
+
private readonly openSearchClient;
|
|
8
|
+
constructor(context: Context, openSearchClient: OpenSearchClient.Interface);
|
|
9
|
+
execute(params: TaskDefinition.RunParams<I, O>): Promise<TaskDefinition.Result<I, O>>;
|
|
6
10
|
}
|
|
@@ -1,106 +1,77 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
var _mockData = require("./mockData");
|
|
8
|
-
var _waitUntilHealthy = require("@webiny/api-elasticsearch/utils/waitUntilHealthy");
|
|
9
|
-
var _types = require("@webiny/api-elasticsearch/operations/types");
|
|
10
|
-
var _utils = require("@webiny/utils");
|
|
1
|
+
import { mockData } from "./mockData.js";
|
|
2
|
+
import { createWaitUntilHealthy } from "@webiny/api-opensearch/utils/waitUntilHealthy/index.js";
|
|
3
|
+
import { OpenSearchCatClusterHealthStatus } from "@webiny/api-opensearch/operations/types.js";
|
|
4
|
+
import { mdbid } from "@webiny/utils";
|
|
5
|
+
import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
6
|
+
import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
|
|
11
7
|
class MockDataCreator {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
isAborted,
|
|
16
|
-
input,
|
|
17
|
-
response,
|
|
18
|
-
isCloseToTimeout
|
|
19
|
-
} = params;
|
|
20
|
-
if (isAborted()) {
|
|
21
|
-
return response.aborted();
|
|
22
|
-
} else if (isCloseToTimeout()) {
|
|
23
|
-
return response.continue({
|
|
24
|
-
...input
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
let manager;
|
|
28
|
-
try {
|
|
29
|
-
manager = await context.cms.getEntryManager("cars");
|
|
30
|
-
} catch (ex) {
|
|
31
|
-
return response.error(ex);
|
|
8
|
+
constructor(context, openSearchClient){
|
|
9
|
+
this.context = context;
|
|
10
|
+
this.openSearchClient = openSearchClient;
|
|
32
11
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
maxRamPercent: 101
|
|
39
|
-
});
|
|
40
|
-
let createdAmount = input.createdAmount;
|
|
41
|
-
for (; createdAmount < input.totalAmount; createdAmount++) {
|
|
42
|
-
if (isAborted()) {
|
|
43
|
-
return response.aborted();
|
|
44
|
-
} else if (isCloseToTimeout()) {
|
|
45
|
-
return response.continue({
|
|
46
|
-
...input,
|
|
47
|
-
createdAmount
|
|
12
|
+
async execute(params) {
|
|
13
|
+
const { input, controller } = params;
|
|
14
|
+
if (controller.runtime.isAborted()) return controller.response.aborted();
|
|
15
|
+
if (controller.runtime.isCloseToTimeout()) return controller.response.continue({
|
|
16
|
+
...input
|
|
48
17
|
});
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
18
|
+
const getModel = this.context.container.resolve(GetModelUseCase);
|
|
19
|
+
const createEntry = this.context.container.resolve(CreateEntryUseCase);
|
|
20
|
+
const modelResult = await getModel.execute("cars");
|
|
21
|
+
if (modelResult.isFail()) return controller.response.error(modelResult.error);
|
|
22
|
+
const model = modelResult.value;
|
|
23
|
+
const healthCheck = createWaitUntilHealthy(this.openSearchClient.use(), {
|
|
24
|
+
waitingTimeStep: 20,
|
|
25
|
+
maxWaitingTime: 150,
|
|
26
|
+
maxProcessorPercent: 80,
|
|
27
|
+
minClusterHealthStatus: OpenSearchCatClusterHealthStatus.Yellow,
|
|
28
|
+
maxRamPercent: 101
|
|
29
|
+
});
|
|
30
|
+
let createdAmount = input.createdAmount;
|
|
31
|
+
for(; createdAmount < input.totalAmount; createdAmount++){
|
|
32
|
+
if (controller.runtime.isAborted()) return controller.response.aborted();
|
|
33
|
+
if (controller.runtime.isCloseToTimeout()) return controller.response.continue({
|
|
34
|
+
...input,
|
|
35
|
+
createdAmount
|
|
36
|
+
});
|
|
37
|
+
if (createdAmount % 50 === 0) try {
|
|
38
|
+
await healthCheck.wait({
|
|
39
|
+
async onUnhealthy ({ waitingTimeStep, startedAt, mustEndAt, runs, waitingReason }) {
|
|
40
|
+
console.warn(`Cluster is unhealthy on run #${runs}.`, {
|
|
41
|
+
startedAt,
|
|
42
|
+
mustEndAt,
|
|
43
|
+
waitingTimeStep,
|
|
44
|
+
waitingReason
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
async onTimeout ({ waitingTimeStep, startedAt, mustEndAt, runs, waitingReason }) {
|
|
48
|
+
console.warn(`Cluster health check timed out on run #${runs}.`, {
|
|
49
|
+
startedAt,
|
|
50
|
+
mustEndAt,
|
|
51
|
+
waitingTimeStep,
|
|
52
|
+
waitingReason
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
} catch {
|
|
57
|
+
return controller.response.continue({
|
|
58
|
+
...input,
|
|
59
|
+
createdAmount
|
|
60
|
+
}, {
|
|
61
|
+
seconds: 30
|
|
62
|
+
});
|
|
80
63
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
});
|
|
64
|
+
const taskId = controller.state.getTask().id;
|
|
65
|
+
const createResult = await createEntry.execute(model, {
|
|
66
|
+
id: `${taskId}${mdbid()}`,
|
|
67
|
+
location: mockData.wbyAco_location,
|
|
68
|
+
values: mockData
|
|
69
|
+
});
|
|
70
|
+
if (createResult.isFail()) return controller.response.error(createResult.error);
|
|
89
71
|
}
|
|
90
|
-
|
|
91
|
-
const taskId = params.store.getTask().id;
|
|
92
|
-
try {
|
|
93
|
-
await manager.create({
|
|
94
|
-
id: `${taskId}${(0, _utils.mdbid)()}`,
|
|
95
|
-
..._mockData.mockData
|
|
96
|
-
});
|
|
97
|
-
} catch (ex) {
|
|
98
|
-
return response.error(ex);
|
|
99
|
-
}
|
|
72
|
+
return params.controller.response.done(`Created ${input.totalAmount} records.`);
|
|
100
73
|
}
|
|
101
|
-
return params.response.done(`Created ${input.totalAmount} records.`);
|
|
102
|
-
}
|
|
103
74
|
}
|
|
104
|
-
|
|
75
|
+
export { MockDataCreator };
|
|
105
76
|
|
|
106
77
|
//# sourceMappingURL=MockDataCreator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"tasks/MockDataCreator/MockDataCreator.js","sources":["../../../src/tasks/MockDataCreator/MockDataCreator.ts"],"sourcesContent":["import type { IMockDataCreatorInput, IMockDataCreatorOutput } from \"./types.js\";\nimport { mockData } from \"./mockData.js\";\nimport { createWaitUntilHealthy } from \"@webiny/api-opensearch/utils/waitUntilHealthy/index.js\";\nimport { OpenSearchCatClusterHealthStatus } from \"@webiny/api-opensearch/operations/types.js\";\nimport { mdbid } from \"@webiny/utils\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { Context } from \"~/types.js\";\nimport { OpenSearchClient } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\n\nexport class MockDataCreator<I extends IMockDataCreatorInput, O extends IMockDataCreatorOutput> {\n constructor(\n private readonly context: Context,\n private readonly openSearchClient: OpenSearchClient.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 if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n } else if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue({\n ...input\n });\n }\n\n const getModel = this.context.container.resolve(GetModelUseCase);\n const createEntry = this.context.container.resolve(CreateEntryUseCase);\n\n const modelResult = await getModel.execute(\"cars\");\n if (modelResult.isFail()) {\n return controller.response.error(modelResult.error);\n }\n\n const model = modelResult.value;\n\n const healthCheck = createWaitUntilHealthy(this.openSearchClient.use(), {\n waitingTimeStep: 20,\n maxWaitingTime: 150,\n maxProcessorPercent: 80,\n minClusterHealthStatus: OpenSearchCatClusterHealthStatus.Yellow,\n maxRamPercent: 101\n });\n\n let createdAmount = input.createdAmount;\n\n for (; createdAmount < input.totalAmount; createdAmount++) {\n if (controller.runtime.isAborted()) {\n return controller.response.aborted();\n } else if (controller.runtime.isCloseToTimeout()) {\n return controller.response.continue({\n ...input,\n createdAmount\n });\n }\n if (createdAmount % 50 === 0) {\n try {\n await healthCheck.wait({\n async onUnhealthy({\n waitingTimeStep,\n startedAt,\n mustEndAt,\n runs,\n waitingReason\n }) {\n console.warn(`Cluster is unhealthy on run #${runs}.`, {\n startedAt,\n mustEndAt,\n waitingTimeStep,\n waitingReason\n });\n },\n async onTimeout({\n waitingTimeStep,\n startedAt,\n mustEndAt,\n runs,\n waitingReason\n }) {\n console.warn(`Cluster health check timed out on run #${runs}.`, {\n startedAt,\n mustEndAt,\n waitingTimeStep,\n waitingReason\n });\n }\n });\n } catch {\n return controller.response.continue(\n {\n ...input,\n createdAmount\n },\n {\n seconds: 30\n }\n );\n }\n }\n const taskId = controller.state.getTask().id;\n\n const createResult = await createEntry.execute(model, {\n id: `${taskId}${mdbid()}`,\n location: mockData.wbyAco_location,\n values: mockData\n });\n\n if (createResult.isFail()) {\n return controller.response.error(createResult.error);\n }\n }\n\n return params.controller.response.done(`Created ${input.totalAmount} records.`);\n }\n}\n"],"names":["MockDataCreator","context","openSearchClient","params","input","controller","getModel","GetModelUseCase","createEntry","CreateEntryUseCase","modelResult","model","healthCheck","createWaitUntilHealthy","OpenSearchCatClusterHealthStatus","createdAmount","waitingTimeStep","startedAt","mustEndAt","runs","waitingReason","console","taskId","createResult","mdbid","mockData"],"mappings":";;;;;;AAWO,MAAMA;IACT,YACqBC,OAAgB,EAChBC,gBAA4C,CAC/D;aAFmBD,OAAO,GAAPA;aACAC,gBAAgB,GAAhBA;IAClB;IAEH,MAAa,QACTC,MAAsC,EACF;QACpC,MAAM,EAAEC,KAAK,EAAEC,UAAU,EAAE,GAAGF;QAE9B,IAAIE,WAAW,OAAO,CAAC,SAAS,IAC5B,OAAOA,WAAW,QAAQ,CAAC,OAAO;QAC/B,IAAIA,WAAW,OAAO,CAAC,gBAAgB,IAC1C,OAAOA,WAAW,QAAQ,CAAC,QAAQ,CAAC;YAChC,GAAGD,KAAK;QACZ;QAGJ,MAAME,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAACC;QAChD,MAAMC,cAAc,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAACC;QAEnD,MAAMC,cAAc,MAAMJ,SAAS,OAAO,CAAC;QAC3C,IAAII,YAAY,MAAM,IAClB,OAAOL,WAAW,QAAQ,CAAC,KAAK,CAACK,YAAY,KAAK;QAGtD,MAAMC,QAAQD,YAAY,KAAK;QAE/B,MAAME,cAAcC,uBAAuB,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI;YACpE,iBAAiB;YACjB,gBAAgB;YAChB,qBAAqB;YACrB,wBAAwBC,iCAAiC,MAAM;YAC/D,eAAe;QACnB;QAEA,IAAIC,gBAAgBX,MAAM,aAAa;QAEvC,MAAOW,gBAAgBX,MAAM,WAAW,EAAEW,gBAAiB;YACvD,IAAIV,WAAW,OAAO,CAAC,SAAS,IAC5B,OAAOA,WAAW,QAAQ,CAAC,OAAO;YAC/B,IAAIA,WAAW,OAAO,CAAC,gBAAgB,IAC1C,OAAOA,WAAW,QAAQ,CAAC,QAAQ,CAAC;gBAChC,GAAGD,KAAK;gBACRW;YACJ;YAEJ,IAAIA,gBAAgB,OAAO,GACvB,IAAI;gBACA,MAAMH,YAAY,IAAI,CAAC;oBACnB,MAAM,aAAY,EACdI,eAAe,EACfC,SAAS,EACTC,SAAS,EACTC,IAAI,EACJC,aAAa,EAChB;wBACGC,QAAQ,IAAI,CAAC,CAAC,6BAA6B,EAAEF,KAAK,CAAC,CAAC,EAAE;4BAClDF;4BACAC;4BACAF;4BACAI;wBACJ;oBACJ;oBACA,MAAM,WAAU,EACZJ,eAAe,EACfC,SAAS,EACTC,SAAS,EACTC,IAAI,EACJC,aAAa,EAChB;wBACGC,QAAQ,IAAI,CAAC,CAAC,uCAAuC,EAAEF,KAAK,CAAC,CAAC,EAAE;4BAC5DF;4BACAC;4BACAF;4BACAI;wBACJ;oBACJ;gBACJ;YACJ,EAAE,OAAM;gBACJ,OAAOf,WAAW,QAAQ,CAAC,QAAQ,CAC/B;oBACI,GAAGD,KAAK;oBACRW;gBACJ,GACA;oBACI,SAAS;gBACb;YAER;YAEJ,MAAMO,SAASjB,WAAW,KAAK,CAAC,OAAO,GAAG,EAAE;YAE5C,MAAMkB,eAAe,MAAMf,YAAY,OAAO,CAACG,OAAO;gBAClD,IAAI,GAAGW,SAASE,SAAS;gBACzB,UAAUC,SAAS,eAAe;gBAClC,QAAQA;YACZ;YAEA,IAAIF,aAAa,MAAM,IACnB,OAAOlB,WAAW,QAAQ,CAAC,KAAK,CAACkB,aAAa,KAAK;QAE3D;QAEA,OAAOpB,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAEC,MAAM,WAAW,CAAC,SAAS,CAAC;IAClF;AACJ"}
|