@nesgarbo/node-jt400 6.0.3 → 6.0.4

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.
Files changed (152) hide show
  1. package/README.md +330 -369
  2. package/dist-cjs/index.d.cts +12 -5
  3. package/dist-cjs/index.js.map +1 -1
  4. package/dist-cjs/java/JT400.d.cts +3 -3
  5. package/dist-cjs/java/JT400.js.map +1 -1
  6. package/dist-cjs/java/index.js +4 -3
  7. package/dist-cjs/java/index.js.map +1 -1
  8. package/dist-cjs/lib/baseConnection.js +124 -166
  9. package/dist-cjs/lib/baseConnection.js.map +1 -1
  10. package/dist-cjs/lib/baseConnection.types.d.cts +11 -7
  11. package/dist-cjs/lib/baseConnection.types.js.map +1 -1
  12. package/dist-cjs/lib/connection.js +12 -25
  13. package/dist-cjs/lib/connection.js.map +1 -1
  14. package/dist-cjs/lib/connection.types.d.cts +39 -12
  15. package/dist-cjs/lib/connection.types.js.map +1 -1
  16. package/dist-cjs/lib/handleError.d.cts +1 -3
  17. package/dist-cjs/lib/handleError.js +3 -2
  18. package/dist-cjs/lib/handleError.js.map +1 -1
  19. package/dist-cjs/lib/ifs/read_stream.d.cts +6 -1
  20. package/dist-cjs/lib/ifs/read_stream.js +23 -32
  21. package/dist-cjs/lib/ifs/read_stream.js.map +1 -1
  22. package/dist-cjs/lib/ifs/write_stream.d.cts +7 -1
  23. package/dist-cjs/lib/ifs/write_stream.js +13 -24
  24. package/dist-cjs/lib/ifs/write_stream.js.map +1 -1
  25. package/dist-cjs/lib/inMemoryConnection.d.cts +1 -1
  26. package/dist-cjs/lib/inMemoryConnection.js +4 -4
  27. package/dist-cjs/lib/inMemoryConnection.js.map +1 -1
  28. package/dist-cjs/lib/insertList.js +12 -13
  29. package/dist-cjs/lib/insertList.js.map +1 -1
  30. package/dist-cjs/lib/jdbcstream.d.cts +16 -1
  31. package/dist-cjs/lib/jdbcstream.js +31 -36
  32. package/dist-cjs/lib/jdbcstream.js.map +1 -1
  33. package/dist-cjs/lib/jdbcwritestream.d.cts +4 -1
  34. package/dist-cjs/lib/jdbcwritestream.js +7 -20
  35. package/dist-cjs/lib/jdbcwritestream.js.map +1 -1
  36. package/dist-cjs/lib/logger.d.cts +4 -4
  37. package/dist-cjs/lib/logger.js.map +1 -1
  38. package/dist-cjs/lib/sqlutil.d.cts +4 -1
  39. package/dist-cjs/lib/sqlutil.js +1 -0
  40. package/dist-cjs/lib/sqlutil.js.map +1 -1
  41. package/dist-cjs/lib/streamTransformers.d.cts +2 -1
  42. package/dist-cjs/lib/streamTransformers.js +1 -1
  43. package/dist-cjs/lib/streamTransformers.js.map +1 -1
  44. package/dist-cjs/typings/jsonstream.d.js +1 -0
  45. package/dist-cjs/typings/jsonstream.d.js.map +1 -0
  46. package/dist-esm/index.d.ts +12 -5
  47. package/dist-esm/index.js.map +1 -1
  48. package/dist-esm/java/JT400.d.ts +3 -3
  49. package/dist-esm/java/index.js +3 -10
  50. package/dist-esm/java/index.js.map +1 -1
  51. package/dist-esm/lib/baseConnection.js +124 -166
  52. package/dist-esm/lib/baseConnection.js.map +1 -1
  53. package/dist-esm/lib/baseConnection.types.d.ts +11 -7
  54. package/dist-esm/lib/baseConnection.types.js.map +1 -1
  55. package/dist-esm/lib/connection.js +12 -25
  56. package/dist-esm/lib/connection.js.map +1 -1
  57. package/dist-esm/lib/connection.types.d.ts +39 -12
  58. package/dist-esm/lib/handleError.d.ts +1 -3
  59. package/dist-esm/lib/handleError.js +3 -2
  60. package/dist-esm/lib/handleError.js.map +1 -1
  61. package/dist-esm/lib/ifs/read_stream.d.ts +6 -1
  62. package/dist-esm/lib/ifs/read_stream.js +23 -22
  63. package/dist-esm/lib/ifs/read_stream.js.map +1 -1
  64. package/dist-esm/lib/ifs/write_stream.d.ts +7 -1
  65. package/dist-esm/lib/ifs/write_stream.js +13 -14
  66. package/dist-esm/lib/ifs/write_stream.js.map +1 -1
  67. package/dist-esm/lib/inMemoryConnection.d.ts +1 -1
  68. package/dist-esm/lib/inMemoryConnection.js +4 -4
  69. package/dist-esm/lib/inMemoryConnection.js.map +1 -1
  70. package/dist-esm/lib/insertList.js +12 -13
  71. package/dist-esm/lib/insertList.js.map +1 -1
  72. package/dist-esm/lib/jdbcstream.d.ts +16 -1
  73. package/dist-esm/lib/jdbcstream.js +31 -36
  74. package/dist-esm/lib/jdbcstream.js.map +1 -1
  75. package/dist-esm/lib/jdbcwritestream.d.ts +4 -1
  76. package/dist-esm/lib/jdbcwritestream.js +7 -10
  77. package/dist-esm/lib/jdbcwritestream.js.map +1 -1
  78. package/dist-esm/lib/logger.d.ts +4 -4
  79. package/dist-esm/lib/logger.js.map +1 -1
  80. package/dist-esm/lib/sqlutil.d.ts +4 -1
  81. package/dist-esm/lib/sqlutil.js +1 -0
  82. package/dist-esm/lib/sqlutil.js.map +1 -1
  83. package/dist-esm/lib/streamTransformers.d.ts +2 -1
  84. package/dist-esm/lib/streamTransformers.js +1 -1
  85. package/dist-esm/lib/streamTransformers.js.map +1 -1
  86. package/package.json +16 -21
  87. package/dist-cjs/integration-test/call-rpg-spec.d.cts +0 -2
  88. package/dist-cjs/integration-test/call-rpg-spec.js +0 -101
  89. package/dist-cjs/integration-test/call-rpg-spec.js.map +0 -1
  90. package/dist-cjs/integration-test/dataq-spec.d.cts +0 -2
  91. package/dist-cjs/integration-test/dataq-spec.js +0 -57
  92. package/dist-cjs/integration-test/dataq-spec.js.map +0 -1
  93. package/dist-cjs/integration-test/db.d.cts +0 -8
  94. package/dist-cjs/integration-test/db.js +0 -31
  95. package/dist-cjs/integration-test/db.js.map +0 -1
  96. package/dist-cjs/integration-test/db2-connect-spec.d.cts +0 -2
  97. package/dist-cjs/integration-test/db2-connect-spec.js +0 -42
  98. package/dist-cjs/integration-test/db2-connect-spec.js.map +0 -1
  99. package/dist-cjs/integration-test/db2-pool-spec.d.cts +0 -2
  100. package/dist-cjs/integration-test/db2-pool-spec.js +0 -213
  101. package/dist-cjs/integration-test/db2-pool-spec.js.map +0 -1
  102. package/dist-cjs/integration-test/ifs-spec.d.cts +0 -2
  103. package/dist-cjs/integration-test/ifs-spec.js +0 -140
  104. package/dist-cjs/integration-test/ifs-spec.js.map +0 -1
  105. package/dist-cjs/integration-test/msgf-spec.d.cts +0 -2
  106. package/dist-cjs/integration-test/msgf-spec.js +0 -34
  107. package/dist-cjs/integration-test/msgf-spec.js.map +0 -1
  108. package/dist-cjs/integration-test/msgq-spec.d.cts +0 -2
  109. package/dist-cjs/integration-test/msgq-spec.js +0 -45
  110. package/dist-cjs/integration-test/msgq-spec.js.map +0 -1
  111. package/dist-cjs/unit-test/hsql-spec.d.cts +0 -2
  112. package/dist-cjs/unit-test/hsql-spec.js +0 -488
  113. package/dist-cjs/unit-test/hsql-spec.js.map +0 -1
  114. package/dist-cjs/unit-test/sqlutil-spec.d.cts +0 -2
  115. package/dist-cjs/unit-test/sqlutil-spec.js +0 -43
  116. package/dist-cjs/unit-test/sqlutil-spec.js.map +0 -1
  117. package/dist-cjs/unit-test/streamTransformers-spec.d.cts +0 -2
  118. package/dist-cjs/unit-test/streamTransformers-spec.js +0 -121
  119. package/dist-cjs/unit-test/streamTransformers-spec.js.map +0 -1
  120. package/dist-esm/integration-test/call-rpg-spec.d.ts +0 -2
  121. package/dist-esm/integration-test/call-rpg-spec.js +0 -79
  122. package/dist-esm/integration-test/call-rpg-spec.js.map +0 -1
  123. package/dist-esm/integration-test/dataq-spec.d.ts +0 -2
  124. package/dist-esm/integration-test/dataq-spec.js +0 -35
  125. package/dist-esm/integration-test/dataq-spec.js.map +0 -1
  126. package/dist-esm/integration-test/db.d.ts +0 -8
  127. package/dist-esm/integration-test/db.js +0 -8
  128. package/dist-esm/integration-test/db.js.map +0 -1
  129. package/dist-esm/integration-test/db2-connect-spec.d.ts +0 -2
  130. package/dist-esm/integration-test/db2-connect-spec.js +0 -20
  131. package/dist-esm/integration-test/db2-connect-spec.js.map +0 -1
  132. package/dist-esm/integration-test/db2-pool-spec.d.ts +0 -2
  133. package/dist-esm/integration-test/db2-pool-spec.js +0 -197
  134. package/dist-esm/integration-test/db2-pool-spec.js.map +0 -1
  135. package/dist-esm/integration-test/ifs-spec.d.ts +0 -2
  136. package/dist-esm/integration-test/ifs-spec.js +0 -118
  137. package/dist-esm/integration-test/ifs-spec.js.map +0 -1
  138. package/dist-esm/integration-test/msgf-spec.d.ts +0 -2
  139. package/dist-esm/integration-test/msgf-spec.js +0 -12
  140. package/dist-esm/integration-test/msgf-spec.js.map +0 -1
  141. package/dist-esm/integration-test/msgq-spec.d.ts +0 -2
  142. package/dist-esm/integration-test/msgq-spec.js +0 -23
  143. package/dist-esm/integration-test/msgq-spec.js.map +0 -1
  144. package/dist-esm/unit-test/hsql-spec.d.ts +0 -2
  145. package/dist-esm/unit-test/hsql-spec.js +0 -466
  146. package/dist-esm/unit-test/hsql-spec.js.map +0 -1
  147. package/dist-esm/unit-test/sqlutil-spec.d.ts +0 -2
  148. package/dist-esm/unit-test/sqlutil-spec.js +0 -21
  149. package/dist-esm/unit-test/sqlutil-spec.js.map +0 -1
  150. package/dist-esm/unit-test/streamTransformers-spec.d.ts +0 -2
  151. package/dist-esm/unit-test/streamTransformers-spec.js +0 -99
  152. package/dist-esm/unit-test/streamTransformers-spec.js.map +0 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nesgarbo/node-jt400",
