@webiny/api-headless-cms-es-tasks 6.0.0-alpha.0 → 6.0.0-alpha.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms-es-tasks",
3
- "version": "6.0.0-alpha.0",
3
+ "version": "6.0.0-alpha.2",
4
4
  "main": "index.js",
5
5
  "description": "Elasticsearch Background tasks for Webiny Headless CMS",
6
6
  "keywords": [
@@ -13,24 +13,24 @@
13
13
  },
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
- "@webiny/api-elasticsearch": "6.0.0-alpha.0",
17
- "@webiny/api-headless-cms": "6.0.0-alpha.0",
18
- "@webiny/api-headless-cms-ddb-es": "6.0.0-alpha.0",
19
- "@webiny/handler": "6.0.0-alpha.0",
20
- "@webiny/handler-aws": "6.0.0-alpha.0",
21
- "@webiny/tasks": "6.0.0-alpha.0",
22
- "@webiny/utils": "6.0.0-alpha.0"
16
+ "@webiny/api-elasticsearch": "6.0.0-alpha.2",
17
+ "@webiny/api-headless-cms": "6.0.0-alpha.2",
18
+ "@webiny/api-headless-cms-ddb-es": "6.0.0-alpha.2",
19
+ "@webiny/handler": "6.0.0-alpha.2",
20
+ "@webiny/handler-aws": "6.0.0-alpha.2",
21
+ "@webiny/tasks": "6.0.0-alpha.2",
22
+ "@webiny/utils": "6.0.0-alpha.2"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@faker-js/faker": "9.3.0",
26
- "@webiny/api": "6.0.0-alpha.0",
27
- "@webiny/api-i18n": "6.0.0-alpha.0",
28
- "@webiny/api-security": "6.0.0-alpha.0",
29
- "@webiny/api-tenancy": "6.0.0-alpha.0",
30
- "@webiny/api-wcp": "6.0.0-alpha.0",
31
- "@webiny/handler-graphql": "6.0.0-alpha.0",
32
- "@webiny/plugins": "6.0.0-alpha.0",
33
- "@webiny/project-utils": "6.0.0-alpha.0",
26
+ "@webiny/api": "6.0.0-alpha.2",
27
+ "@webiny/api-i18n": "6.0.0-alpha.2",
28
+ "@webiny/api-security": "6.0.0-alpha.2",
29
+ "@webiny/api-tenancy": "6.0.0-alpha.2",
30
+ "@webiny/api-wcp": "6.0.0-alpha.2",
31
+ "@webiny/handler-graphql": "6.0.0-alpha.2",
32
+ "@webiny/plugins": "6.0.0-alpha.2",
33
+ "@webiny/project-utils": "6.0.0-alpha.2",
34
34
  "typescript": "5.3.3"
35
35
  },
36
36
  "scripts": {
@@ -41,5 +41,5 @@
41
41
  "access": "public",
42
42
  "directory": "dist"
43
43
  },
44
- "gitHead": "a5b28fed7a242d8f56712197a8ea83aa6d2ed101"
44
+ "gitHead": "7c9e8fbfd62a57ece5f880dbad6c864636b0355e"
45
45
  }
