@bdkinc/knex-ibmi 0.2.3 → 0.2.5

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 CHANGED
@@ -35,7 +35,7 @@ Requires Node v16 or higher.
35
35
 
36
36
  ## Usage
37
37
 
38
- This library can be used as commonjs, esm or typescript.
38
+ This library can be used as commonjs, esm or TypeScript.
39
39
 
40
40
  ```javascript
41
41
  const knex = require("knex");
@@ -45,7 +45,7 @@ const db = knex({
45
45
  client: DB2Dialect,
46
46
  connection: {
47
47
  host: "localhost", // hostname or ip address of server
48
- database: "knextest", // usually named in your odbc.ini connection
48
+ database: "*LOCAL", // usually named in your odbc.ini connection
49
49
  port: 50000, // default port
50
50
  user: "<user>", // IBMi username
51
51
  password: "<password>", // IBMi password
@@ -80,7 +80,7 @@ const db = knex({
80
80
  client: DB2Dialect,
81
81
  connection: {
82
82
  host: "localhost", // hostname or ip address of server
83
- database: "knextest", // usually named in your odbc.ini connection
83
+ database: "*LOCAL", // usually named in your odbc.ini connection
84
84
  port: 50000, // default port
85
85
  user: "<user>", // IBMi username
86
86
  password: "<password>", // IBMi password
@@ -117,7 +117,7 @@ const config: DB2Config = {
117
117
  client: DB2Dialect,
118
118
  connection: {
119
119
  host: "localhost", // hostname or ip address of server
120
- database: "knextest", // usually named in your odbc.ini connection
120
+ database: "*LOCAL", // usually named in your odbc.ini connection
121
121
  port: 50000, // default port
122
122
  user: "<user>", // IBMi username
123
123
  password: "<password>", // IBMi password
package/dist/index.d.ts CHANGED
@@ -40,7 +40,6 @@ declare class IBMiQueryCompiler extends QueryCompiler {
40
40
  update(): {
41
41
  sql: string;
42
42
  returning: any;
43
- selectReturning: string;
44
43
  };
45
44
  _returning(method: string, value: any, withTrigger: undefined): string | undefined;
46
45
  columnizeWithPrefix(prefix: string, target: any): string;
@@ -94,12 +93,10 @@ interface DB2ConnectionConfig {
94
93
  driver: "IBM i Access ODBC Driver" | string;
95
94
  connectionStringParams?: DB2ConnectionParams;
96
95
  }
97
- interface DB2Config {
96
+ interface DB2Config extends Knex.Config {
98
97
  client: any;
99
98
  connection: DB2ConnectionConfig;
100
99
  pool?: DB2PoolConfig;
101
- version?: string;
102
- useNullAsDefault?: boolean;
103
100
  }
104
101
  declare const DB2Dialect: typeof DB2Client;
105
102
 
package/dist/index.js CHANGED
@@ -271,17 +271,15 @@ var IBMiQueryCompiler = class extends import_querycompiler.default {
271
271
  const order = this.order();
272
272
  const limit = this.limit();
273
273
  const { returning } = this.single;
274
- const values = Object.values(this.single.update).map((a) => `${a}`).join(", ");
275
- const moreWheres = this.grouped.where && this.grouped.where.length > 0 ? this.grouped.where.map((w) => {
276
- if (this.single.update.hasOwnProperty(w.column)) return;
277
- if (!w.value) return;
278
- return `"${w.column}" ${w.not ? "!" : ""}${w.operator} ${w.value}`;
279
- }) : [];
280
- let selectReturning = returning ? `select ${returning.map((a) => `"${a}"`).join(", ")} from ${this.tableName} where ${Object.entries(this.single.update).map(([key, value]) => `"${key}" = '${value}'`).join(" and ")}${moreWheres.length > 0 && " and "}${moreWheres.join(
281
- " and "
282
- )}` : "";
283
- const sql = withSQL + `update ${this.single.only ? "only " : ""}${this.tableName} set ` + updates.join(", ") + (where ? ` ${where}` : "") + (order ? ` ${order}` : "") + (limit ? ` ${limit}` : "");
284
- return { sql, returning, selectReturning };
274
+ let sql = "";
275
+ if (returning) {
276
+ sql += `select ${this.formatter.columnize(this.single.returning)} from FINAL TABLE(`;
277
+ }
278
+ sql += withSQL + `update ${this.single.only ? "only " : ""}${this.tableName} set ` + updates.join(", ") + (where ? ` ${where}` : "") + (order ? ` ${order}` : "") + (limit ? ` ${limit}` : "");
279
+ if (returning) {
280
+ sql += `)`;
281
+ }
282
+ return { sql, returning };
285
283
  }
286
284
  _returning(method, value, withTrigger) {
287
285
  switch (method) {
@@ -348,11 +346,10 @@ var DB2Client = class extends import_knex.knex.Client {
348
346
  }
349
347
  }
350
348
  printError(message) {
351
- if (import_node_process.default.env.DEBUG === "true") {
352
- if (this.logger.error) {
353
- this.logger.error("knex-ibmi: " + message);
354
- }
349
+ if (this.logger.error) {
350
+ this.logger.error("knex-ibmi: " + message);
355
351
  }
352
+ throw new Error(message);
356
353
  }
357
354
  printWarn(message) {
358
355
  if (import_node_process.default.env.DEBUG === "true") {
@@ -448,8 +445,7 @@ var DB2Client = class extends import_knex.knex.Client {
448
445
  obj.response = { rows: result, rowCount: result.count };
449
446
  }
450
447
  } catch (err) {
451
- this.printError(err);
452
- throw new Error(err);
448
+ this.printError(JSON.stringify(err));
453
449
  }
454
450
  }
455
451
  this.printDebug(obj);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bdkinc/knex-ibmi",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "Knex dialect for IBMi",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",