@webiny/api-headless-cms-es-tasks 6.0.0-alpha.5 → 6.0.0-rc.0
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/README.md +11 -15
- package/index.d.ts +4 -3
- package/index.js +9 -34
- package/index.js.map +1 -1
- package/package.json +20 -23
- package/tasks/MockDataCreator/MockDataCreator.d.ts +7 -5
- package/tasks/MockDataCreator/MockDataCreator.js +38 -42
- package/tasks/MockDataCreator/MockDataCreator.js.map +1 -1
- package/tasks/MockDataCreator/mockData.js +7 -13
- package/tasks/MockDataCreator/mockData.js.map +1 -1
- package/tasks/MockDataCreator/types.d.ts +3 -3
- package/tasks/MockDataCreator/types.js +1 -5
- package/tasks/MockDataCreator/types.js.map +1 -1
- package/tasks/MockDataCreatorTask.d.ts +16 -0
- package/tasks/MockDataCreatorTask.js +28 -0
- package/tasks/MockDataCreatorTask.js.map +1 -0
- package/tasks/MockDataManager/MockDataManager.d.ts +7 -5
- package/tasks/MockDataManager/MockDataManager.js +33 -42
- package/tasks/MockDataManager/MockDataManager.js.map +1 -1
- package/tasks/MockDataManager/calculateAmounts.js +1 -8
- package/tasks/MockDataManager/calculateAmounts.js.map +1 -1
- package/tasks/MockDataManager/calculateSeconds.js +3 -10
- package/tasks/MockDataManager/calculateSeconds.js.map +1 -1
- package/tasks/MockDataManager/constants.js +1 -7
- package/tasks/MockDataManager/constants.js.map +1 -1
- package/tasks/MockDataManager/createModelAndGroup.d.ts +2 -2
- package/tasks/MockDataManager/createModelAndGroup.js +7 -14
- package/tasks/MockDataManager/createModelAndGroup.js.map +1 -1
- package/tasks/MockDataManager/group.d.ts +1 -1
- package/tasks/MockDataManager/group.js +5 -9
- package/tasks/MockDataManager/group.js.map +1 -1
- package/tasks/MockDataManager/model.d.ts +2 -2
- package/tasks/MockDataManager/model.js +917 -923
- package/tasks/MockDataManager/model.js.map +1 -1
- package/tasks/MockDataManager/types.d.ts +3 -3
- package/tasks/MockDataManager/types.js +1 -5
- package/tasks/MockDataManager/types.js.map +1 -1
- package/tasks/MockDataManagerTask.d.ts +18 -0
- package/tasks/MockDataManagerTask.js +54 -0
- package/tasks/MockDataManagerTask.js.map +1 -0
- package/types.d.ts +4 -4
- package/types.js +1 -16
- package/types.js.map +1 -1
- package/utils/createIndex.d.ts +2 -2
- package/utils/createIndex.js +7 -15
- package/utils/createIndex.js.map +1 -1
- package/utils/disableIndexing.d.ts +2 -2
- package/utils/disableIndexing.js +3 -10
- package/utils/disableIndexing.js.map +1 -1
- package/utils/enableIndexing.d.ts +2 -2
- package/utils/enableIndexing.js +3 -10
- package/utils/enableIndexing.js.map +1 -1
- package/utils/index.d.ts +3 -3
- package/utils/index.js +3 -38
- package/utils/index.js.map +1 -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
|
@@ -1,75 +1,67 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var _createModelAndGroup = require("./createModelAndGroup");
|
|
12
|
-
var _utils = require("../../utils");
|
|
13
|
-
class MockDataManager {
|
|
1
|
+
import { TaskDataStatus } from "@webiny/tasks";
|
|
2
|
+
import { calculateAmounts } from "./calculateAmounts.js";
|
|
3
|
+
import { calculateSeconds, WAIT_MAX_SECONDS } 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";
|
|
7
|
+
export class MockDataManager {
|
|
8
|
+
constructor(context) {
|
|
9
|
+
this.context = context;
|
|
10
|
+
}
|
|
14
11
|
async execute(params) {
|
|
15
12
|
const {
|
|
16
|
-
context,
|
|
17
|
-
isAborted,
|
|
18
13
|
input,
|
|
19
|
-
|
|
20
|
-
trigger,
|
|
21
|
-
store
|
|
14
|
+
controller
|
|
22
15
|
} = params;
|
|
23
|
-
const taskId =
|
|
24
|
-
if (isAborted()) {
|
|
25
|
-
await this.abortChildTasks(context, taskId);
|
|
26
|
-
return response.aborted();
|
|
16
|
+
const taskId = controller.state.getTask().id;
|
|
17
|
+
if (controller.runtime.isAborted()) {
|
|
18
|
+
await this.abortChildTasks(this.context, taskId);
|
|
19
|
+
return controller.response.aborted();
|
|
27
20
|
} else if (input.seconds) {
|
|
28
|
-
const items = await this.listChildTasksNotDone(context, taskId);
|
|
21
|
+
const items = await this.listChildTasksNotDone(this.context, taskId);
|
|
29
22
|
|
|
30
23
|
/**
|
|
31
24
|
* If there are still running creator tasks, we need to wait a bit more.
|
|
32
25
|
*/
|
|
33
26
|
if (items.length > 0) {
|
|
34
|
-
return response.continue({
|
|
27
|
+
return controller.response.continue({
|
|
35
28
|
...input
|
|
36
29
|
}, {
|
|
37
|
-
seconds: input.seconds ||
|
|
30
|
+
seconds: input.seconds || WAIT_MAX_SECONDS
|
|
38
31
|
});
|
|
39
32
|
}
|
|
40
33
|
/**
|
|
41
34
|
* If there are no running tasks, we can enable indexing and finish the manager task.
|
|
42
35
|
*/
|
|
43
|
-
await
|
|
44
|
-
client: context.elasticsearch,
|
|
36
|
+
await enableIndexing({
|
|
37
|
+
client: this.context.elasticsearch,
|
|
45
38
|
model: {
|
|
46
39
|
modelId: input.modelId,
|
|
47
|
-
tenant: "root"
|
|
48
|
-
locale: "en-US"
|
|
40
|
+
tenant: "root"
|
|
49
41
|
}
|
|
50
42
|
});
|
|
51
|
-
return response.done();
|
|
43
|
+
return controller.response.done();
|
|
52
44
|
}
|
|
53
|
-
const result = await
|
|
54
|
-
context,
|
|
45
|
+
const result = await createModelAndGroup({
|
|
46
|
+
context: this.context,
|
|
55
47
|
modelId: input.modelId,
|
|
56
48
|
overwrite: input.overwrite
|
|
57
49
|
});
|
|
58
50
|
if (typeof result === "string") {
|
|
59
|
-
return response.done(result);
|
|
51
|
+
return controller.response.done(result);
|
|
60
52
|
}
|
|
61
|
-
await
|
|
53
|
+
await disableIndexing({
|
|
62
54
|
model: result.model,
|
|
63
|
-
client: context.elasticsearch
|
|
55
|
+
client: this.context.elasticsearch
|
|
64
56
|
});
|
|
65
57
|
const {
|
|
66
58
|
amountOfTasks,
|
|
67
59
|
amountOfRecords
|
|
68
|
-
} =
|
|
69
|
-
const seconds =
|
|
60
|
+
} = calculateAmounts(input.amount);
|
|
61
|
+
const seconds = calculateSeconds(amountOfRecords);
|
|
70
62
|
for (let current = 0; current < amountOfTasks; current++) {
|
|
71
|
-
await trigger({
|
|
72
|
-
definition:
|
|
63
|
+
await controller.task.trigger({
|
|
64
|
+
definition: MOCK_DATA_CREATOR_TASK_ID,
|
|
73
65
|
input: {
|
|
74
66
|
totalAmount: amountOfRecords,
|
|
75
67
|
createdAmount: 0
|
|
@@ -77,7 +69,7 @@ class MockDataManager {
|
|
|
77
69
|
name: `Mock Data Creator Task #${current + 1} of ${amountOfTasks}`
|
|
78
70
|
});
|
|
79
71
|
}
|
|
80
|
-
return response.continue({
|
|
72
|
+
return controller.response.continue({
|
|
81
73
|
...input,
|
|
82
74
|
seconds,
|
|
83
75
|
amountOfTasks,
|
|
@@ -92,7 +84,7 @@ class MockDataManager {
|
|
|
92
84
|
} = await context.tasks.listTasks({
|
|
93
85
|
where: {
|
|
94
86
|
parentId: id,
|
|
95
|
-
taskStatus_in: [
|
|
87
|
+
taskStatus_in: [TaskDataStatus.PENDING, TaskDataStatus.RUNNING]
|
|
96
88
|
},
|
|
97
89
|
limit: 10000
|
|
98
90
|
});
|
|
@@ -108,6 +100,5 @@ class MockDataManager {
|
|
|
108
100
|
}
|
|
109
101
|
}
|
|
110
102
|
}
|
|
111
|
-
exports.MockDataManager = MockDataManager;
|
|
112
103
|
|
|
113
104
|
//# sourceMappingURL=MockDataManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["TaskDataStatus","calculateAmounts","calculateSeconds","WAIT_MAX_SECONDS","createModelAndGroup","disableIndexing","enableIndexing","MOCK_DATA_CREATOR_TASK_ID","MockDataManager","constructor","context","execute","params","input","controller","taskId","state","getTask","id","runtime","isAborted","abortChildTasks","response","aborted","seconds","items","listChildTasksNotDone","length","continue","client","elasticsearch","model","modelId","tenant","done","result","overwrite","amountOfTasks","amountOfRecords","amount","current","task","trigger","definition","totalAmount","createdAmount","name","tasks","listTasks","where","parentId","taskStatus_in","PENDING","RUNNING","limit","item","abort","message"],"sources":["MockDataManager.ts"],"sourcesContent":["import { TaskDataStatus } from \"@webiny/tasks\";\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 { 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\";\n\nexport class MockDataManager<I extends IMockDataManagerInput, O extends IMockDataManagerOutput> {\n constructor(private context: Context) {}\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.context.elasticsearch,\n model: {\n modelId: input.modelId,\n tenant: \"root\"\n }\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.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 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.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":"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","ignoreList":[]}
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.calculateAmounts = void 0;
|
|
7
1
|
const constrains = [{
|
|
8
2
|
amount: 50,
|
|
9
3
|
percentagePerTask: 100
|
|
@@ -43,7 +37,7 @@ const findValue = input => {
|
|
|
43
37
|
}
|
|
44
38
|
throw new Error(`No valid value found - input value is too large: ${input}.`);
|
|
45
39
|
};
|
|
46
|
-
const calculateAmounts = input => {
|
|
40
|
+
export const calculateAmounts = input => {
|
|
47
41
|
const values = findValue(input);
|
|
48
42
|
const {
|
|
49
43
|
percentagePerTask
|
|
@@ -58,6 +52,5 @@ const calculateAmounts = input => {
|
|
|
58
52
|
amountOfTasks
|
|
59
53
|
};
|
|
60
54
|
};
|
|
61
|
-
exports.calculateAmounts = calculateAmounts;
|
|
62
55
|
|
|
63
56
|
//# 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"
|
|
1
|
+
{"version":3,"names":["constrains","amount","percentagePerTask","findValue","input","value","Error","calculateAmounts","values","amountOfRecords","Math","round","parseFloat","String","amountOfTasks","ceil"],"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;AAED,OAAO,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","ignoreList":[]}
|
|
@@ -1,13 +1,7 @@
|
|
|
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 =
|
|
9
|
-
const WAIT_MAX_SECONDS =
|
|
10
|
-
const calculateSeconds = records => {
|
|
2
|
+
export const WAIT_MIN_SECONDS = 15;
|
|
3
|
+
export const WAIT_MAX_SECONDS = 90;
|
|
4
|
+
export const calculateSeconds = records => {
|
|
11
5
|
const seconds = Math.ceil(records / recordsPerSecond);
|
|
12
6
|
if (seconds > WAIT_MAX_SECONDS) {
|
|
13
7
|
return WAIT_MAX_SECONDS;
|
|
@@ -18,6 +12,5 @@ const calculateSeconds = records => {
|
|
|
18
12
|
}
|
|
19
13
|
return WAIT_MAX_SECONDS;
|
|
20
14
|
};
|
|
21
|
-
exports.calculateSeconds = calculateSeconds;
|
|
22
15
|
|
|
23
16
|
//# sourceMappingURL=calculateSeconds.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["recordsPerSecond","WAIT_MIN_SECONDS","
|
|
1
|
+
{"version":3,"names":["recordsPerSecond","WAIT_MIN_SECONDS","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;AAC1B,OAAO,MAAMC,gBAAgB,GAAG,EAAE;AAClC,OAAO,MAAMC,gBAAgB,GAAG,EAAE;AAElC,OAAO,MAAMC,gBAAgB,GAAIC,OAAe,IAAa;EACzD,MAAMC,OAAO,GAAGC,IAAI,CAACC,IAAI,CAACH,OAAO,GAAGJ,gBAAgB,CAAC;EACrD,IAAIK,OAAO,GAAGH,gBAAgB,EAAE;IAC5B,OAAOA,gBAAgB;EAC3B,CAAC,MAAM,IAAIG,OAAO,GAAGJ,gBAAgB,EAAE;IACnC,OAAOA,gBAAgB;EAC3B,CAAC,MAAM,IAAII,OAAO,GAAG,CAAC,EAAE;IACpB,OAAOA,OAAO;EAClB;EACA,OAAOH,gBAAgB;AAC3B,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CARS_MODEL_ID"
|
|
1
|
+
{"version":3,"names":["CARS_MODEL_ID"],"sources":["constants.ts"],"sourcesContent":["export const CARS_MODEL_ID = \"cars\";\n"],"mappings":"AAAA,OAAO,MAAMA,aAAa,GAAG,MAAM","ignoreList":[]}
|
|
@@ -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,13 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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 => {
|
|
1
|
+
import { createGroupData } from "./group.js";
|
|
2
|
+
import { createCarsModel } from "./model.js";
|
|
3
|
+
import { createIndex } from "../../utils/index.js";
|
|
4
|
+
export const createModelAndGroup = async params => {
|
|
11
5
|
const {
|
|
12
6
|
context,
|
|
13
7
|
modelId,
|
|
@@ -23,16 +17,16 @@ const createModelAndGroup = async params => {
|
|
|
23
17
|
} else if (!model) {
|
|
24
18
|
group = (await context.cms.listGroups()).find(group => group.slug === "mocks");
|
|
25
19
|
if (!group) {
|
|
26
|
-
const groupData =
|
|
20
|
+
const groupData = createGroupData();
|
|
27
21
|
group = await context.cms.createGroup(groupData);
|
|
28
22
|
}
|
|
29
23
|
/**
|
|
30
24
|
* Possibly we need to create the model.
|
|
31
25
|
*/
|
|
32
|
-
const carsModel =
|
|
26
|
+
const carsModel = createCarsModel(group);
|
|
33
27
|
model = await context.cms.createModel(carsModel);
|
|
34
28
|
}
|
|
35
|
-
await
|
|
29
|
+
await createIndex({
|
|
36
30
|
model,
|
|
37
31
|
client: context.elasticsearch,
|
|
38
32
|
plugins: context.plugins
|
|
@@ -42,6 +36,5 @@ const createModelAndGroup = async params => {
|
|
|
42
36
|
model: model
|
|
43
37
|
};
|
|
44
38
|
};
|
|
45
|
-
exports.createModelAndGroup = createModelAndGroup;
|
|
46
39
|
|
|
47
40
|
//# sourceMappingURL=createModelAndGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createGroupData","createCarsModel","createIndex","createModelAndGroup","params","context","modelId","overwrite","model","cms","listModels","find","m","group","listGroups","slug","groupData","createGroup","carsModel","createModel","client","elasticsearch","plugins"],"sources":["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\";\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,SAASA,eAAe;AACxB,SAASC,eAAe;AACxB,SAASC,WAAW;AAapB,OAAO,MAAMC,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,GAAGhB,eAAe,CAAC,CAAC;MACnCa,KAAK,GAAG,MAAMR,OAAO,CAACI,GAAG,CAACQ,WAAW,CAACD,SAAS,CAAC;IACpD;IACA;AACR;AACA;IACQ,MAAME,SAAS,GAAGjB,eAAe,CAACY,KAAK,CAAC;IACxCL,KAAK,GAAG,MAAMH,OAAO,CAACI,GAAG,CAACU,WAAW,CAACD,SAAS,CAAC;EACpD;EACA,MAAMhB,WAAW,CAAC;IACdM,KAAK;IACLY,MAAM,EAAEf,OAAO,CAACgB,aAAa;IAC7BC,OAAO,EAAEjB,OAAO,CAACiB;EACrB,CAAC,CAAC;EAEF,OAAO;IACHT,KAAK,EAAEA,KAAiB;IACxBL,KAAK,EAAEA;EACX,CAAC;AACL,CAAC","ignoreList":[]}
|
|
@@ -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,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createGroupData = void 0;
|
|
7
|
-
const createGroupData = () => {
|
|
1
|
+
export const createGroupData = () => {
|
|
8
2
|
return {
|
|
9
3
|
id: "mocks",
|
|
10
|
-
icon:
|
|
4
|
+
icon: {
|
|
5
|
+
type: "icon",
|
|
6
|
+
name: "fas/star"
|
|
7
|
+
},
|
|
11
8
|
name: "Mocks",
|
|
12
9
|
description: "A group for mock models",
|
|
13
10
|
slug: "mocks"
|
|
14
11
|
};
|
|
15
12
|
};
|
|
16
|
-
exports.createGroupData = createGroupData;
|
|
17
13
|
|
|
18
14
|
//# sourceMappingURL=group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createGroupData","id","icon","name","description","slug"
|
|
1
|
+
{"version":3,"names":["createGroupData","id","icon","type","name","description","slug"],"sources":["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"],"mappings":"AAEA,OAAO,MAAMA,eAAe,GAAGA,CAAA,KAA2B;EACtD,OAAO;IACHC,EAAE,EAAE,OAAO;IACXC,IAAI,EAAE;MACFC,IAAI,EAAE,MAAM;MACZC,IAAI,EAAE;IACV,CAAC;IACDA,IAAI,EAAE,OAAO;IACbC,WAAW,EAAE,yBAAyB;IACtCC,IAAI,EAAE;EACV,CAAC;AACL,CAAC","ignoreList":[]}
|
|
@@ -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;
|