3
3
  "author": "Néstor García Bou <nesgarbo@icloud.com>",
4
- "version": "6.0.3",
4
+ "version": "6.0.4",
5
5
  "description": "JT400 (IBM Toolbox) for NodeJS",
6
6
  "type": "module",
7
7
  "main": "dist-cjs/index.js",
@@ -35,18 +35,16 @@
35
35
  "format-verify": "prettier --check ./ts-src/**/*.ts",
36
36
  "format": "prettier --write ./ts-src/**/*.ts",
37
37
  "lint": "eslint ts-src/**/*.ts",
38
- "test": "mocha -r source-map-support/register --exit dist-esm/unit-test -t 1000",
39
- "test-cjs": "mocha -r source-map-support/register --exit dist-cjs/unit-test -t 1000",
40
- "integration-test": "mocha -r source-map-support/register --exit dist-esm/integration-test -t 10000",
41
- "integration-cjs-test": "mocha -r source-map-support/register --exit dist-cjs/integration-test -t 10000",
38
+ "test": "vitest run",
39
+ "integration-test": "vitest run --config vitest.integration.config.ts",
42
40
  "build": "tsup",
43
41
  "test-compatibility": "node test-mjs.mjs && node test-cjs.cjs && cd /tmp && node $INIT_CWD/test-mjs.mjs && node $INIT_CWD/test-cjs.cjs",
