workers-qb 0.1.8 → 0.1.9
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/README.md +4 -1
- package/dist/databases/pg.d.ts +1 -2
- package/dist/workers-qb.js +1 -1
- package/dist/workers-qb.mjs +1 -1
- package/package.json +1 -4
package/README.md
CHANGED
|
@@ -80,6 +80,7 @@ npm install pg --save
|
|
|
80
80
|
|
|
81
81
|
```ts
|
|
82
82
|
import { PGQB } from 'workers-qb'
|
|
83
|
+
import { Client } from 'pg'
|
|
83
84
|
|
|
84
85
|
export interface Env {
|
|
85
86
|
DB_URL: string
|
|
@@ -87,7 +88,7 @@ export interface Env {
|
|
|
87
88
|
|
|
88
89
|
export default {
|
|
89
90
|
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
|
|
90
|
-
const qb = new PGQB(env.DB_URL)
|
|
91
|
+
const qb = new PGQB(new Client(env.DB_URL))
|
|
91
92
|
await qb.connect()
|
|
92
93
|
|
|
93
94
|
const fetched = await qb.fetchOne({
|
|
@@ -107,6 +108,8 @@ export default {
|
|
|
107
108
|
}
|
|
108
109
|
```
|
|
109
110
|
|
|
111
|
+
## Basic queries
|
|
112
|
+
|
|
110
113
|
#### Fetching a single record
|
|
111
114
|
|
|
112
115
|
```ts
|
package/dist/databases/pg.d.ts
CHANGED
|
@@ -3,9 +3,8 @@ import { FetchTypes } from '../enums';
|
|
|
3
3
|
import { Raw } from '../tools';
|
|
4
4
|
import { PGResult, PGResultOne } from '../interfaces';
|
|
5
5
|
export declare class PGQB extends QueryBuilder<PGResult, PGResultOne> {
|
|
6
|
-
private dbUrl;
|
|
7
6
|
private client;
|
|
8
|
-
constructor(
|
|
7
|
+
constructor(client: any);
|
|
9
8
|
connect(): Promise<void>;
|
|
10
9
|
close(): Promise<void>;
|
|
11
10
|
execute(params: {
|
package/dist/workers-qb.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e,t,r,s;exports.OrderTypes=void 0,(e=exports.OrderTypes||(exports.OrderTypes={})).ASC="ASC",e.DESC="DESC",exports.FetchTypes=void 0,(t=exports.FetchTypes||(exports.FetchTypes={})).ONE="ONE",t.ALL="ALL",exports.ConflictTypes=void 0,(r=exports.ConflictTypes||(exports.ConflictTypes={})).ROLLBACK="ROLLBACK",r.ABORT="ABORT",r.FAIL="FAIL",r.IGNORE="IGNORE",r.REPLACE="REPLACE",exports.JoinTypes=void 0,(s=exports.JoinTypes||(exports.JoinTypes={})).INNER="INNER",s.LEFT="LEFT",s.CROSS="CROSS";class n{isRaw=!0;content;constructor(e){this.content=e}}class i{async execute(e){throw new Error("Execute method not implemented")}async createTable(e){return this.execute({query:`CREATE TABLE ${e.ifNotExists?"IF NOT EXISTS":""} ${e.tableName}\n (\n ${e.schema}\n )`})}async dropTable(e){return this.execute({query:`DROP TABLE ${e.ifExists?"IF EXISTS":""} ${e.tableName}`})}async fetchOne(e){const t=await this.execute({query:this._select({...e,limit:1}),arguments:e.where?e.where.params:void 0,fetchType:exports.FetchTypes.ALL});return{...t,results:t.results.length>0?t.results[0]:null}}async fetchAll(e){return this.execute({query:this._select(e),arguments:e.where?e.where.params:void 0,fetchType:exports.FetchTypes.ALL})}async insert(e){let t=[];if(Array.isArray(e.data))for(const r of e.data)t=t.concat(this._parse_arguments(r));else t=t.concat(this._parse_arguments(e.data));return this.execute({query:this._insert(e),arguments:t,fetchType:exports.FetchTypes.ALL})}async update(e){let t=this._parse_arguments(e.data);return e.where&&e.where.params&&(t=e.where.params.concat(t)),this.execute({query:this._update(e),arguments:t,fetchType:exports.FetchTypes.ALL})}async delete(e){return this.execute({query:this._delete(e),arguments:e.where?e.where.params:void 0,fetchType:exports.FetchTypes.ALL})}_parse_arguments(e){return Object.values(e).map((e=>e instanceof n?e.content:e))}_onConflict(e){return e?`OR ${e} `:""}_insert(e){const t=[];Array.isArray(e.data)||(e.data=[e.data]);const r=Object.keys(e.data[0]).join(", ");let s=1;for(const r of e.data){const e=[];Object.values(r).forEach((t=>{t instanceof n?e.push(t.content):e.push(`?${s}`),s+=1})),t.push(`(${e.join(", ")})`)}return`INSERT ${this._onConflict(e.onConflict)}INTO ${e.tableName} (${r}) VALUES ${t.join(", ")}`+this._returning(e.returning)}_update(e){const t=e.where&&e.where.params?Object.keys(e.where.params).length:0,r=[];return Object.entries(e.data).forEach((([e,s],i)=>{s instanceof n?r.push(`${e} = ${s.content}`):r.push(`${e} = ?${t+i+1}`)})),`UPDATE ${this._onConflict(e.onConflict)}${e.tableName} SET ${r.join(", ")}`+this._where(e.where?.conditions)+this._returning(e.returning)}_delete(e){return`DELETE FROM ${e.tableName}`+this._where(e.where?.conditions)+this._returning(e.returning)}_select(e){return`SELECT ${this._fields(e.fields)} FROM ${e.tableName}`+this._join(e.join)+this._where(e.where?.conditions)+this._groupBy(e.groupBy)+this._having(e.having)+this._orderBy(e.orderBy)+this._limit(e.limit)+this._offset(e.offset)}_fields(e){return"string"==typeof e?e:e.join(", ")}_where(e){return e?"string"==typeof e?` WHERE ${e}`:` WHERE ${e.join(" AND ")}`:""}_join(e){if(!e)return"";Array.isArray(e)||(e=[e]);const t=[];return e.forEach((e=>{const r=e.type?`${e.type} `:"";t.push(`${r}JOIN ${e.table} ON ${e.on}`)}))," "+t.join(" ")}_groupBy(e){return e?"string"==typeof e?` GROUP BY ${e}`:` GROUP BY ${e.join(", ")}`:""}_having(e){return e?` HAVING ${e}`:""}_orderBy(e){if(!e)return"";if("string"==typeof e)return` ORDER BY ${e}`;if(Array.isArray(e))return` ORDER BY ${e.join(", ")}`;const t=[];return Object.entries(e).forEach((([e,r])=>{t.push(`${e} ${r}`)})),` ORDER BY ${t.join(", ")}`}_limit(e){return e?` LIMIT ${e}`:""}_offset(e){return e?` OFFSET ${e}`:""}_returning(e){return e?"string"==typeof e?` RETURNING ${e}`:` RETURNING ${e.join(", ")}`:""}}
|
|
1
|
+
"use strict";var e,t,r,s;exports.OrderTypes=void 0,(e=exports.OrderTypes||(exports.OrderTypes={})).ASC="ASC",e.DESC="DESC",exports.FetchTypes=void 0,(t=exports.FetchTypes||(exports.FetchTypes={})).ONE="ONE",t.ALL="ALL",exports.ConflictTypes=void 0,(r=exports.ConflictTypes||(exports.ConflictTypes={})).ROLLBACK="ROLLBACK",r.ABORT="ABORT",r.FAIL="FAIL",r.IGNORE="IGNORE",r.REPLACE="REPLACE",exports.JoinTypes=void 0,(s=exports.JoinTypes||(exports.JoinTypes={})).INNER="INNER",s.LEFT="LEFT",s.CROSS="CROSS";class n{isRaw=!0;content;constructor(e){this.content=e}}class i{async execute(e){throw new Error("Execute method not implemented")}async createTable(e){return this.execute({query:`CREATE TABLE ${e.ifNotExists?"IF NOT EXISTS":""} ${e.tableName}\n (\n ${e.schema}\n )`})}async dropTable(e){return this.execute({query:`DROP TABLE ${e.ifExists?"IF EXISTS":""} ${e.tableName}`})}async fetchOne(e){const t=await this.execute({query:this._select({...e,limit:1}),arguments:e.where?e.where.params:void 0,fetchType:exports.FetchTypes.ALL});return{...t,results:t.results.length>0?t.results[0]:null}}async fetchAll(e){return this.execute({query:this._select(e),arguments:e.where?e.where.params:void 0,fetchType:exports.FetchTypes.ALL})}async insert(e){let t=[];if(Array.isArray(e.data))for(const r of e.data)t=t.concat(this._parse_arguments(r));else t=t.concat(this._parse_arguments(e.data));return this.execute({query:this._insert(e),arguments:t,fetchType:exports.FetchTypes.ALL})}async update(e){let t=this._parse_arguments(e.data);return e.where&&e.where.params&&(t=e.where.params.concat(t)),this.execute({query:this._update(e),arguments:t,fetchType:exports.FetchTypes.ALL})}async delete(e){return this.execute({query:this._delete(e),arguments:e.where?e.where.params:void 0,fetchType:exports.FetchTypes.ALL})}_parse_arguments(e){return Object.values(e).map((e=>e instanceof n?e.content:e))}_onConflict(e){return e?`OR ${e} `:""}_insert(e){const t=[];Array.isArray(e.data)||(e.data=[e.data]);const r=Object.keys(e.data[0]).join(", ");let s=1;for(const r of e.data){const e=[];Object.values(r).forEach((t=>{t instanceof n?e.push(t.content):e.push(`?${s}`),s+=1})),t.push(`(${e.join(", ")})`)}return`INSERT ${this._onConflict(e.onConflict)}INTO ${e.tableName} (${r}) VALUES ${t.join(", ")}`+this._returning(e.returning)}_update(e){const t=e.where&&e.where.params?Object.keys(e.where.params).length:0,r=[];return Object.entries(e.data).forEach((([e,s],i)=>{s instanceof n?r.push(`${e} = ${s.content}`):r.push(`${e} = ?${t+i+1}`)})),`UPDATE ${this._onConflict(e.onConflict)}${e.tableName} SET ${r.join(", ")}`+this._where(e.where?.conditions)+this._returning(e.returning)}_delete(e){return`DELETE FROM ${e.tableName}`+this._where(e.where?.conditions)+this._returning(e.returning)}_select(e){return`SELECT ${this._fields(e.fields)} FROM ${e.tableName}`+this._join(e.join)+this._where(e.where?.conditions)+this._groupBy(e.groupBy)+this._having(e.having)+this._orderBy(e.orderBy)+this._limit(e.limit)+this._offset(e.offset)}_fields(e){return"string"==typeof e?e:e.join(", ")}_where(e){return e?"string"==typeof e?` WHERE ${e}`:` WHERE ${e.join(" AND ")}`:""}_join(e){if(!e)return"";Array.isArray(e)||(e=[e]);const t=[];return e.forEach((e=>{const r=e.type?`${e.type} `:"";t.push(`${r}JOIN ${e.table} ON ${e.on}`)}))," "+t.join(" ")}_groupBy(e){return e?"string"==typeof e?` GROUP BY ${e}`:` GROUP BY ${e.join(", ")}`:""}_having(e){return e?` HAVING ${e}`:""}_orderBy(e){if(!e)return"";if("string"==typeof e)return` ORDER BY ${e}`;if(Array.isArray(e))return` ORDER BY ${e.join(", ")}`;const t=[];return Object.entries(e).forEach((([e,r])=>{t.push(`${e} ${r}`)})),` ORDER BY ${t.join(", ")}`}_limit(e){return e?` LIMIT ${e}`:""}_offset(e){return e?` OFFSET ${e}`:""}_returning(e){return e?"string"==typeof e?` RETURNING ${e}`:` RETURNING ${e.join(", ")}`:""}}exports.D1QB=class extends i{db;constructor(e){super(),this.db=e}async execute(e){let t=this.db.prepare(e.query);if(e.arguments){const r=e.arguments.map((e=>e instanceof n?e.content:e));t=t.bind(...r)}return e.fetchType===exports.FetchTypes.ONE?t.first():e.fetchType===exports.FetchTypes.ALL?t.all():t.run()}},exports.PGQB=class extends i{client;constructor(e){super(),this.client=e}async connect(){await this.client.connect()}async close(){await this.client.end()}async execute(e){const t=e.query.replaceAll("?","$");let r;if(e.arguments){const s=e.arguments.map((e=>e instanceof n?e.content:e));r=await this.client.query({values:s,text:t})}else r=await this.client.query({text:t});return e.fetchType===exports.FetchTypes.ONE||e.fetchType===exports.FetchTypes.ALL?{command:r.command,lastRowId:r.oid,rowCount:r.rowCount,results:r.rows}:null}},exports.QueryBuilder=i,exports.Raw=n;
|
package/dist/workers-qb.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,t,r,n;!function(e){e.ASC="ASC",e.DESC="DESC"}(e||(e={})),function(e){e.ONE="ONE",e.ALL="ALL"}(t||(t={})),function(e){e.ROLLBACK="ROLLBACK",e.ABORT="ABORT",e.FAIL="FAIL",e.IGNORE="IGNORE",e.REPLACE="REPLACE"}(r||(r={})),function(e){e.INNER="INNER",e.LEFT="LEFT",e.CROSS="CROSS"}(n||(n={}));class s{isRaw=!0;content;constructor(e){this.content=e}}class i{async execute(e){throw new Error("Execute method not implemented")}async createTable(e){return this.execute({query:`CREATE TABLE ${e.ifNotExists?"IF NOT EXISTS":""} ${e.tableName}\n (\n ${e.schema}\n )`})}async dropTable(e){return this.execute({query:`DROP TABLE ${e.ifExists?"IF EXISTS":""} ${e.tableName}`})}async fetchOne(e){const r=await this.execute({query:this._select({...e,limit:1}),arguments:e.where?e.where.params:void 0,fetchType:t.ALL});return{...r,results:r.results.length>0?r.results[0]:null}}async fetchAll(e){return this.execute({query:this._select(e),arguments:e.where?e.where.params:void 0,fetchType:t.ALL})}async insert(e){let r=[];if(Array.isArray(e.data))for(const t of e.data)r=r.concat(this._parse_arguments(t));else r=r.concat(this._parse_arguments(e.data));return this.execute({query:this._insert(e),arguments:r,fetchType:t.ALL})}async update(e){let r=this._parse_arguments(e.data);return e.where&&e.where.params&&(r=e.where.params.concat(r)),this.execute({query:this._update(e),arguments:r,fetchType:t.ALL})}async delete(e){return this.execute({query:this._delete(e),arguments:e.where?e.where.params:void 0,fetchType:t.ALL})}_parse_arguments(e){return Object.values(e).map((e=>e instanceof s?e.content:e))}_onConflict(e){return e?`OR ${e} `:""}_insert(e){const t=[];Array.isArray(e.data)||(e.data=[e.data]);const r=Object.keys(e.data[0]).join(", ");let n=1;for(const r of e.data){const e=[];Object.values(r).forEach((t=>{t instanceof s?e.push(t.content):e.push(`?${n}`),n+=1})),t.push(`(${e.join(", ")})`)}return`INSERT ${this._onConflict(e.onConflict)}INTO ${e.tableName} (${r}) VALUES ${t.join(", ")}`+this._returning(e.returning)}_update(e){const t=e.where&&e.where.params?Object.keys(e.where.params).length:0,r=[];return Object.entries(e.data).forEach((([e,n],i)=>{n instanceof s?r.push(`${e} = ${n.content}`):r.push(`${e} = ?${t+i+1}`)})),`UPDATE ${this._onConflict(e.onConflict)}${e.tableName} SET ${r.join(", ")}`+this._where(e.where?.conditions)+this._returning(e.returning)}_delete(e){return`DELETE FROM ${e.tableName}`+this._where(e.where?.conditions)+this._returning(e.returning)}_select(e){return`SELECT ${this._fields(e.fields)} FROM ${e.tableName}`+this._join(e.join)+this._where(e.where?.conditions)+this._groupBy(e.groupBy)+this._having(e.having)+this._orderBy(e.orderBy)+this._limit(e.limit)+this._offset(e.offset)}_fields(e){return"string"==typeof e?e:e.join(", ")}_where(e){return e?"string"==typeof e?` WHERE ${e}`:` WHERE ${e.join(" AND ")}`:""}_join(e){if(!e)return"";Array.isArray(e)||(e=[e]);const t=[];return e.forEach((e=>{const r=e.type?`${e.type} `:"";t.push(`${r}JOIN ${e.table} ON ${e.on}`)}))," "+t.join(" ")}_groupBy(e){return e?"string"==typeof e?` GROUP BY ${e}`:` GROUP BY ${e.join(", ")}`:""}_having(e){return e?` HAVING ${e}`:""}_orderBy(e){if(!e)return"";if("string"==typeof e)return` ORDER BY ${e}`;if(Array.isArray(e))return` ORDER BY ${e.join(", ")}`;const t=[];return Object.entries(e).forEach((([e,r])=>{t.push(`${e} ${r}`)})),` ORDER BY ${t.join(", ")}`}_limit(e){return e?` LIMIT ${e}`:""}_offset(e){return e?` OFFSET ${e}`:""}_returning(e){return e?"string"==typeof e?` RETURNING ${e}`:` RETURNING ${e.join(", ")}`:""}}class a extends i{db;constructor(e){super(),this.db=e}async execute(e){let r=this.db.prepare(e.query);if(e.arguments){const t=e.arguments.map((e=>e instanceof s?e.content:e));r=r.bind(...t)}return e.fetchType===t.ONE?r.first():e.fetchType===t.ALL?r.all():r.run()}}
|
|
1
|
+
var e,t,r,n;!function(e){e.ASC="ASC",e.DESC="DESC"}(e||(e={})),function(e){e.ONE="ONE",e.ALL="ALL"}(t||(t={})),function(e){e.ROLLBACK="ROLLBACK",e.ABORT="ABORT",e.FAIL="FAIL",e.IGNORE="IGNORE",e.REPLACE="REPLACE"}(r||(r={})),function(e){e.INNER="INNER",e.LEFT="LEFT",e.CROSS="CROSS"}(n||(n={}));class s{isRaw=!0;content;constructor(e){this.content=e}}class i{async execute(e){throw new Error("Execute method not implemented")}async createTable(e){return this.execute({query:`CREATE TABLE ${e.ifNotExists?"IF NOT EXISTS":""} ${e.tableName}\n (\n ${e.schema}\n )`})}async dropTable(e){return this.execute({query:`DROP TABLE ${e.ifExists?"IF EXISTS":""} ${e.tableName}`})}async fetchOne(e){const r=await this.execute({query:this._select({...e,limit:1}),arguments:e.where?e.where.params:void 0,fetchType:t.ALL});return{...r,results:r.results.length>0?r.results[0]:null}}async fetchAll(e){return this.execute({query:this._select(e),arguments:e.where?e.where.params:void 0,fetchType:t.ALL})}async insert(e){let r=[];if(Array.isArray(e.data))for(const t of e.data)r=r.concat(this._parse_arguments(t));else r=r.concat(this._parse_arguments(e.data));return this.execute({query:this._insert(e),arguments:r,fetchType:t.ALL})}async update(e){let r=this._parse_arguments(e.data);return e.where&&e.where.params&&(r=e.where.params.concat(r)),this.execute({query:this._update(e),arguments:r,fetchType:t.ALL})}async delete(e){return this.execute({query:this._delete(e),arguments:e.where?e.where.params:void 0,fetchType:t.ALL})}_parse_arguments(e){return Object.values(e).map((e=>e instanceof s?e.content:e))}_onConflict(e){return e?`OR ${e} `:""}_insert(e){const t=[];Array.isArray(e.data)||(e.data=[e.data]);const r=Object.keys(e.data[0]).join(", ");let n=1;for(const r of e.data){const e=[];Object.values(r).forEach((t=>{t instanceof s?e.push(t.content):e.push(`?${n}`),n+=1})),t.push(`(${e.join(", ")})`)}return`INSERT ${this._onConflict(e.onConflict)}INTO ${e.tableName} (${r}) VALUES ${t.join(", ")}`+this._returning(e.returning)}_update(e){const t=e.where&&e.where.params?Object.keys(e.where.params).length:0,r=[];return Object.entries(e.data).forEach((([e,n],i)=>{n instanceof s?r.push(`${e} = ${n.content}`):r.push(`${e} = ?${t+i+1}`)})),`UPDATE ${this._onConflict(e.onConflict)}${e.tableName} SET ${r.join(", ")}`+this._where(e.where?.conditions)+this._returning(e.returning)}_delete(e){return`DELETE FROM ${e.tableName}`+this._where(e.where?.conditions)+this._returning(e.returning)}_select(e){return`SELECT ${this._fields(e.fields)} FROM ${e.tableName}`+this._join(e.join)+this._where(e.where?.conditions)+this._groupBy(e.groupBy)+this._having(e.having)+this._orderBy(e.orderBy)+this._limit(e.limit)+this._offset(e.offset)}_fields(e){return"string"==typeof e?e:e.join(", ")}_where(e){return e?"string"==typeof e?` WHERE ${e}`:` WHERE ${e.join(" AND ")}`:""}_join(e){if(!e)return"";Array.isArray(e)||(e=[e]);const t=[];return e.forEach((e=>{const r=e.type?`${e.type} `:"";t.push(`${r}JOIN ${e.table} ON ${e.on}`)}))," "+t.join(" ")}_groupBy(e){return e?"string"==typeof e?` GROUP BY ${e}`:` GROUP BY ${e.join(", ")}`:""}_having(e){return e?` HAVING ${e}`:""}_orderBy(e){if(!e)return"";if("string"==typeof e)return` ORDER BY ${e}`;if(Array.isArray(e))return` ORDER BY ${e.join(", ")}`;const t=[];return Object.entries(e).forEach((([e,r])=>{t.push(`${e} ${r}`)})),` ORDER BY ${t.join(", ")}`}_limit(e){return e?` LIMIT ${e}`:""}_offset(e){return e?` OFFSET ${e}`:""}_returning(e){return e?"string"==typeof e?` RETURNING ${e}`:` RETURNING ${e.join(", ")}`:""}}class a extends i{db;constructor(e){super(),this.db=e}async execute(e){let r=this.db.prepare(e.query);if(e.arguments){const t=e.arguments.map((e=>e instanceof s?e.content:e));r=r.bind(...t)}return e.fetchType===t.ONE?r.first():e.fetchType===t.ALL?r.all():r.run()}}class c extends i{client;constructor(e){super(),this.client=e}async connect(){await this.client.connect()}async close(){await this.client.end()}async execute(e){const r=e.query.replaceAll("?","$");let n;if(e.arguments){const t=e.arguments.map((e=>e instanceof s?e.content:e));n=await this.client.query({values:t,text:r})}else n=await this.client.query({text:r});return e.fetchType===t.ONE||e.fetchType===t.ALL?{command:n.command,lastRowId:n.oid,rowCount:n.rowCount,results:n.rows}:null}}export{r as ConflictTypes,a as D1QB,t as FetchTypes,n as JoinTypes,e as OrderTypes,c as PGQB,i as QueryBuilder,s as Raw};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "workers-qb",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "Zero dependencies Query Builder for Cloudflare Workers",
|
|
5
5
|
"main": "./dist/workers-qb.js",
|
|
6
6
|
"types": "./dist/workers-qb.d.ts",
|
|
@@ -84,8 +84,5 @@
|
|
|
84
84
|
"rollup-plugin-bundle-size": "^1.0.3",
|
|
85
85
|
"ts-jest": "^28.0.5",
|
|
86
86
|
"typescript": "^4.8.4"
|
|
87
|
-
},
|
|
88
|
-
"optionalDependencies": {
|
|
89
|
-
"pg": "^8.11.0"
|
|
90
87
|
}
|
|
91
88
|
}
|