@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 1.29 kB
JavaScript
import e from"../repositories/collection-migrations.mjs";import{isTreeTableType as t}from"./custom-fields/storage/index.mjs";import n from"./schema/infer-schema.mjs";import r from"./schema/runtime/diff-snapshot-vs-config.mjs";import i from"./helpers/strip-column-prefix.mjs";const a=async(a,o)=>{let s=new e(a.db.client,a.config.db),c=n(o.collection,a.config.db);if(c.error)return c;let l=await s.selectLatestByCollectionKey({collectionKey:o.collection.key});if(l.error)return l;if(!l.data)return{data:{requiresMigration:!0,missingColumns:{}},error:void 0};let u=r(l.data.collection_schema,c.data),d={};for(let e of c.data.tables){if(e.type!==`document-fields`&&e.type!==`brick`&&!t(e.type))continue;let n=u.missingTableNames.has(e.name),r=u.missingColumnsByTable.get(e.name),a=e.columns.filter(e=>e.source===`field`).filter(e=>n?!0:r?.has(e.name)).map(e=>i(e.name));if(a.length===0)continue;let o=e.type===`document-fields`?`document-fields`:e.key.brick;o&&(d[o]||(d[o]=[]),d[o].push(...a))}return{data:{requiresMigration:u.missingTableNames.size>0||u.missingColumnsByTable.size>0||u.missingIndexesByTable.size>0||u.modifiedColumnsByTable.size>0||u.modifiedIndexesByTable.size>0,missingColumns:d},error:void 0}};export{a as default};
//# sourceMappingURL=get-collection-migration-status.mjs.map