@@ -1,6 +1,6 @@
1
- import { ITaskResponseResult, ITaskRunParams } from "@webiny/tasks";
2
- import { IMockDataCreatorInput, IMockDataCreatorOutput } from "./types";
3
- import { Context } from "../../types";
1
+ import type { ITaskResponseResult, ITaskRunParams } from "@webiny/tasks";
2
+ import type { IMockDataCreatorInput, IMockDataCreatorOutput } from "./types";
3
+ import type { Context } from "../../types";
4
4
  export declare class MockDataCreator<C extends Context, I extends IMockDataCreatorInput, O extends IMockDataCreatorOutput> {
5
5
  execute(params: ITaskRunParams<C, I, O>): Promise<ITaskResponseResult<I, O>>;
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_mockData","require","_waitUntilHealthy","_types","_utils","MockDataCreator","execute","params","context","isAborted","input","response","isCloseToTimeout","aborted","continue","manager","cms","getEntryManager","ex","error","healthCheck","createWaitUntilHealthy","elasticsearch","waitingTimeStep","maxWaitingTime","maxProcessorPercent","minClusterHealthStatus","ElasticsearchCatClusterHealthStatus","Yellow","maxRamPercent","createdAmount","totalAmount","wait","onUnhealthy","startedAt","mustEndAt","runs","waitingReason","console","warn","onTimeout","seconds","taskId","store","getTask","id","create","mdbid","mockData","done","exports"],"sources":["MockDataCreator.ts"],"sourcesContent":["import { ITaskResponseResult, ITaskRunParams } from \"@webiny/tasks\";\nimport { IMockDataCreatorInput, IMockDataCreatorOutput } from \"./types\";\nimport { CmsModelManager } from \"@webiny/api-headless-cms/types\";\nimport { mockData } from \"./mockData\";\nimport { createWaitUntilHealthy } from \"@webiny/api-elasticsearch/utils/waitUntilHealthy\";\nimport { Context } from \"~/types\";\nimport { ElasticsearchCatClusterHealthStatus } from \"@webiny/api-elasticsearch/operations/types\";\nimport { mdbid } from \"@webiny/utils\";\n\nexport class MockDataCreator<\n C extends Context,\n I extends IMockDataCreatorInput,\n O extends IMockDataCreatorOutput\n> {\n public async execute(params: ITaskRunParams<C, I, O>): Promise<ITaskResponseResult<I, O>> {\n const { context, isAborted, input, response, isCloseToTimeout } = params;\n\n if (isAborted()) {\n return response.aborted();\n } else if (isCloseToTimeout()) {\n return response.continue({\n ...input\n });\n }\n\n let manager: CmsModelManager;\n try {\n manager = await context.cms.getEntryManager(\"cars\");\n } catch (ex) {\n return response.error(ex);\n }\n\n const healthCheck = createWaitUntilHealthy(context.elasticsearch, {\n waitingTimeStep: 20,\n maxWaitingTime: 150,\n maxProcessorPercent: 80,\n minClusterHealthStatus: ElasticsearchCatClusterHealthStatus.Yellow,\n maxRamPercent: 101\n });\n\n let createdAmount = input.createdAmount;\n\n for (; createdAmount < input.totalAmount; createdAmount++) {\n if (isAborted()) {\n return response.aborted();\n } else if (isCloseToTimeout()) {\n return 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 (ex) {\n return response.continue(\n {\n ...input,\n createdAmount\n },\n {\n seconds: 30\n }\n );\n }\n }\n const taskId = params.store.getTask().id;\n try {\n await manager.create({\n id: `${taskId}${mdbid()}`,\n ...mockData\n });\n } catch (ex) {\n return response.error(ex);\n }\n }\n\n return params.response.done(`Created ${input.totalAmount} records.`);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mockData","require","_waitUntilHealthy","_types","_utils","MockDataCreator","execute","params","context","isAborted","input","response","isCloseToTimeout","aborted","continue","manager","cms","getEntryManager","ex","error","healthCheck","createWaitUntilHealthy","elasticsearch","waitingTimeStep","maxWaitingTime","maxProcessorPercent","minClusterHealthStatus","ElasticsearchCatClusterHealthStatus","Yellow","maxRamPercent","createdAmount","totalAmount","wait","onUnhealthy","startedAt","mustEndAt","runs","waitingReason","console","warn","onTimeout","seconds","taskId","store","getTask","id","create","mdbid","mockData","done","exports"],"sources":["MockDataCreator.ts"],"sourcesContent":["import type { ITaskResponseResult, ITaskRunParams } from \"@webiny/tasks\";\nimport type { IMockDataCreatorInput, IMockDataCreatorOutput } from \"./types\";\nimport type { CmsModelManager } from \"@webiny/api-headless-cms/types\";\nimport { mockData } from \"./mockData\";\nimport { createWaitUntilHealthy } from \"@webiny/api-elasticsearch/utils/waitUntilHealthy\";\nimport type { Context } from \"~/types\";\nimport { ElasticsearchCatClusterHealthStatus } from \"@webiny/api-elasticsearch/operations/types\";\nimport { mdbid } from \"@webiny/utils\";\n\nexport class MockDataCreator<\n C extends Context,\n I extends IMockDataCreatorInput,\n O extends IMockDataCreatorOutput\n> {\n public async execute(params: ITaskRunParams<C, I, O>): Promise<ITaskResponseResult<I, O>> {\n const { context, isAborted, input, response, isCloseToTimeout } = params;\n\n if (isAborted()) {\n return response.aborted();\n } else if (isCloseToTimeout()) {\n return response.continue({\n ...input\n });\n }\n\n let manager: CmsModelManager;\n try {\n manager = await context.cms.getEntryManager(\"cars\");\n } catch (ex) {\n return response.error(ex);\n }\n\n const healthCheck = createWaitUntilHealthy(context.elasticsearch, {\n waitingTimeStep: 20,\n maxWaitingTime: 150,\n maxProcessorPercent: 80,\n minClusterHealthStatus: ElasticsearchCatClusterHealthStatus.Yellow,\n maxRamPercent: 101\n });\n\n let createdAmount = input.createdAmount;\n\n for (; createdAmount < input.totalAmount; createdAmount++) {\n if (isAborted()) {\n return response.aborted();\n } else if (isCloseToTimeout()) {\n return 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 (ex) {\n return response.continue(\n {\n ...input,\n createdAmount\n },\n {\n seconds: 30\n }\n );\n }\n }\n const taskId = params.store.getTask().id;\n try {\n await manager.create({\n id: `${taskId}${mdbid()}`,\n ...mockData\n });\n } catch (ex) {\n return response.error(ex);\n }\n }\n\n return params.response.done(`Created ${input.totalAmount} records.`);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { ITaskResponseDoneResultOutput } from "@webiny/tasks";
1
+ import type { ITaskResponseDoneResultOutput } from "@webiny/tasks";
2
2
  export interface IMockDataCreatorInput {
3
3
  totalAmount: number;
4
4
  createdAmount: number;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { ITaskResponseDoneResultOutput } from \"@webiny/tasks\";\n\nexport interface IMockDataCreatorInput {\n totalAmount: number;\n createdAmount: number;\n}\n\nexport type IMockDataCreatorOutput = ITaskResponseDoneResultOutput;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ITaskResponseDoneResultOutput } from \"@webiny/tasks\";\n\nexport interface IMockDataCreatorInput {\n totalAmount: number;\n createdAmount: number;\n}\n\nexport type IMockDataCreatorOutput = ITaskResponseDoneResultOutput;\n"],"mappings":"","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import { ITaskResponseResult, ITaskRunParams } from "@webiny/tasks";
2
- import { IMockDataManagerInput, IMockDataManagerOutput } from "./types";
3
- import { Context } from "../../types";
1
+ import type { ITaskResponseResult, ITaskRunParams } from "@webiny/tasks";
2
+ import type { IMockDataManagerInput, IMockDataManagerOutput } from "./types";
3
+ import type { Context } from "../../types";
4
4
  export declare class MockDataManager<C extends Context, I extends IMockDataManagerInput, O extends IMockDataManagerOutput> {
5
5
  execute(params: ITaskRunParams<C, I, O>): Promise<ITaskResponseResult<I, O>>;
6
6
  private listChildTasksNotDone;
@@ -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 { ITask, ITaskResponseResult, ITaskRunParams, TaskDataStatus } from \"@webiny/tasks\";\nimport { IMockDataManagerInput, IMockDataManagerOutput } from \"~/tasks/MockDataManager/types\";\nimport { calculateAmounts } from \"./calculateAmounts\";\nimport { 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 { 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":"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","ignoreList":[]}
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":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { CmsGroup, CmsModel } from "@webiny/api-headless-cms/types";
2
- import { Context } from "../../types";
1
+ import type { CmsGroup, CmsModel } from "@webiny/api-headless-cms/types";
2
+ import type { Context } from "../../types";
3
3
  interface ICreateModelAndGroupParams {
4
4
  context: Context;
5
5
  modelId: string;
@@ -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 { CmsGroup, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { 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,"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,2 +1,2 @@
1
- import { CmsGroupCreateInput } from "@webiny/api-headless-cms/types";
1
+ import type { CmsGroupCreateInput } from "@webiny/api-headless-cms/types";
2
2
  export declare const createGroupData: () => CmsGroupCreateInput;
@@ -1 +1 @@
1
- {"version":3,"names":["createGroupData","id","icon","name","description","slug","exports"],"sources":["group.ts"],"sourcesContent":["import { 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,"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,3 +1,3 @@
1
- import { CmsModelCreateInput } from "@webiny/api-headless-cms/types";
2
- import { CmsGroup } from "@webiny/api-headless-cms/types";
1
+ import type { CmsModelCreateInput } from "@webiny/api-headless-cms/types";
2
+ import type { CmsGroup } from "@webiny/api-headless-cms/types";
3
3
  export declare const createCarsModel: (group: CmsGroup) => CmsModelCreateInput;