@a2lix/schemql
Version:
A lightweight TypeScript library that enhances your SQL workflow by combining raw SQL with targeted type safety and schema validation
1 lines • 1.29 kB
JavaScript
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./baseAdapterError.cjs");var t=class{constructor(e){this.db=e,this.queryAll=e=>{let t;try{t=this.db.prepare(e)}catch(e){throw n.createFromNodeSqlite(e)}return e=>{try{return e?t.all(e):t.all()}catch(e){throw n.createFromNodeSqlite(e)}}},this.queryFirst=e=>{let t;try{t=this.db.prepare(e)}catch(e){throw n.createFromNodeSqlite(e)}return e=>{try{return e?t.get(e):t.get()}catch(e){throw n.createFromNodeSqlite(e)}}},this.queryFirstOrThrow=e=>{let t=this.queryFirst(e);return e=>{let r=t(e);if(r===void 0)throw new n(`No result`,`NO_RESULT`);return r}},this.queryIterate=e=>{let t=this.db.prepare(e);return e=>e?t.iterate(e):t.iterate()}}},n=class t extends e.BaseAdapterError{static{this.createFromNodeSqlite=e=>new t(e.message,(({code:e,message:t})=>{if(e===`ERR_SQLITE_ERROR`){if(t.startsWith(`UNIQUE constraint failed`))return`UNIQUE_CONSTRAINT`;if(t.startsWith(`FOREIGN KEY constraint failed`))return`FOREIGNKEY_CONSTRAINT`;if(t.startsWith(`NOT NULL constraint failed`))return`NOTNULL_CONSTRAINT`;if(t.startsWith(`CHECK constraint failed`))return`CHECK_CONSTRAINT`}return`GENERIC`})(e),e)}};exports.NodeSqliteAdapter=t,exports.SchemQlAdapterError=n,exports.SchemQlAdapterErrorCode=e.AdapterErrorCode;