44
42
  "clean": "rm -rf dist-esm dist-cjs",
45
43
  "build-dev": "tsup --watch",
46
- "test-dev": "mocha dist-esm/unit-test --watch",
44
+ "test-dev": "vitest",
47
45
  "build-all": "npm run build && npm run build-java",
48
46
  "build-java": "ant archive -buildfile ./java",
49
- "ci": "npm run clean && npm run build && npm run test && npm run test-cjs && npm run integration-test && npm run integration-cjs-test && npm run test-compatibility"
47
+ "ci": "npm run clean && npm run build && npm run test && npm run test-compatibility"
50
48
  },
51
49
  "keywords": [
52
50
  "typescript",
@@ -60,28 +58,25 @@
60
58
  ],
61
59
  "license": "MIT",
62
60
  "engines": {
63
- "node": ">=16"
61
+ "node": ">=18"
64
62
  },
65
63
  "dependencies": {
66
- "flushwritable": "^1.0.0",
67
- "java-bridge": "^2.8.0",
64
+ "java-bridge": "^2.8.1",
68
65
  "JSONStream": "^1.3.5",
69
66
  "oops-error": "^2.5.0"
70
67
  },
71
68
  "devDependencies": {
72
- "@types/mocha": "^10.0.10",
73
- "@types/node": "^24.10.0",
74
- "@typescript-eslint/eslint-plugin": "^8.46.1",
75
- "@typescript-eslint/parser": "^8.46.1",
76
- "eslint": "^8.57.1",
77
- "eslint-config-standard": "^17.1.0",
69
+ "@eslint/js": "^10.0.1",
70
+ "@types/node": "^25.6.0",
71
+ "@typescript-eslint/eslint-plugin": "^8.59.2",
72
+ "@typescript-eslint/parser": "^8.59.2",
73
+ "eslint": "^10.3.0",
78
74
  "husky": "^9.1.7",
79
- "mocha": "^11.7.1",
80
- "prettier": "^3.6.2",
81
- "source-map-support": "^0.5.21",
75
+ "prettier": "^3.8.3",
82
76
  "stream-equal": "^2.0.1",
83
- "tsup": "^8.5.0",
84
- "typescript": "^5.3.3"
77
+ "tsup": "^8.5.1",
78
+ "typescript": "^6.0.3",
79
+ "vitest": "^4.1.5"
85
80
  },
