UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

1 lines 3.76 kB
{"version":3,"file":"create-multiple.mjs","names":["documentBrickServices.checks.checkDuplicateOrder","documentBrickServices.checks.checkValidateBricksFields","documentBrickServices.insertBrickTables"],"sources":["../../../src/services/documents-bricks/create-multiple.ts"],"sourcesContent":["import type CollectionBuilder from \"../../libs/collection/builders/collection-builder/index.js\";\nimport type { BrickInputSchema } from \"../../schemas/collection-bricks.js\";\nimport type { FieldInputSchema } from \"../../schemas/collection-fields.js\";\nimport type { ServiceFn } from \"../../utils/services/types.js\";\nimport { documentBrickServices } from \"../index.js\";\nimport aggregateBrickTables from \"./helpers/aggregate-brick-tables.js\";\nimport prepareBricksAndFields from \"./helpers/prepare-bricks-and-fields.js\";\n\nconst createMultiple: ServiceFn<\n\t[\n\t\t{\n\t\t\tversionId: number;\n\t\t\tdocumentId: number;\n\t\t\tbricks?: Array<BrickInputSchema>;\n\t\t\tfields?: Array<FieldInputSchema>;\n\t\t\tcollection: CollectionBuilder;\n\t\t\tskipValidation?: boolean;\n\t\t},\n\t],\n\tundefined\n> = async (context, data) => {\n\t// -------------------------------------------------------------------------------\n\t// prepare data\n\tconst { preparedBricks, preparedFields } = prepareBricksAndFields({\n\t\tcollection: data.collection,\n\t\tbricks: data.bricks,\n\t\tfields: data.fields,\n\t\tlocalization: context.config.localization,\n\t});\n\n\t// -------------------------------------------------------------------------------\n\t// validate bricks\n\tif (data.skipValidation !== true) {\n\t\tconst checkBrickOrderRes = documentBrickServices.checks.checkDuplicateOrder(\n\t\t\tdata.bricks || [],\n\t\t);\n\t\tif (checkBrickOrderRes.error) return checkBrickOrderRes;\n\n\t\tconst checkValidateRes =\n\t\t\tawait documentBrickServices.checks.checkValidateBricksFields(context, {\n\t\t\t\tcollection: data.collection,\n\t\t\t\tbricks: data.bricks || [],\n\t\t\t\tfields: data.fields || [],\n\t\t\t});\n\t\tif (checkValidateRes.error) return checkValidateRes;\n\t}\n\n\t// -------------------------------------------------------------------------------\n\t// construct all required tables and rows grouped by prio\n\tconst brickTables = aggregateBrickTables({\n\t\tcollection: data.collection,\n\t\tdocumentId: data.documentId,\n\t\tversionId: data.versionId,\n\t\tlocalization: context.config.localization,\n\t\tbricks: preparedBricks,\n\t\tfields: preparedFields,\n\t\ttableNameByteLimit: context.config.db.config.tableNameByteLimit,\n\t});\n\tconst sortedTables = brickTables.sort((a, b) => a.priority - b.priority);\n\n\t// -------------------------------------------------------------------------------\n\t// insert rows\n\tconst insertRes = await documentBrickServices.insertBrickTables(context, {\n\t\ttables: sortedTables,\n\t\tcollection: data.collection,\n\t});\n\tif (insertRes.error) return insertRes;\n\n\treturn {\n\t\terror: undefined,\n\t\tdata: undefined,\n\t};\n};\n\nexport default createMultiple;\n"],"mappings":"+PAQA,MAAM,EAYF,MAAO,EAAS,IAAS,CAG5B,GAAM,CAAE,iBAAgB,kBAAmB,EAAuB,CACjE,WAAY,EAAK,WACjB,OAAQ,EAAK,OACb,OAAQ,EAAK,OACb,aAAc,EAAQ,OAAO,YAC9B,CAAC,EAID,GAAI,EAAK,iBAAmB,GAAM,CACjC,IAAM,EAAqBA,EAC1B,EAAK,QAAU,CAAC,CACjB,EACA,GAAI,EAAmB,MAAO,OAAO,EAErC,IAAM,EACL,MAAMC,EAAuD,EAAS,CACrE,WAAY,EAAK,WACjB,OAAQ,EAAK,QAAU,CAAC,EACxB,OAAQ,EAAK,QAAU,CAAC,CACzB,CAAC,EACF,GAAI,EAAiB,MAAO,OAAO,CACpC,CAiBA,IAAM,EAAY,MAAMC,EAAwC,EAAS,CACxE,OAdmB,EAAqB,CACxC,WAAY,EAAK,WACjB,WAAY,EAAK,WACjB,UAAW,EAAK,UAChB,aAAc,EAAQ,OAAO,aAC7B,OAAQ,EACR,OAAQ,EACR,mBAAoB,EAAQ,OAAO,GAAG,OAAO,kBAC9C,CAC+B,CAAC,CAAC,MAAM,EAAG,IAAM,EAAE,SAAW,EAAE,QAKtD,EACR,WAAY,EAAK,UAClB,CAAC,EAGD,OAFI,EAAU,MAAc,EAErB,CACN,MAAO,IAAA,GACP,KAAM,IAAA,EACP,CACD"}