@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 4.13 kB
JavaScript
import e from"../../db/query-builder/index.mjs";import t from"./base-repository.mjs";var n=class extends t{async selectSingle(t,n){let r=this.db.selectFrom(n.tableName).select(t.select);r=e.select(r,t.where);let i=await this.executeQuery(()=>r.executeTakeFirst(),{method:`selectSingle`,tableName:n.tableName});return i.response.error?i.response:this.validateResponse(i,{...t.validation,mode:`single`,select:t.select,schema:this.mergeSchema(n.schema)})}async selectMultiple(t,n){let r=this.db.selectFrom(n.tableName).select(t.select);if(t.where&&(r=e.select(r,t.where)),t.orderBy)for(let e of t.orderBy)r=r.orderBy(e.column,e.direction);t.limit&&(r=r.limit(t.limit)),t.offset&&(r=r.offset(t.offset));let i=await this.executeQuery(()=>r.execute(),{method:`selectMultiple`,tableName:n.tableName});return i.response.error?i.response:this.validateResponse(i,{...t.validation,mode:`multiple`,select:t.select,schema:this.mergeSchema(n.schema)})}async createSingle(e,t){let n=this.db.insertInto(t.tableName).values(this.formatData(e.data,{type:`insert`,dynamicColumns:t.columns}));e.returnAll!==!0&&e.returning&&e.returning.length>0&&(n=n.returning(e.returning)),e.returnAll&&(n=n.returningAll());let r=await this.executeQuery(()=>n.executeTakeFirst(),{method:`createSingle`,tableName:t.tableName});return r.response.error?r.response:this.validateResponse(r,{...e.validation,mode:`single`,select:e.returning,selectAll:e.returnAll,schema:this.mergeSchema(t.schema)})}async createMultiple(e,t){let n=this.db.insertInto(t.tableName).values(e.data.map(e=>this.formatData(e,{type:`insert`,dynamicColumns:t.columns})));e.returnAll!==!0&&e.returning&&e.returning.length>0&&(n=n.returning(e.returning)),e.returnAll&&(n=n.returningAll());let r=await this.executeQuery(()=>n.execute(),{method:`createMultiple`,tableName:t.tableName});return r.response.error?r.response:this.validateResponse(r,{...e.validation,mode:`multiple`,select:e.returning,selectAll:e.returnAll,schema:this.mergeSchema(t.schema)})}async updateSingle(t,n){let r=this.db.updateTable(n.tableName).set(this.formatData(t.data,{type:`update`,dynamicColumns:n.columns})).$if(t.returnAll!==!0&&t.returning!==void 0&&t.returning.length>0,e=>e.returning(t.returning)).$if(t.returnAll??!1,e=>e.returningAll());r=e.update(r,t.where);let i=await this.executeQuery(()=>r.executeTakeFirst(),{method:`updateSingle`,tableName:n.tableName});return i.response.error?i.response:this.validateResponse(i,{...t.validation,mode:`single`,select:t.returning,selectAll:t.returnAll,schema:this.mergeSchema(n.schema)})}async updateMultiple(t,n){let r=this.db.updateTable(n.tableName).set(t.data.map(e=>this.formatData(e,{type:`update`,dynamicColumns:n.columns}))).$if(t.returnAll!==!0&&t.returning!==void 0&&t.returning.length>0,e=>e.returning(t.returning)).$if(t.returnAll??!1,e=>e.returningAll());r=e.update(r,t.where);let i=await this.executeQuery(()=>r.execute(),{method:`updateMultiple`,tableName:n.tableName});return i.response.error?i.response:this.validateResponse(i,{...t.validation,mode:`multiple`,select:t.returning,selectAll:t.returnAll,schema:this.mergeSchema(n.schema)})}async deleteSingle(t,n){let r=this.db.deleteFrom(n.tableName);t.returnAll!==!0&&t.returning!==void 0&&t.returning.length>0&&(r=r.returning(t.returning)),t.returnAll&&(r=r.returningAll()),r=e.delete(r,t.where);let i=await this.executeQuery(()=>r.executeTakeFirst(),{method:`deleteSingle`,tableName:n.tableName});return i.response.error?i.response:this.validateResponse(i,{...t.validation,mode:`single`,select:t.returning,selectAll:t.returnAll,schema:this.mergeSchema(n.schema)})}async deleteMultiple(t,n){let r=this.db.deleteFrom(n.tableName);t.returnAll!==!0&&t.returning!==void 0&&t.returning.length>0&&(r=r.returning(t.returning)),t.returnAll&&(r=r.returningAll()),r=e.delete(r,t.where);let i=await this.executeQuery(()=>r.execute(),{method:`deleteMultiple`,tableName:n.tableName});return i.response.error?i.response:this.validateResponse(i,{...t.validation,mode:`multiple`,select:t.returning,selectAll:t.returnAll,schema:this.mergeSchema(n.schema)})}};export{n as default};
//# sourceMappingURL=dynamic-repository.mjs.map