86
81
  "husky": {
87
82
  "hooks": {
@@ -1,2 +0,0 @@
1
-
2
- export { }
@@ -1,101 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __copyProps = (to, from, except, desc) => {
8
- if (from && typeof from === "object" || typeof from === "function") {
9
- for (let key of __getOwnPropNames(from))
10
- if (!__hasOwnProp.call(to, key) && key !== except)
11
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
- }
13
- return to;
14
- };
15
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
- // If the importer is in node compatibility mode or this is not an ESM
17
- // file that has been converted to a CommonJS file using a Babel-
18
- // compatible transform (i.e. "__esModule" has not been set), then set
19
- // "default" to the CommonJS "module.exports" for node compatibility.
20
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
- mod
22
- ));
23
- var import_assert = __toESM(require("assert"), 1);
24
- var import_db = require("./db.js");
25
- describe("PGM", () => {
26
- it("should run rpg program", async () => {
27
- const getIsk = import_db.jt400.defineProgram({
28
- programName: "GET_ISK",
29
- paramsSchema: [{ name: "mynt", size: 3 }]
30
- });
31
- const result = await Promise.all([
32
- getIsk({ mynt: "Kr." }),
33
- getIsk({ mynt: "EUR" })
34
- ]);
35
- import_assert.default.strictEqual(result[0].mynt, "ISK");
36
- import_assert.default.strictEqual(result[1].mynt, "EUR");
37
- }).timeout(15e3);
38
- it("should run GETNETFG", async () => {
39
- const getNetfang = import_db.jt400.defineProgram({
40
- programName: "GETNETFG",
41
- paramsSchema: [
42
- { name: "kt", size: 10, decimals: 0 },
43
- { name: "email", size: 30 },
44
- { name: "valid", size: 1 }
45
- ]
46
- });
47
- const result = await getNetfang({ kt: "0123456789" });
48
- import_assert.default.strictEqual(result.valid, "N");
49
- });
50
- it("should run pgm with datastructure param", async () => {
51
- const tstDs = import_db.jt400.defineProgram({
52
- programName: "TST_DS",
53
- paramsSchema: [
54
- {
55
- p1: [
56
- { name: "txt1", size: 3 },
57
- { name: "num1", size: 9, decimals: 0 },
58
- { name: "num2", type: "numeric", size: 9, decimals: 0 }
59
- ]
60
- }
61
- ]
62
- });
63
- const result = await tstDs({ p1: { txt1: "tst", num1: 400, num2: 7 } });
64
- import_assert.default.strictEqual(result.p1.txt1, "tst");
65
- import_assert.default.strictEqual(result.p1.num1, 401);
66
- import_assert.default.strictEqual(result.p1.num2, 8);
67
- });
68
- it("should run pgm with datastructure param with columns format", async () => {
69
- const tstDs = import_db.jt400.defineProgram({
70
- programName: "TST_DS",
71
- paramsSchema: [
72
- {
73
- p1: [
74
- { name: "txt1", typeName: "VARCHAR", precision: 3, scale: 0 },
75
- { name: "num1", typeName: "DECIMAL", precision: 9, scale: 0 },
76
- { name: "num2", typeName: "NUMERIC", precision: 9, scale: 0 }
77
- ]
78
- }
79
- ]
80
- });
81
- const result = await tstDs({ p1: { txt1: "tst", num1: 400, num2: 7 } });
82
- import_assert.default.strictEqual(result.p1.txt1, "tst");
83
- import_assert.default.strictEqual(result.p1.num1, 401);
84
- import_assert.default.strictEqual(result.p1.num2, 8);
85
- });
86
- it("should get timeout errors", () => {
87
- const brokenProgram = import_db.jt400.pgm(
88
- "DTQHANG",
89
- [{ name: "strengur", size: 7 }],
90
- "WTMEXC"
91
- );
92
- return brokenProgram({ strengur: "abcd123" }).then(() => {
93
- throw new Error("Not the correct error");
94
- }).catch((e) => {
95
- import_assert.default.strictEqual(e.category, "OperationalError");
96
- import_assert.default.notStrictEqual(e, null);
97
- import_assert.default.ok(e.message.includes("Connection was dropped unexpectedly."));
98
- });
99
- });
100
- });
101
- //# sourceMappingURL=call-rpg-spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../ts-src/integration-test/call-rpg-spec.ts"],"sourcesContent":["import assert from 'assert'\nimport { jt400 } from './db.js'\n\ndescribe('PGM', () => {\n it('should run rpg program', async () => {\n const getIsk = jt400.defineProgram({\n programName: 'GET_ISK',\n paramsSchema: [{ name: 'mynt', size: 3 }],\n })\n const result = await Promise.all([\n getIsk({ mynt: 'Kr.' }),\n getIsk({ mynt: 'EUR' }),\n ])\n assert.strictEqual(result[0].mynt, 'ISK')\n assert.strictEqual(result[1].mynt, 'EUR')\n }).timeout(15000)\n\n it('should run GETNETFG', async () => {\n const getNetfang = jt400.defineProgram({\n programName: 'GETNETFG',\n paramsSchema: [\n { name: 'kt', size: 10, decimals: 0 },\n { name: 'email', size: 30 },\n { name: 'valid', size: 1 },\n ],\n })\n const result = await getNetfang({ kt: '0123456789' })\n assert.strictEqual(result.valid, 'N')\n })\n\n it('should run pgm with datastructure param', async () => {\n const tstDs = jt400.defineProgram({\n programName: 'TST_DS',\n paramsSchema: [\n {\n p1: [\n { name: 'txt1', size: 3 },\n { name: 'num1', size: 9, decimals: 0 },\n { name: 'num2', type: 'numeric', size: 9, decimals: 0 },\n ],\n },\n ],\n })\n\n const result = await tstDs({ p1: { txt1: 'tst', num1: 400, num2: 7 } })\n assert.strictEqual(result.p1.txt1, 'tst')\n assert.strictEqual(result.p1.num1, 401)\n assert.strictEqual(result.p1.num2, 8)\n })\n\n it('should run pgm with datastructure param with columns format', async () => {\n const tstDs = jt400.defineProgram({\n programName: 'TST_DS',\n paramsSchema: [\n {\n p1: [\n { name: 'txt1', typeName: 'VARCHAR', precision: 3, scale: 0 },\n { name: 'num1', typeName: 'DECIMAL', precision: 9, scale: 0 },\n { name: 'num2', typeName: 'NUMERIC', precision: 9, scale: 0 },\n ],\n },\n ],\n })\n\n const result = await tstDs({ p1: { txt1: 'tst', num1: 400, num2: 7 } })\n assert.strictEqual(result.p1.txt1, 'tst')\n assert.strictEqual(result.p1.num1, 401)\n assert.strictEqual(result.p1.num2, 8)\n })\n\n it('should get timeout errors', () => {\n const brokenProgram = jt400.pgm(\n 'DTQHANG',\n [{ name: 'strengur', size: 7 }],\n 'WTMEXC',\n )\n\n return brokenProgram({ strengur: 'abcd123' })\n .then(() => {\n throw new Error('Not the correct error')\n })\n .catch((e) => {\n assert.strictEqual(e.category, 'OperationalError')\n assert.notStrictEqual(e, null)\n assert.ok(e.message.includes('Connection was dropped unexpectedly.'))\n })\n })\n})\n"],"mappings":"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","names":["assert"]}
@@ -1,2 +0,0 @@
1
-
2
- export { }
@@ -1,57 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __copyProps = (to, from, except, desc) => {
8
- if (from && typeof from === "object" || typeof from === "function") {
9
- for (let key of __getOwnPropNames(from))
10
- if (!__hasOwnProp.call(to, key) && key !== except)
11
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
- }
13
- return to;
14
- };
15
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
- // If the importer is in node compatibility mode or this is not an ESM
17
- // file that has been converted to a CommonJS file using a Babel-
18
- // compatible transform (i.e. "__esModule" has not been set), then set
19
- // "default" to the CommonJS "module.exports" for node compatibility.
20
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
- mod
22
- ));
23
- var import_db = require("./db.js");
24
- var import_assert = __toESM(require("assert"), 1);
25
- describe("keyed dataQ", () => {
26
- it("should read and write", (done) => {
27
- const dataQ = import_db.jt400.createKeyedDataQ({ name: "SDQS1" });
28
- dataQ.read("mytestkey").then((data) => {
29
- import_assert.default.strictEqual(data, "ping");
30
- }).then(done, done);
31
- dataQ.write("mytestkey", "ping");
32
- }).timeout(5e3);
33
- it("should fail on timeout", (done) => {
34
- const dataQ = import_db.jt400.createKeyedDataQ({ name: "SDQS1" });
35
- dataQ.read({
36
- key: "mytestkey",
37
- wait: 1
38
- /* sec */
39
- }).catch((err) => {
40
- import_assert.default.ok(err.message.includes("timeout, key: mytestkey"));
41
- }).then(done, done);
42
- });
43
- it("should write to reponse", () => {
44
- const dataQ = import_db.jt400.createKeyedDataQ({ name: "SDQS1" });
45
- dataQ.read({ key: "mytestkey", wait: 1, writeKeyLength: 11 }).then((res) => {
46
- import_assert.default.strictEqual(res.data, "ping");
47
- res.write("pong");
48
- }).catch((err) => {
49
- console.log("error reading data Q", err);
50
- });
51
- dataQ.write("mytestkey", "returnkey ping");
52
- return dataQ.read({ key: "returnkey ", wait: 10 }).then((data) => {
53
- import_assert.default.strictEqual(data, "pong");
54
- });
55
- });
56
- });
57
- //# sourceMappingURL=dataq-spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../ts-src/integration-test/dataq-spec.ts"],"sourcesContent":["import { jt400 } from './db.js'\nimport assert from 'assert'\n\ndescribe('keyed dataQ', () => {\n it('should read and write', (done) => {\n const dataQ = jt400.createKeyedDataQ({ name: 'SDQS1' })\n\n dataQ\n .read('mytestkey')\n .then((data) => {\n assert.strictEqual(data, 'ping')\n })\n .then(done, done)\n\n dataQ.write('mytestkey', 'ping')\n }).timeout(5000)\n\n it('should fail on timeout', (done) => {\n const dataQ = jt400.createKeyedDataQ({ name: 'SDQS1' })\n dataQ\n .read({ key: 'mytestkey', wait: 1 /* sec */ })\n .catch((err) => {\n assert.ok(err.message.includes('timeout, key: mytestkey'))\n })\n .then(done, done)\n })\n\n it('should write to reponse', () => {\n const dataQ = jt400.createKeyedDataQ({ name: 'SDQS1' })\n dataQ\n .read({ key: 'mytestkey', wait: 1, writeKeyLength: 11 })\n .then((res) => {\n assert.strictEqual(res.data, 'ping')\n res.write('pong')\n })\n .catch((err) => {\n console.log('error reading data Q', err)\n })\n\n dataQ.write('mytestkey', 'returnkey ping')\n\n return dataQ.read({ key: 'returnkey ', wait: 10 }).then((data) => {\n assert.strictEqual(data, 'pong')\n })\n })\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,gBAAsB;AACtB,oBAAmB;AAEnB,SAAS,eAAe,MAAM;AAC5B,KAAG,yBAAyB,CAAC,SAAS;AACpC,UAAM,QAAQ,gBAAM,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEtD,UACG,KAAK,WAAW,EAChB,KAAK,CAAC,SAAS;AACd,oBAAAA,QAAO,YAAY,MAAM,MAAM;AAAA,IACjC,CAAC,EACA,KAAK,MAAM,IAAI;AAElB,UAAM,MAAM,aAAa,MAAM;AAAA,EACjC,CAAC,EAAE,QAAQ,GAAI;AAEf,KAAG,0BAA0B,CAAC,SAAS;AACrC,UAAM,QAAQ,gBAAM,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AACtD,UACG,KAAK;AAAA,MAAE,KAAK;AAAA,MAAa,MAAM;AAAA;AAAA,IAAY,CAAC,EAC5C,MAAM,CAAC,QAAQ;AACd,oBAAAA,QAAO,GAAG,IAAI,QAAQ,SAAS,yBAAyB,CAAC;AAAA,IAC3D,CAAC,EACA,KAAK,MAAM,IAAI;AAAA,EACpB,CAAC;AAED,KAAG,2BAA2B,MAAM;AAClC,UAAM,QAAQ,gBAAM,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AACtD,UACG,KAAK,EAAE,KAAK,aAAa,MAAM,GAAG,gBAAgB,GAAG,CAAC,EACtD,KAAK,CAAC,QAAQ;AACb,oBAAAA,QAAO,YAAY,IAAI,MAAM,MAAM;AACnC,UAAI,MAAM,MAAM;AAAA,IAClB,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,cAAQ,IAAI,wBAAwB,GAAG;AAAA,IACzC,CAAC;AAEH,UAAM,MAAM,aAAa,iBAAiB;AAE1C,WAAO,MAAM,KAAK,EAAE,KAAK,eAAe,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS;AACjE,oBAAAA,QAAO,YAAY,MAAM,MAAM;AAAA,IACjC,CAAC;AAAA,EACH,CAAC;AACH,CAAC;","names":["assert"]}
@@ -1,8 +0,0 @@
1
- import { Connection } from '../lib/connection.types.cjs';
2
- import 'stream';
3
- import '../lib/baseConnection.types.cjs';
4
- import '../lib/ifs/types.cjs';
5
-
6
- declare const jt400: Connection;
7
-
8
- export { jt400 };
@@ -1,31 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var db_exports = {};
19
- __export(db_exports, {
20
- jt400: () => jt400
21
- });
22
- module.exports = __toCommonJS(db_exports);
23
- var import__ = require("../index.js");
24
- const jt400 = (0, import__.pool)({
25
- "date format": "iso"
26
- });
27
- // Annotate the CommonJS export names for ESM import in node:
28
- 0 && (module.exports = {
29
- jt400
30
- });
31
- //# sourceMappingURL=db.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../ts-src/integration-test/db.ts"],"sourcesContent":["import { pool, Connection } from '../index.js'\nexport const jt400: Connection = pool({\n 'date format': 'iso',\n})\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAiC;AAC1B,MAAM,YAAoB,eAAK;AAAA,EACpC,eAAe;AACjB,CAAC;","names":[]}
@@ -1,2 +0,0 @@
1
-
2
- export { }
@@ -1,42 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __copyProps = (to, from, except, desc) => {
8
- if (from && typeof from === "object" || typeof from === "function") {
9
- for (let key of __getOwnPropNames(from))
10
- if (!__hasOwnProp.call(to, key) && key !== except)
11
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
- }
13
- return to;
14
- };
15
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
- // If the importer is in node compatibility mode or this is not an ESM
17
- // file that has been converted to a CommonJS file using a Babel-
18
- // compatible transform (i.e. "__esModule" has not been set), then set
19
- // "default" to the CommonJS "module.exports" for node compatibility.
20
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
- mod
22
- ));
23
- var import__ = require("../index.js");
24
- var import_assert = __toESM(require("assert"), 1);
25
- describe("connect", () => {
26
- it("should connect", async () => {
27
- const db = await (0, import__.connect)();
28
- const nUpdated = await db.update("delete from tsttbl");
29
- import_assert.default.ok(nUpdated >= 0);
30
- }).timeout(1e4);
31
- it("should close", async () => {
32
- const db = await (0, import__.connect)();
33
- db.close();
34
- return db.update("delete from tsttbl").then(() => {
35
- throw new Error("should not be connected");
36
- }).catch((err) => {
37
- import_assert.default.strictEqual(err.message, "The connection does not exist.");
38
- import_assert.default.strictEqual(err.category, "OperationalError");
39
- });
40
- }).timeout(6e3);
41
- });
42
- //# sourceMappingURL=db2-connect-spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../ts-src/integration-test/db2-connect-spec.ts"],"sourcesContent":["import { connect } from '../index.js'\nimport assert from 'assert'\n\ndescribe('connect', () => {\n it('should connect', async () => {\n const db = await connect()\n const nUpdated = await db.update('delete from tsttbl')\n assert.ok(nUpdated >= 0)\n }).timeout(10000)\n\n it('should close', async () => {\n const db = await connect()\n db.close()\n\n return db\n .update('delete from tsttbl')\n .then(() => {\n throw new Error('should not be connected')\n })\n .catch((err) => {\n assert.strictEqual(err.message, 'The connection does not exist.')\n assert.strictEqual(err.category, 'OperationalError')\n })\n }).timeout(6000)\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,eAAwB;AACxB,oBAAmB;AAEnB,SAAS,WAAW,MAAM;AACxB,KAAG,kBAAkB,YAAY;AAC/B,UAAM,KAAK,UAAM,kBAAQ;AACzB,UAAM,WAAW,MAAM,GAAG,OAAO,oBAAoB;AACrD,kBAAAA,QAAO,GAAG,YAAY,CAAC;AAAA,EACzB,CAAC,EAAE,QAAQ,GAAK;AAEhB,KAAG,gBAAgB,YAAY;AAC7B,UAAM,KAAK,UAAM,kBAAQ;AACzB,OAAG,MAAM;AAET,WAAO,GACJ,OAAO,oBAAoB,EAC3B,KAAK,MAAM;AACV,YAAM,IAAI,MAAM,yBAAyB;AAAA,IAC3C,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,oBAAAA,QAAO,YAAY,IAAI,SAAS,gCAAgC;AAChE,oBAAAA,QAAO,YAAY,IAAI,UAAU,kBAAkB;AAAA,IACrD,CAAC;AAAA,EACL,CAAC,EAAE,QAAQ,GAAI;AACjB,CAAC;","names":["assert"]}
@@ -1,2 +0,0 @@
1
-
2
- export { }
@@ -1,213 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __copyProps = (to, from, except, desc) => {
8
- if (from && typeof from === "object" || typeof from === "function") {
9
- for (let key of __getOwnPropNames(from))
10
- if (!__hasOwnProp.call(to, key) && key !== except)
11
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
- }
13
- return to;
14
- };
15
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
- // If the importer is in node compatibility mode or this is not an ESM
17
- // file that has been converted to a CommonJS file using a Babel-
18
- // compatible transform (i.e. "__esModule" has not been set), then set
19
- // "default" to the CommonJS "module.exports" for node compatibility.
20
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
- mod
22
- ));
23
- var import_assert = __toESM(require("assert"), 1);
24
- var import_fs = require("fs");
25
- var import__ = require("../index.js");
26
- var import_db = require("./db.js");
27
- var import_path = require("path");
28
- const currentDir = __dirname;
29
- describe("jt400 pool", () => {
30
- let idList;
31
- beforeEach(() => {
32
- return import_db.jt400.update("delete from tsttbl").then(() => {
33
- const records = [
34
- { foo: "bar", bar: 123, baz: "123.23" },
35
- { foo: "bar2 ", bar: 124, baz: "321.32" }
36
- ];
37
- return import_db.jt400.insertList("tsttbl", "testtblid", records);
38
- }).then((idListResult) => idList = idListResult);
39
- });
40
- it("should not be in memory", () => {
41
- import_assert.default.strictEqual(import_db.jt400.isInMemory(), false);
42
- });
43
- it("should not return same instance in configure", () => {
44
- import_assert.default.notStrictEqual(import_db.jt400, (0, import__.pool)({ host: "foo" }));
45
- });
46
- it("should configure host", () => {
47
- const db = (0, import__.pool)({ host: "nohost" });
48
- return db.query("select * from tsttbl").then(() => {
49
- throw new Error("should not return result from nohost");
50
- }).catch((err) => {
51
- import_assert.default.ok(err.message.includes("nohost"));
52
- import_assert.default.strictEqual(err.category, "OperationalError");
53
- });
54
- }).timeout(2e4);
55
- it("should insert records", () => {
56
- import_assert.default.strictEqual(idList.length, 2);
57
- import_assert.default.ok(Number(idList[0]) > 1);
58
- });
59
- it("should execute query", async () => {
60
- const data = await import_db.jt400.query("select * from tsttbl");
61
- import_assert.default.strictEqual(data.length, 2);
62
- });
63
- it("should trim values as default", async () => {
64
- const data = await import_db.jt400.query(
65
- "select * from tsttbl order by bar"
66
- );
67
- import_assert.default.strictEqual(data.length, 2);
68
- import_assert.default.strictEqual(data[1].FOO, "bar2");
69
- });
70
- it("should trim values when options is empty", async () => {
71
- const data = await import_db.jt400.query(
72
- "select * from tsttbl",
73
- [],
74
- {}
75
- );
76
- import_assert.default.strictEqual(data.length, 2);
77
- import_assert.default.strictEqual(data[1].FOO, "bar2");
78
- });
79
- it("should trim values when trim is undefined", async () => {
80
- let trim;
81
- const data = await import_db.jt400.query(
82
- "select * from tsttbl order by bar",
83
- [],
84
- {
85
- trim
86
- }
87
- );
88
- import_assert.default.strictEqual(data.length, 2);
89
- import_assert.default.strictEqual(data[1].FOO, "bar2");
90
- });
91
- it("should not trim values when trim option is false", async () => {
92
- const data = await import_db.jt400.query(
93
- "select * from tsttbl order by bar",
94
- [],
95
- {
96
- trim: false
97
- }
98
- );
99
- import_assert.default.strictEqual(data.length, 2);
100
- import_assert.default.strictEqual(data[1].FOO, "bar2 ");
101
- });
102
- it("should execute query with params", async () => {
103
- const data = await import_db.jt400.query("select * from tsttbl where baz=?", [
104
- 123.23
105
- ]);
106
- import_assert.default.strictEqual(data.length, 1);
107
- });
108
- it("should execute update", async () => {
109
- const nUpdated = await import_db.jt400.update(
110
- "update tsttbl set foo='bar3' where foo='bar'"
111
- );
112
- import_assert.default.strictEqual(nUpdated, 1);
113
- });
114
- it("should execute update with parameters", async () => {
115
- const nUpdated = await import_db.jt400.update(
116
- "update tsttbl set foo=? where testtblid=?",
117
- ["ble", 0]
118
- );
119
- import_assert.default.strictEqual(nUpdated, 0);
120
- });
121
- it("should insert dates and timestamps", () => {
122
- const params = [
123
- new Date(2014, 0, 15),
124
- new Date(2014, 0, 16, 15, 32, 5),
125
- "bar"
126
- ];
127
- return import_db.jt400.update("update tsttbl set fra=?, timi=? where foo=?", params).then(() => {
128
- return import_db.jt400.query(
129
- "select fra, timi from tsttbl where foo=?",
130
- ["bar"]
131
- );
132
- }).then((res) => {
133
- import_assert.default.deepStrictEqual(res[0].FRA, "2014-01-15");
134
- import_assert.default.deepStrictEqual(res[0].TIMI, "2014-01-16 15:32:05.000000");
135
- });
136
- });
137
- it("should insert clob", async () => {
138
- const largeText = (0, import_fs.readFileSync)(
139
- (0, import_path.join)(currentDir, "../../test-data/clob.txt")
140
- ).toString();
141
- await import_db.jt400.update("update tsttbl set clob=?", [
142
- { type: "CLOB", value: largeText }
143
- ]);
144
- const res = await import_db.jt400.query("SELECT clob from tsttbl");
145
- import_assert.default.strictEqual(res[0].CLOB.length, largeText.length);
146
- }).timeout(2e4);
147
- it("should insert blob", async () => {
148
- const image = (0, import_fs.readFileSync)((0, import_path.join)(currentDir, "../../test-data/blob.png"), {
149
- encoding: "base64"
150
- });
151
- await import_db.jt400.update("update tsttbl set blob=?", [
152
- { type: "BLOB", value: image }
153
- ]);
154
- const res = await import_db.jt400.query("SELECT blob from tsttbl");
155
- import_assert.default.strictEqual(res[0].BLOB.length, image.length);
156
- });
157
- it("should fail query with oops error", () => {
158
- const sql = "select * from tsttbl where baz=?";
159
- const params = [123.23, "a"];
160
- return import_db.jt400.query(sql, params).then(() => {
161
- throw new Error("wrong error");
162
- }).catch((error) => {
163
- import_assert.default.strictEqual(error.message, "Descriptor index not valid.");
164
- import_assert.default.ok(error.cause.stack.includes("JdbcJsonClient.setParams"));
165
- import_assert.default.strictEqual(error.context.sql, sql);
166
- import_assert.default.strictEqual(error.context.params, params);
167
- import_assert.default.strictEqual(error.category, "ProgrammerError");
168
- });
169
- });
170
- it("should fail insert with oops error", () => {
171
- const sql = "insert into table testtable (foo) values (?)";
172
- const params = [123.23, "a"];
173
- return import_db.jt400.insertAndGetId(sql, params).then(() => {
174
- throw new Error("wrong error");
175
- }).catch((error) => {
176
- import_assert.default.strictEqual(
177
- error.message,
178
- "[SQL0104] Token TESTTABLE was not valid. Valid tokens: : <INTEGER>."
179
- );
180
- import_assert.default.ok(error.cause.stack.includes("JdbcJsonClient.insertAndGetId"));
181
- import_assert.default.strictEqual(error.context.sql, sql);
182
- import_assert.default.strictEqual(error.context.params, params);
183
- import_assert.default.strictEqual(error.category, "ProgrammerError");
184
- });
185
- });
186
- it("should fail execute query with oops-error", () => {
187
- const sql = "select * from tsttbl-invalidtoken";
188
- return import_db.jt400.execute(sql).then(() => {
189
- throw new Error("wrong error");
190
- }).catch((error) => {
191
- import_assert.default.strictEqual(
192
- error.message,
193
- "[SQL0104] Token - was not valid. Valid tokens: AS CL ID IN TO ASC END FOR KEY LAG LOG NEW OFF OLD OUT COPY DATA."
194
- );
195
- import_assert.default.strictEqual(error.context.sql, sql);
196
- import_assert.default.deepStrictEqual(error.context.params, []);
197
- import_assert.default.strictEqual(error.category, "ProgrammerError");
198
- });
199
- });
200
- it("should fail update", async () => {
201
- const sql = "update tsttbl set foo=? where testtblid=?";
202
- const params = ["bar", 0, "toomanyparams"];
203
- return import_db.jt400.update(sql, params).then(() => {
204
- throw new Error("wrong error");
205
- }).catch((error) => {
206
- import_assert.default.strictEqual(error.message, "Descriptor index not valid.");
207
- import_assert.default.strictEqual(error.context.sql, sql);
208
- import_assert.default.strictEqual(error.context.params, params);
209
- import_assert.default.strictEqual(error.category, "ProgrammerError");
210
- });
211
- });
212
- });
213
- //# sourceMappingURL=db2-pool-spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../ts-src/integration-test/db2-pool-spec.ts"],"sourcesContent":["import assert from 'assert'\nimport { readFileSync } from 'fs'\nimport { pool, QueryOptions } from '../index.js'\nimport { jt400 as connection } from './db.js'\nimport { join } from 'path'\n\nconst currentDir = __dirname\n\ndescribe('jt400 pool', () => {\n let idList\n\n beforeEach(() => {\n return connection\n .update('delete from tsttbl')\n .then(() => {\n const records = [\n { foo: 'bar', bar: 123, baz: '123.23' },\n { foo: 'bar2 ', bar: 124, baz: '321.32' },\n ]\n return connection.insertList('tsttbl', 'testtblid', records)\n })\n .then((idListResult) => (idList = idListResult))\n })\n\n it('should not be in memory', () => {\n assert.strictEqual(connection.isInMemory(), false)\n })\n\n it('should not return same instance in configure', () => {\n assert.notStrictEqual(connection, pool({ host: 'foo' }))\n })\n\n it('should configure host', () => {\n const db = pool({ host: 'nohost' })\n return db\n .query('select * from tsttbl')\n .then(() => {\n throw new Error('should not return result from nohost')\n })\n .catch((err) => {\n assert.ok(err.message.includes('nohost'))\n assert.strictEqual(err.category, 'OperationalError')\n })\n }).timeout(20000)\n\n it('should insert records', () => {\n assert.strictEqual(idList.length, 2)\n assert.ok(Number(idList[0]) > 1)\n })\n\n it('should execute query', async () => {\n const data = await connection.query('select * from tsttbl')\n assert.strictEqual(data.length, 2)\n })\n\n it('should trim values as default', async () => {\n const data: any = await connection.query(\n 'select * from tsttbl order by bar',\n )\n assert.strictEqual(data.length, 2)\n assert.strictEqual(data[1].FOO, 'bar2')\n })\n\n it('should trim values when options is empty', async () => {\n const data: any = await connection.query(\n 'select * from tsttbl',\n [],\n {} as QueryOptions,\n )\n assert.strictEqual(data.length, 2)\n assert.strictEqual(data[1].FOO, 'bar2')\n })\n\n it('should trim values when trim is undefined', async () => {\n let trim\n const data: any = await connection.query(\n 'select * from tsttbl order by bar',\n [],\n {\n trim,\n },\n )\n assert.strictEqual(data.length, 2)\n assert.strictEqual(data[1].FOO, 'bar2')\n })\n\n it('should not trim values when trim option is false', async () => {\n const data: any = await connection.query(\n 'select * from tsttbl order by bar',\n [],\n {\n trim: false,\n },\n )\n assert.strictEqual(data.length, 2)\n assert.strictEqual(data[1].FOO, 'bar2 ')\n })\n\n it('should execute query with params', async () => {\n const data = await connection.query('select * from tsttbl where baz=?', [\n 123.23,\n ])\n assert.strictEqual(data.length, 1)\n })\n\n it('should execute update', async () => {\n const nUpdated = await connection.update(\n \"update tsttbl set foo='bar3' where foo='bar'\",\n )\n assert.strictEqual(nUpdated, 1)\n })\n\n it('should execute update with parameters', async () => {\n const nUpdated = await connection.update(\n 'update tsttbl set foo=? where testtblid=?',\n ['ble', 0],\n )\n assert.strictEqual(nUpdated, 0)\n })\n\n it('should insert dates and timestamps', () => {\n const params = [\n new Date(2014, 0, 15),\n new Date(2014, 0, 16, 15, 32, 5),\n 'bar',\n ]\n return connection\n .update('update tsttbl set fra=?, timi=? where foo=?', params)\n .then(() => {\n return connection.query<any>(\n 'select fra, timi from tsttbl where foo=?',\n ['bar'],\n )\n })\n .then((res) => {\n assert.deepStrictEqual(res[0].FRA, '2014-01-15')\n assert.deepStrictEqual(res[0].TIMI, '2014-01-16 15:32:05.000000')\n })\n })\n\n it('should insert clob', async () => {\n const largeText = readFileSync(\n join(currentDir, '../../test-data/clob.txt'),\n ).toString()\n await connection.update('update tsttbl set clob=?', [\n { type: 'CLOB', value: largeText },\n ])\n const res: any = await connection.query('SELECT clob from tsttbl')\n assert.strictEqual(res[0].CLOB.length, largeText.length)\n }).timeout(20000)\n\n it('should insert blob', async () => {\n const image = readFileSync(join(currentDir, '../../test-data/blob.png'), {\n encoding: 'base64',\n })\n\n await connection.update('update tsttbl set blob=?', [\n { type: 'BLOB', value: image },\n ])\n const res: any = await connection.query('SELECT blob from tsttbl')\n assert.strictEqual(res[0].BLOB.length, image.length)\n })\n\n it('should fail query with oops error', () => {\n const sql = 'select * from tsttbl where baz=?'\n const params = [123.23, 'a']\n\n return connection\n .query(sql, params)\n .then(() => {\n throw new Error('wrong error')\n })\n .catch((error) => {\n assert.strictEqual(error.message, 'Descriptor index not valid.')\n assert.ok(error.cause.stack.includes('JdbcJsonClient.setParams'))\n assert.strictEqual(error.context.sql, sql)\n assert.strictEqual(error.context.params, params)\n assert.strictEqual(error.category, 'ProgrammerError')\n })\n })\n\n it('should fail insert with oops error', () => {\n const sql = 'insert into table testtable (foo) values (?)'\n const params = [123.23, 'a']\n return connection\n .insertAndGetId(sql, params)\n .then(() => {\n throw new Error('wrong error')\n })\n .catch((error) => {\n assert.strictEqual(\n error.message,\n '[SQL0104] Token TESTTABLE was not valid. Valid tokens: : <INTEGER>.',\n )\n assert.ok(error.cause.stack.includes('JdbcJsonClient.insertAndGetId'))\n assert.strictEqual(error.context.sql, sql)\n assert.strictEqual(error.context.params, params)\n assert.strictEqual(error.category, 'ProgrammerError')\n })\n })\n\n it('should fail execute query with oops-error', () => {\n const sql = 'select * from tsttbl-invalidtoken'\n return connection\n .execute(sql)\n .then(() => {\n throw new Error('wrong error')\n })\n .catch((error) => {\n assert.strictEqual(\n error.message,\n '[SQL0104] Token - was not valid. Valid tokens: AS CL ID IN TO ASC END FOR KEY LAG LOG NEW OFF OLD OUT COPY DATA.',\n )\n assert.strictEqual(error.context.sql, sql)\n assert.deepStrictEqual(error.context.params, [])\n assert.strictEqual(error.category, 'ProgrammerError')\n })\n })\n\n it('should fail update', async () => {\n const sql = 'update tsttbl set foo=? where testtblid=?'\n const params = ['bar', 0, 'toomanyparams']\n return connection\n .update(sql, params)\n .then(() => {\n throw new Error('wrong error')\n })\n .catch((error) => {\n assert.strictEqual(error.message, 'Descriptor index not valid.')\n assert.strictEqual(error.context.sql, sql)\n assert.strictEqual(error.context.params, params)\n assert.strictEqual(error.category, 'ProgrammerError')\n })\n })\n})\n"],"mappings":"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","names":["connection","assert"]}
@@ -1,2 +0,0 @@
1
-
2
- export { }