You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

firebird-query

Package Overview
Dependencies
Maintainers
1
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

firebird-query - npm Package Compare versions

Comparing version

to
0.4.3

238

lib/cjs/index.js

@@ -14,3 +14,2 @@ "use strict";

};
var _a;
Object.defineProperty(exports, "__esModule", { value: true });

@@ -190,3 +189,3 @@ exports.FirebirdQuery = void 0;

host: process.env.DB_HOST,
port: Number.parseInt((_a = process.env.DB_PORT) !== null && _a !== void 0 ? _a : "") || 3050,
port: Number.parseInt(process.env.DB_PORT || "") || 3050,
database: process.env.DB_DATABASE,

@@ -200,54 +199,35 @@ user: process.env.DB_USER || "SYSDBA",

}
getDB() {
get db() {
return new Promise((res, rej) => {
if (this.db === undefined) {
this.conn.get((err, db) => {
if (err) {
rej(err);
}
this.db = db;
return res(db);
});
}
else {
return res(this.db);
}
this.conn.get((err, db) => {
if (err) {
return rej({ message: 'Error Establishing a Database Connection', err });
}
return res(db);
});
});
}
;
manageQuery(query) {
return new Promise((res, rej) => {
if (this.db === undefined) {
this.conn.get((err, db) => {
this.db
.then((db) => {
db.query(query, [], (err, data) => {
if (err) {
return rej({ message: 'Error Establishing a Database Connection', err });
return rej({ message: 'Query error', err });
}
this.db = db;
db.query(query, [], (err, data) => {
if (err) {
return rej(err);
}
return res(data);
});
});
}
else {
this.db.query(query, [], (err, data) => {
if (err) {
return rej({ message: 'Error Executing Query', err });
}
return res(data);
});
}
})
.catch(err => rej(err));
});
}
getTransaction(db) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((res, rej) => {
db.transaction(node_firebird_1.default.ISOLATION_READ_COMMITTED, (err, transaction) => {
get transaction() {
return new Promise((res, rej) => {
this.db.then((db) => {
db.transaction(node_firebird_1.default.ISOLATION_READ_COMMITTED, (err, tx) => {
if (err) {
return rej(err);
return rej({ message: 'Error initializing transaction', err });
}
else {
return res(transaction);
}
return res(tx);
});

@@ -288,101 +268,25 @@ });

}
initTransaction() {
return __awaiter(this, void 0, void 0, function* () {
const db = yield this.getDB();
const transaction = yield this.getTransaction(db);
const onError = () => {
return new Promise((res, rej) => {
transaction.rollbackRetaining((err) => {
if (err) {
return rej(err);
}
return res();
});
});
};
return {
queryRaw: handleRawQuery((query) => {
return new Promise((res, rej) => {
transaction.query(query, [], (err, data) => {
if (err) {
return rej(err);
}
return res(data);
initTransaction(cb) {
this.conn.get((err, db) => {
if (err) {
throw new Error('Error Establishing a Database Connection');
}
db.transaction(node_firebird_1.default.ISOLATION_READ_COMMITTED, (err, tx) => {
if (err) {
throw new Error('Error initializing transaction');
}
const res = {
queryRaw: handleRawQuery((query) => {
return new Promise((res, rej) => {
tx.query(query, [], (err, data) => {
if (err) {
return rej(err);
}
return res(data);
});
});
});
}),
insertOne: handleInsertOne((query) => {
return new Promise((res, rej) => {
transaction.query(query, [], (err, data) => {
if (err) {
return rej(err);
}
return res(data);
});
});
}),
insertMany: handleInsertMany((query, length) => {
return new Promise((res, rej) => {
transaction.query(query, [], (err, data) => {
if (err) {
return rej(err);
}
return res(`${length} rows inserted`);
});
});
}),
updateOne: handleUpdateOne((query) => {
return new Promise((res, rej) => {
transaction.query(query, [], (err, data) => {
if (err) {
return rej(err);
}
return res(data);
});
});
}),
updateOrInsert: handleUpdateOrInsert((query) => {
return new Promise((res, rej) => {
transaction.query(query, [], (err, data) => {
if (err) {
return rej(err);
}
return res(data);
});
});
}),
deleteOne: handleDeleteOne((query) => {
return new Promise((res, rej) => {
transaction.query(query, [], (err, data) => {
if (err) {
return rej(err);
}
return res(data);
});
});
}),
commit: () => __awaiter(this, void 0, void 0, function* () {
return new Promise((res, rej) => {
transaction.commit((err) => __awaiter(this, void 0, void 0, function* () {
if (err) {
yield onError();
return rej(err);
}
return res();
}));
});
}),
rollback: () => __awaiter(this, void 0, void 0, function* () { return onError(); }),
close: () => __awaiter(this, void 0, void 0, function* () {
return new Promise((res, rej) => {
db.detach((err) => {
if (err) {
return rej(err);
}
this.conn.destroy();
return res();
});
});
}),
};
}),
};
cb(txHandler(tx));
});
});

@@ -393,3 +297,2 @@ }

function handleRawQuery(cb) {
console.log('op');
return (strings, ...params) => {

@@ -471,1 +374,56 @@ const sanitizedQuery = sqlBuilder(strings, params);

}
function txHandler(tx) {
function onError() {
return new Promise((res, rej) => {
tx.rollback((err) => {
if (err) {
return rej(err);
}
return res();
});
});
}
;
function executeTransactionQuery(query, processResult) {
return new Promise((res, rej) => {
tx.query(query, [], (err, data) => {
if (err) {
return rej(err);
}
return res(processResult(data));
});
});
}
return {
queryRaw: handleRawQuery((query) => {
return executeTransactionQuery(query, data => data);
}),
insertOne: handleInsertOne((query) => {
return executeTransactionQuery(query, data => data);
}),
insertMany: handleInsertMany((query, length) => {
return executeTransactionQuery(query, () => `${length} rows inserted`);
}),
updateOne: handleUpdateOne((query) => {
return executeTransactionQuery(query, data => data);
}),
updateOrInsert: handleUpdateOrInsert((query) => {
return executeTransactionQuery(query, data => data);
}),
deleteOne: handleDeleteOne((query) => {
return executeTransactionQuery(query, data => data);
}),
commit: () => __awaiter(this, void 0, void 0, function* () {
return new Promise((res, rej) => {
tx.commit((err) => __awaiter(this, void 0, void 0, function* () {
if (err) {
yield onError();
return rej(err);
}
return res();
}));
});
}),
rollback: () => onError()
};
}

@@ -82,8 +82,7 @@ import Firebird from "node-firebird";

export declare class FirebirdQuery {
private db?;
private conn;
constructor(options?: Firebird.Options, max?: number);
private getDB;
private get db();
private manageQuery;
private getTransaction;
private get transaction();
get queryRaw(): <T>(strings: TemplateStringsArray, ...params: QueryParam[]) => {

@@ -118,38 +117,38 @@ getQuery: () => string;

};
initTransaction(): Promise<{
queryRaw: <T>(strings: TemplateStringsArray, ...params: QueryParam[]) => {
getQuery: () => string;
execute: () => Promise<T[]>;
paginated: (take: number, page?: number) => Promise<T[]>;
};
insertOne: <T_1 extends {
[key: string]: any;
}>(params: InsertOneParams<T_1>) => {
getQuery: () => string;
execute: () => Promise<T_1>;
};
insertMany: <T_2 extends {
[key: string]: any;
}>(params: InsertParams<T_2>) => {
getQuery: () => string;
execute: () => Promise<string>;
};
updateOne: <T_3>(params: UpdateOneParams<T_3>) => {
getQuery: () => string;
execute: () => Promise<T_3>;
};
updateOrInsert: <T_4>(params: UpdateOrInsertParams<T_4>) => {
getQuery: () => string;
execute: () => Promise<T_4>;
};
deleteOne: <T_5>(params: DeleteOneParams<T_5>) => {
getQuery: () => string;
execute: () => Promise<T_5>;
};
commit: () => Promise<void>;
rollback: () => Promise<void>;
close: () => Promise<void>;
}>;
initTransaction(cb: (tx: ReturnType<typeof txHandler>) => void): void;
}
declare function txHandler(tx: Firebird.Transaction): {
queryRaw: <T>(strings: TemplateStringsArray, ...params: QueryParam[]) => {
getQuery: () => string;
execute: () => Promise<T[]>;
paginated: (take: number, page?: number) => Promise<T[]>;
};
insertOne: <T_1 extends {
[key: string]: any;
}>(params: InsertOneParams<T_1>) => {
getQuery: () => string;
execute: () => Promise<T_1>;
};
insertMany: <T_2 extends {
[key: string]: any;
}>(params: InsertParams<T_2>) => {
getQuery: () => string;
execute: () => Promise<string>;
};
updateOne: <T_3>(params: UpdateOneParams<T_3>) => {
getQuery: () => string;
execute: () => Promise<T_3>;
};
updateOrInsert: <T_4>(params: UpdateOrInsertParams<T_4>) => {
getQuery: () => string;
execute: () => Promise<T_4>;
};
deleteOne: <T_5>(params: DeleteOneParams<T_5>) => {
getQuery: () => string;
execute: () => Promise<T_5>;
};
commit: () => Promise<void>;
rollback: () => Promise<void>;
};
export {};
//# sourceMappingURL=index.d.ts.map

@@ -82,8 +82,7 @@ import Firebird from "node-firebird";

export declare class FirebirdQuery {
private db?;
private conn;
constructor(options?: Firebird.Options, max?: number);
private getDB;
private get db();
private manageQuery;
private getTransaction;
private get transaction();
get queryRaw(): <T>(strings: TemplateStringsArray, ...params: QueryParam[]) => {

@@ -118,38 +117,38 @@ getQuery: () => string;

};
initTransaction(): Promise<{
queryRaw: <T>(strings: TemplateStringsArray, ...params: QueryParam[]) => {
getQuery: () => string;
execute: () => Promise<T[]>;
paginated: (take: number, page?: number) => Promise<T[]>;
};
insertOne: <T_1 extends {
[key: string]: any;
}>(params: InsertOneParams<T_1>) => {
getQuery: () => string;
execute: () => Promise<T_1>;
};
insertMany: <T_2 extends {
[key: string]: any;
}>(params: InsertParams<T_2>) => {
getQuery: () => string;
execute: () => Promise<string>;
};
updateOne: <T_3>(params: UpdateOneParams<T_3>) => {
getQuery: () => string;
execute: () => Promise<T_3>;
};
updateOrInsert: <T_4>(params: UpdateOrInsertParams<T_4>) => {
getQuery: () => string;
execute: () => Promise<T_4>;
};
deleteOne: <T_5>(params: DeleteOneParams<T_5>) => {
getQuery: () => string;
execute: () => Promise<T_5>;
};
commit: () => Promise<void>;
rollback: () => Promise<void>;
close: () => Promise<void>;
}>;
initTransaction(cb: (tx: ReturnType<typeof txHandler>) => void): void;
}
declare function txHandler(tx: Firebird.Transaction): {
queryRaw: <T>(strings: TemplateStringsArray, ...params: QueryParam[]) => {
getQuery: () => string;
execute: () => Promise<T[]>;
paginated: (take: number, page?: number) => Promise<T[]>;
};
insertOne: <T_1 extends {
[key: string]: any;
}>(params: InsertOneParams<T_1>) => {
getQuery: () => string;
execute: () => Promise<T_1>;
};
insertMany: <T_2 extends {
[key: string]: any;
}>(params: InsertParams<T_2>) => {
getQuery: () => string;
execute: () => Promise<string>;
};
updateOne: <T_3>(params: UpdateOneParams<T_3>) => {
getQuery: () => string;
execute: () => Promise<T_3>;
};
updateOrInsert: <T_4>(params: UpdateOrInsertParams<T_4>) => {
getQuery: () => string;
execute: () => Promise<T_4>;
};
deleteOne: <T_5>(params: DeleteOneParams<T_5>) => {
getQuery: () => string;
execute: () => Promise<T_5>;
};
commit: () => Promise<void>;
rollback: () => Promise<void>;
};
export {};
//# sourceMappingURL=index.d.ts.map

@@ -5,3 +5,3 @@ {

"license": "MIT",
"version": "0.4.2",
"version": "0.4.3",
"description": "node-firebird plugin for easy and safe query building.",

@@ -8,0 +8,0 @@ "author": {

@@ -13,5 +13,3 @@ # firebird-query

```bash
npm install firebird-query
```

@@ -29,4 +27,3 @@

```typescript
```javascript
import { FirebirdQuery } from 'firebird-query';

@@ -43,3 +40,3 @@

export const db = new FirebirdQuery(options, maxConn);
export const db = new FirebirdQuery(options, maxConn);
```

@@ -61,4 +58,4 @@

Then
```typescript
export const db = new FirebirdQuery(); // use it wherever you want
```javascript
export const db = new FirebirdQuery(); // use it wherever you want
```

@@ -82,3 +79,3 @@

```typescript
```javascript

@@ -121,16 +118,10 @@ import { db } from './db.service.js';

```typescript
const result = t.queryRaw`SELECT COD, NAME FROM USERS WHERE ${{
COD: 1,
NAME: "John",
```javascript
const result = await t.queryRaw`SELECT COD, NAME FROM USERS WHERE ${{
COD: 1,
NAME: "John",
}}`.getQuery();
console.log(result);
// SELECT COD, NAME FROM USERS WHERE COD = '1' AND NAME = 'John'
```

@@ -144,6 +135,4 @@

```typescript
```javascript
const name = "Tom";
const result = await t.queryRaw`

@@ -154,4 +143,4 @@ SELECT COD, NAME FROM USERS WHERE ${{

}}`.getQuery();
console.log(result);
// SELECT COD, NAME FROM USERS WHERE 1=1 AND NAME = 'Tom'

@@ -166,6 +155,4 @@ ```

```typescript
```javascript
const name = "Tom";
const result = await t.queryRaw`

@@ -177,3 +164,2 @@ SELECT COD, NAME FROM USERS WHERE ${{

console.log(result);
// SELECT COD, NAME FROM USERS WHERE LOWER(NAME) = 'tom'

@@ -238,3 +224,3 @@ ```

```typescript
```javascript
const name = "Tom";

@@ -264,3 +250,3 @@ const result = await t.queryRaw`

```typescript
```javascript
const result = await db.insertOne({

@@ -384,22 +370,24 @@ tableName: 'USERS',

An async method that returns a ISOLATION_READ_COMMITTED transaction instance to work with. It has the same methods to query and mutate the database in addition to
A callback managed function that returns a `ISOLATION_READ_COMMITTED` transaction instance to work with. It has the same methods to query and mutate the database in addition to
1. commit
2. close
2. rollback
3. rollback
```typescript
// recommended usage
db.initTransaction().then(async (t) => {
// t(ransaction) is scoped into this async function.
//Every query or mutation correspond to this specific transaction.
})
```javascript
// recommended approach
db.initTransaction(async (t) => {
// t(ransaction) is scoped into this async function.
try {
const data = await t.queryRaw`
SELECT 1 AS TEST FROM RDB$DATABASE;
`.execute();
console.log(data); // --> [{ TEST: 1 }]
} catch (error) {
console.log(error);
}
})
```

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet