@nesgarbo/node-jt400 5.4.3 → 6.0.2

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 (271) hide show
  1. package/README.md +16 -6
  2. package/dist-cjs/index.d.cts +18 -0
  3. package/dist-cjs/index.js +86 -0
  4. package/dist-cjs/index.js.map +1 -0
  5. package/dist-cjs/integration-test/call-rpg-spec.d.cts +2 -0
  6. package/dist-cjs/integration-test/call-rpg-spec.js +101 -0
  7. package/dist-cjs/integration-test/call-rpg-spec.js.map +1 -0
  8. package/dist-cjs/integration-test/dataq-spec.d.cts +2 -0
  9. package/dist-cjs/integration-test/dataq-spec.js +57 -0
  10. package/dist-cjs/integration-test/dataq-spec.js.map +1 -0
  11. package/dist-cjs/integration-test/db.d.cts +8 -0
  12. package/dist-cjs/integration-test/db.js +31 -0
  13. package/dist-cjs/integration-test/db.js.map +1 -0
  14. package/dist-cjs/integration-test/db2-connect-spec.d.cts +2 -0
  15. package/dist-cjs/integration-test/db2-connect-spec.js +42 -0
  16. package/dist-cjs/integration-test/db2-connect-spec.js.map +1 -0
  17. package/dist-cjs/integration-test/db2-pool-spec.d.cts +2 -0
  18. package/dist-cjs/integration-test/db2-pool-spec.js +213 -0
  19. package/dist-cjs/integration-test/db2-pool-spec.js.map +1 -0
  20. package/dist-cjs/integration-test/ifs-spec.d.cts +2 -0
  21. package/dist-cjs/integration-test/ifs-spec.js +140 -0
  22. package/dist-cjs/integration-test/ifs-spec.js.map +1 -0
  23. package/dist-cjs/integration-test/msgf-spec.d.cts +2 -0
  24. package/dist-cjs/integration-test/msgf-spec.js +34 -0
  25. package/dist-cjs/integration-test/msgf-spec.js.map +1 -0
  26. package/dist-cjs/integration-test/msgq-spec.d.cts +2 -0
  27. package/dist-cjs/integration-test/msgq-spec.js +45 -0
  28. package/dist-cjs/integration-test/msgq-spec.js.map +1 -0
  29. package/dist-cjs/java/JT400.d.cts +88 -0
  30. package/dist-cjs/java/JT400.js +16 -0
  31. package/dist-cjs/java/JT400.js.map +1 -0
  32. package/dist-cjs/java/index.d.cts +10 -0
  33. package/dist-cjs/java/index.js +67 -0
  34. package/dist-cjs/java/index.js.map +1 -0
  35. package/dist-cjs/lib/baseConnection.d.cts +9 -0
  36. package/dist-cjs/lib/baseConnection.js +367 -0
  37. package/dist-cjs/lib/baseConnection.js.map +1 -0
  38. package/dist-cjs/lib/baseConnection.types.d.cts +62 -0
  39. package/dist-cjs/lib/baseConnection.types.js +30 -0
  40. package/dist-cjs/lib/baseConnection.types.js.map +1 -0
  41. package/dist-cjs/lib/connection.d.cts +16 -0
  42. package/dist-cjs/lib/connection.js +179 -0
  43. package/dist-cjs/lib/connection.js.map +1 -0
  44. package/dist-cjs/lib/connection.types.d.cts +80 -0
  45. package/dist-cjs/lib/connection.types.js +16 -0
  46. package/dist-cjs/lib/connection.types.js.map +1 -0
  47. package/dist-cjs/lib/handleError.d.cts +5 -0
  48. package/dist-cjs/lib/handleError.js +43 -0
  49. package/dist-cjs/lib/handleError.js.map +1 -0
  50. package/dist-cjs/lib/ifs/index.d.cts +7 -0
  51. package/dist-cjs/lib/ifs/index.js +64 -0
  52. package/dist-cjs/lib/ifs/index.js.map +1 -0
  53. package/dist-cjs/lib/ifs/read_stream.d.cts +8 -0
  54. package/dist-cjs/lib/ifs/read_stream.js +61 -0
  55. package/dist-cjs/lib/ifs/read_stream.js.map +1 -0
  56. package/dist-cjs/lib/ifs/types.d.cts +19 -0
  57. package/dist-cjs/lib/ifs/types.js +16 -0
  58. package/dist-cjs/lib/ifs/types.js.map +1 -0
  59. package/dist-cjs/lib/ifs/write_stream.d.cts +8 -0
  60. package/dist-cjs/lib/ifs/write_stream.js +52 -0
  61. package/dist-cjs/lib/ifs/write_stream.js.map +1 -0
  62. package/dist-cjs/lib/inMemoryConnection.d.cts +14 -0
  63. package/dist-cjs/lib/inMemoryConnection.js +59 -0
  64. package/dist-cjs/lib/inMemoryConnection.js.map +1 -0
  65. package/dist-cjs/lib/insertList.d.cts +8 -0
  66. package/dist-cjs/lib/insertList.js +58 -0
  67. package/dist-cjs/lib/insertList.js.map +1 -0
  68. package/dist-cjs/lib/jdbcstream.d.cts +3 -0
  69. package/dist-cjs/lib/jdbcstream.js +66 -0
  70. package/dist-cjs/lib/jdbcstream.js.map +1 -0
  71. package/dist-cjs/lib/jdbcwritestream.d.cts +3 -0
  72. package/dist-cjs/lib/jdbcwritestream.js +66 -0
  73. package/dist-cjs/lib/jdbcwritestream.js.map +1 -0
  74. package/dist-cjs/lib/logger.d.cts +9 -0
  75. package/dist-cjs/lib/logger.js +39 -0
  76. package/dist-cjs/lib/logger.js.map +1 -0
  77. package/dist-cjs/lib/sqlutil.d.cts +3 -0
  78. package/dist-cjs/lib/sqlutil.js +37 -0
  79. package/dist-cjs/lib/sqlutil.js.map +1 -0
  80. package/dist-cjs/lib/streamTransformers.d.cts +5 -0
  81. package/dist-cjs/lib/streamTransformers.js +56 -0
  82. package/dist-cjs/lib/streamTransformers.js.map +1 -0
  83. package/dist-cjs/package.json +3 -0
  84. package/dist-cjs/unit-test/hsql-spec.d.cts +2 -0
  85. package/dist-cjs/unit-test/hsql-spec.js +488 -0
  86. package/dist-cjs/unit-test/hsql-spec.js.map +1 -0
  87. package/dist-cjs/unit-test/sqlutil-spec.d.cts +2 -0
  88. package/dist-cjs/unit-test/sqlutil-spec.js +43 -0
  89. package/dist-cjs/unit-test/sqlutil-spec.js.map +1 -0
  90. package/dist-cjs/unit-test/streamTransformers-spec.d.cts +2 -0
  91. package/dist-cjs/unit-test/streamTransformers-spec.js +121 -0
  92. package/dist-cjs/unit-test/streamTransformers-spec.js.map +1 -0
  93. package/dist-esm/index.d.ts +18 -0
  94. package/dist-esm/index.js +59 -0
  95. package/dist-esm/index.js.map +1 -0
  96. package/dist-esm/integration-test/call-rpg-spec.d.ts +2 -0
  97. package/dist-esm/integration-test/call-rpg-spec.js +79 -0
  98. package/dist-esm/integration-test/call-rpg-spec.js.map +1 -0
  99. package/dist-esm/integration-test/dataq-spec.d.ts +2 -0
  100. package/dist-esm/integration-test/dataq-spec.js +35 -0
  101. package/dist-esm/integration-test/dataq-spec.js.map +1 -0
  102. package/dist-esm/integration-test/db.d.ts +8 -0
  103. package/dist-esm/integration-test/db.js +8 -0
  104. package/dist-esm/integration-test/db.js.map +1 -0
  105. package/dist-esm/integration-test/db2-connect-spec.d.ts +2 -0
  106. package/dist-esm/integration-test/db2-connect-spec.js +20 -0
  107. package/dist-esm/integration-test/db2-connect-spec.js.map +1 -0
  108. package/dist-esm/integration-test/db2-pool-spec.d.ts +2 -0
  109. package/dist-esm/integration-test/db2-pool-spec.js +197 -0
  110. package/dist-esm/integration-test/db2-pool-spec.js.map +1 -0
  111. package/dist-esm/integration-test/ifs-spec.d.ts +2 -0
  112. package/dist-esm/integration-test/ifs-spec.js +118 -0
  113. package/dist-esm/integration-test/ifs-spec.js.map +1 -0
  114. package/dist-esm/integration-test/msgf-spec.d.ts +2 -0
  115. package/dist-esm/integration-test/msgf-spec.js +12 -0
  116. package/dist-esm/integration-test/msgf-spec.js.map +1 -0
  117. package/dist-esm/integration-test/msgq-spec.d.ts +2 -0
  118. package/dist-esm/integration-test/msgq-spec.js +23 -0
  119. package/dist-esm/integration-test/msgq-spec.js.map +1 -0
  120. package/{dist → dist-esm}/java/JT400.d.ts +25 -14
  121. package/dist-esm/java/JT400.js +1 -0
  122. package/dist-esm/java/JT400.js.map +1 -0
  123. package/dist-esm/java/index.d.ts +10 -0
  124. package/dist-esm/java/index.js +40 -0
  125. package/dist-esm/java/index.js.map +1 -0
  126. package/dist-esm/lib/baseConnection.d.ts +9 -0
  127. package/dist-esm/lib/baseConnection.js +344 -0
  128. package/dist-esm/lib/baseConnection.js.map +1 -0
  129. package/dist-esm/lib/baseConnection.types.d.ts +62 -0
  130. package/dist-esm/lib/baseConnection.types.js +6 -0
  131. package/dist-esm/lib/baseConnection.types.js.map +1 -0
  132. package/dist-esm/lib/connection.d.ts +16 -0
  133. package/dist-esm/lib/connection.js +146 -0
  134. package/dist-esm/lib/connection.js.map +1 -0
  135. package/{dist → dist-esm}/lib/connection.types.d.ts +24 -21
  136. package/dist-esm/lib/connection.types.js +1 -0
  137. package/dist-esm/lib/connection.types.js.map +1 -0
  138. package/dist-esm/lib/handleError.d.ts +5 -0
  139. package/dist-esm/lib/handleError.js +20 -0
  140. package/dist-esm/lib/handleError.js.map +1 -0
  141. package/dist-esm/lib/ifs/index.d.ts +7 -0
  142. package/dist-esm/lib/ifs/index.js +41 -0
  143. package/dist-esm/lib/ifs/index.js.map +1 -0
  144. package/dist-esm/lib/ifs/read_stream.d.ts +8 -0
  145. package/dist-esm/lib/ifs/read_stream.js +28 -0
  146. package/dist-esm/lib/ifs/read_stream.js.map +1 -0
  147. package/{dist → dist-esm}/lib/ifs/types.d.ts +5 -2
  148. package/dist-esm/lib/ifs/types.js +1 -0
  149. package/dist-esm/lib/ifs/types.js.map +1 -0
  150. package/dist-esm/lib/ifs/write_stream.d.ts +8 -0
  151. package/dist-esm/lib/ifs/write_stream.js +19 -0
  152. package/dist-esm/lib/ifs/write_stream.js.map +1 -0
  153. package/dist-esm/lib/inMemoryConnection.d.ts +14 -0
  154. package/dist-esm/lib/inMemoryConnection.js +36 -0
  155. package/dist-esm/lib/inMemoryConnection.js.map +1 -0
  156. package/dist-esm/lib/insertList.d.ts +8 -0
  157. package/dist-esm/lib/insertList.js +34 -0
  158. package/dist-esm/lib/insertList.js.map +1 -0
  159. package/dist-esm/lib/jdbcstream.d.ts +3 -0
  160. package/dist-esm/lib/jdbcstream.js +43 -0
  161. package/dist-esm/lib/jdbcstream.js.map +1 -0
  162. package/dist-esm/lib/jdbcwritestream.d.ts +3 -0
  163. package/dist-esm/lib/jdbcwritestream.js +33 -0
  164. package/dist-esm/lib/jdbcwritestream.js.map +1 -0
  165. package/{dist → dist-esm}/lib/logger.d.ts +4 -2
  166. package/dist-esm/lib/logger.js +16 -0
  167. package/dist-esm/lib/logger.js.map +1 -0
  168. package/dist-esm/lib/sqlutil.d.ts +3 -0
  169. package/dist-esm/lib/sqlutil.js +14 -0
  170. package/dist-esm/lib/sqlutil.js.map +1 -0
  171. package/dist-esm/lib/streamTransformers.d.ts +5 -0
  172. package/dist-esm/lib/streamTransformers.js +33 -0
  173. package/dist-esm/lib/streamTransformers.js.map +1 -0
  174. package/dist-esm/package.json +3 -0
  175. package/dist-esm/unit-test/hsql-spec.d.ts +2 -0
  176. package/dist-esm/unit-test/hsql-spec.js +466 -0
  177. package/dist-esm/unit-test/hsql-spec.js.map +1 -0
  178. package/dist-esm/unit-test/sqlutil-spec.d.ts +2 -0
  179. package/dist-esm/unit-test/sqlutil-spec.js +21 -0
  180. package/dist-esm/unit-test/sqlutil-spec.js.map +1 -0
  181. package/dist-esm/unit-test/streamTransformers-spec.d.ts +2 -0
  182. package/dist-esm/unit-test/streamTransformers-spec.js +99 -0
  183. package/dist-esm/unit-test/streamTransformers-spec.js.map +1 -0
  184. package/java/lib/jt400wrap.jar +0 -0
  185. package/package.json +39 -19
  186. package/dist/index.d.ts +0 -13
  187. package/dist/index.js +0 -67
  188. package/dist/index.js.map +0 -1
  189. package/dist/integration-test/call-rpg-spec.d.ts +0 -1
  190. package/dist/integration-test/call-rpg-spec.js +0 -88
  191. package/dist/integration-test/call-rpg-spec.js.map +0 -1
  192. package/dist/integration-test/dataq-spec.d.ts +0 -1
  193. package/dist/integration-test/dataq-spec.js +0 -42
  194. package/dist/integration-test/dataq-spec.js.map +0 -1
  195. package/dist/integration-test/db.d.ts +0 -2
  196. package/dist/integration-test/db.js +0 -8
  197. package/dist/integration-test/db.js.map +0 -1
  198. package/dist/integration-test/db2-connect-spec.d.ts +0 -1
  199. package/dist/integration-test/db2-connect-spec.js +0 -34
  200. package/dist/integration-test/db2-connect-spec.js.map +0 -1
  201. package/dist/integration-test/db2-pool-spec.d.ts +0 -1
  202. package/dist/integration-test/db2-pool-spec.js +0 -191
  203. package/dist/integration-test/db2-pool-spec.js.map +0 -1
  204. package/dist/integration-test/ifs-spec.d.ts +0 -1
  205. package/dist/integration-test/ifs-spec.js +0 -118
  206. package/dist/integration-test/ifs-spec.js.map +0 -1
  207. package/dist/integration-test/msgf-spec.d.ts +0 -1
  208. package/dist/integration-test/msgf-spec.js +0 -25
  209. package/dist/integration-test/msgf-spec.js.map +0 -1
  210. package/dist/integration-test/msgq-spec.d.ts +0 -1
  211. package/dist/integration-test/msgq-spec.js +0 -34
  212. package/dist/integration-test/msgq-spec.js.map +0 -1
  213. package/dist/java/JT400.js +0 -3
  214. package/dist/java/JT400.js.map +0 -1
  215. package/dist/java/index.d.ts +0 -7
  216. package/dist/java/index.js +0 -33
  217. package/dist/java/index.js.map +0 -1
  218. package/dist/lib/baseConnection.d.ts +0 -5
  219. package/dist/lib/baseConnection.js +0 -264
  220. package/dist/lib/baseConnection.js.map +0 -1
  221. package/dist/lib/baseConnection.types.d.ts +0 -53
  222. package/dist/lib/baseConnection.types.js +0 -7
  223. package/dist/lib/baseConnection.types.js.map +0 -1
  224. package/dist/lib/connection.d.ts +0 -10
  225. package/dist/lib/connection.js +0 -143
  226. package/dist/lib/connection.js.map +0 -1
  227. package/dist/lib/connection.types.js +0 -3
  228. package/dist/lib/connection.types.js.map +0 -1
  229. package/dist/lib/handleError.d.ts +0 -3
  230. package/dist/lib/handleError.js +0 -25
  231. package/dist/lib/handleError.js.map +0 -1
  232. package/dist/lib/ifs/index.d.ts +0 -3
  233. package/dist/lib/ifs/index.js +0 -45
  234. package/dist/lib/ifs/index.js.map +0 -1
  235. package/dist/lib/ifs/read_stream.d.ts +0 -6
  236. package/dist/lib/ifs/read_stream.js +0 -28
  237. package/dist/lib/ifs/read_stream.js.map +0 -1
  238. package/dist/lib/ifs/types.js +0 -3
  239. package/dist/lib/ifs/types.js.map +0 -1
  240. package/dist/lib/ifs/write_stream.d.ts +0 -6
  241. package/dist/lib/ifs/write_stream.js +0 -25
  242. package/dist/lib/ifs/write_stream.js.map +0 -1
  243. package/dist/lib/inMemoryConnection.d.ts +0 -7
  244. package/dist/lib/inMemoryConnection.js +0 -33
  245. package/dist/lib/inMemoryConnection.js.map +0 -1
  246. package/dist/lib/insertList.d.ts +0 -4
  247. package/dist/lib/insertList.js +0 -44
  248. package/dist/lib/insertList.js.map +0 -1
  249. package/dist/lib/jdbcstream.d.ts +0 -1
  250. package/dist/lib/jdbcstream.js +0 -50
  251. package/dist/lib/jdbcstream.js.map +0 -1
  252. package/dist/lib/jdbcwritestream.d.ts +0 -1
  253. package/dist/lib/jdbcwritestream.js +0 -37
  254. package/dist/lib/jdbcwritestream.js.map +0 -1
  255. package/dist/lib/logger.js +0 -13
  256. package/dist/lib/logger.js.map +0 -1
  257. package/dist/lib/sqlutil.d.ts +0 -1
  258. package/dist/lib/sqlutil.js +0 -18
  259. package/dist/lib/sqlutil.js.map +0 -1
  260. package/dist/lib/streamTransformers.d.ts +0 -2
  261. package/dist/lib/streamTransformers.js +0 -30
  262. package/dist/lib/streamTransformers.js.map +0 -1
  263. package/dist/unit-test/hsql-spec.d.ts +0 -1
  264. package/dist/unit-test/hsql-spec.js +0 -495
  265. package/dist/unit-test/hsql-spec.js.map +0 -1
  266. package/dist/unit-test/sqlutil-spec.d.ts +0 -1
  267. package/dist/unit-test/sqlutil-spec.js +0 -20
  268. package/dist/unit-test/sqlutil-spec.js.map +0 -1
  269. package/dist/unit-test/streamTransformers-spec.d.ts +0 -1
  270. package/dist/unit-test/streamTransformers-spec.js +0 -98
  271. package/dist/unit-test/streamTransformers-spec.js.map +0 -1
@@ -0,0 +1,488 @@
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_stream = require("stream");
25
+ var import_JSONStream = require("JSONStream");
26
+ var import_assert = __toESM(require("assert"), 1);
27
+ const jt400 = (0, import__.useInMemoryDb)();
28
+ describe("hsql in memory", () => {
29
+ beforeEach(() => {
30
+ return jt400.update(
31
+ "create table testtbl (ID DECIMAL(15, 0) GENERATED BY DEFAULT AS IDENTITY(START WITH 1234567891234), NAME VARCHAR(300), START DATE, STAMP TIMESTAMP, PRIMARY KEY(ID))"
32
+ ).then(
33
+ () => jt400.update("insert into testtbl (NAME) values('Foo bar baz')")
34
+ );
35
+ });
36
+ afterEach(() => {
37
+ return jt400.update("drop table testtbl");
38
+ });
39
+ describe("query", () => {
40
+ it("should be in memory", () => {
41
+ import_assert.default.strictEqual(jt400.isInMemory(), true);
42
+ });
43
+ it("should select form testtbl", async () => {
44
+ const res = await jt400.query("select * from testtbl");
45
+ import_assert.default.strictEqual(res.length, 1);
46
+ });
47
+ it("should use column alias when selecting", async () => {
48
+ const res = await jt400.query("select ID, NAME MYNAME from testtbl");
49
+ import_assert.default.ok("MYNAME" in res[0]);
50
+ });
51
+ it("should query as stream", (done) => {
52
+ const stream = jt400.createReadStream("select * from testtbl");
53
+ const jsonStream = stream.pipe((0, import_JSONStream.parse)([true]));
54
+ const data = [];
55
+ jsonStream.on("data", (row) => {
56
+ data.push(row);
57
+ });
58
+ jsonStream.on("end", () => {
59
+ try {
60
+ import_assert.default.strictEqual(data.length, 1);
61
+ done();
62
+ } catch (e) {
63
+ done(e);
64
+ }
65
+ });
66
+ stream.on("error", done);
67
+ });
68
+ it("should fail queryAsStream with oops error", (done) => {
69
+ const sql = "select * from testtbl";
70
+ const params = ["a"];
71
+ const stream = jt400.createReadStream(sql, params);
72
+ const jsonStream = stream.pipe((0, import_JSONStream.parse)([true]));
73
+ jsonStream.on("end", () => {
74
+ stream.emit("error", new Error("wrong error"));
75
+ });
76
+ stream.on("error", (err) => {
77
+ try {
78
+ import_assert.default.strictEqual(
79
+ err.message,
80
+ "Argumento incorrecto en una llamada JDBC: parameter index out of range: 1"
81
+ );
82
+ done();
83
+ } catch (e) {
84
+ done(e);
85
+ }
86
+ });
87
+ });
88
+ });
89
+ describe("insert", () => {
90
+ it("should insert and return id", async () => {
91
+ const res = await jt400.insertAndGetId(
92
+ "insert into testtbl (NAME) values(?)",
93
+ ["foo"]
94
+ );
95
+ import_assert.default.strictEqual(res, 1234567891235);
96
+ });
97
+ it("should insert list", async () => {
98
+ const res = await jt400.insertList("testtbl", "ID", [
99
+ {
100
+ NAME: "foo"
101
+ },
102
+ {
103
+ NAME: "bar"
104
+ }
105
+ ]);
106
+ import_assert.default.deepStrictEqual(res, [1234567891235, 1234567891236]);
107
+ const select = await jt400.query("select * from testtbl");
108
+ import_assert.default.strictEqual(select.length, 3);
109
+ });
110
+ it("should insert date and timestamp", async () => {
111
+ const ids = await jt400.insertList("testtbl", "ID", [
112
+ {
113
+ START: (/* @__PURE__ */ new Date()).toISOString().substr(0, 10),
114
+ STAMP: /* @__PURE__ */ new Date()
115
+ }
116
+ ]);
117
+ import_assert.default.deepStrictEqual(ids, [1234567891235]);
118
+ });
119
+ it("should create write stream", (done) => {
120
+ const dataStream = new import_stream.Readable({ objectMode: true });
121
+ let c = 97;
122
+ dataStream._read = function() {
123
+ dataStream.push([String.fromCharCode(c++)]);
124
+ if (c > "z".charCodeAt(0)) {
125
+ dataStream.push(null);
126
+ }
127
+ };
128
+ const ws = jt400.createWriteStream(
129
+ "insert into testtbl (NAME) VALUES(?)",
130
+ { bufferSize: 10 }
131
+ );
132
+ dataStream.pipe(ws).on("finish", () => {
133
+ jt400.query("select name from testtbl").then((res) => {
134
+ import_assert.default.strictEqual(res.length, 27);
135
+ }).then(done, done);
136
+ }).on("error", done);
137
+ });
138
+ });
139
+ describe("batch update", () => {
140
+ it("should insert batch", async () => {
141
+ const res = await jt400.batchUpdate(
142
+ "insert into testtbl (NAME,START) values(?, ?)",
143
+ [
144
+ ["foo", "2015-01-02"],
145
+ ["bar", "2015-03-04"]
146
+ ]
147
+ );
148
+ import_assert.default.deepStrictEqual(res, [1, 1]);
149
+ });
150
+ it("should fail insert batch with oops-error", () => {
151
+ const sql = "insert into testtbl (NAME,START) values(?, ?)";
152
+ const params = [
153
+ ["foo", "2015-01-02"],
154
+ ["bar", "2015-03-04"],
155
+ ["a", "b", "c", "d"]
156
+ ];
157
+ return jt400.batchUpdate(sql, params).then(() => {
158
+ throw new Error("wrong error");
159
+ }).catch((error) => {
160
+ import_assert.default.strictEqual(
161
+ error.message,
162
+ "excepci\xF3n de datos: formato fecha/hora incorrecto"
163
+ );
164
+ import_assert.default.ok(error.cause.stack.includes("JdbcJsonClient.setParams"));
165
+ import_assert.default.strictEqual(error.context.sql, sql);
166
+ import_assert.default.deepStrictEqual(error.context.params, params);
167
+ import_assert.default.strictEqual(error.category, "ProgrammerError");
168
+ });
169
+ });
170
+ });
171
+ describe("pgm call mock", () => {
172
+ let callFoo;
173
+ let input;
174
+ beforeEach(() => {
175
+ callFoo = jt400.defineProgram({
176
+ programName: "foo",
177
+ paramsSchema: [
178
+ {
179
+ name: "bar",
180
+ size: 10
181
+ },
182
+ {
183
+ name: "baz",
184
+ size: 9,
185
+ decimals: 2
186
+ }
187
+ ]
188
+ });
189
+ input = {
190
+ bar: "a",
191
+ baz: 10
192
+ };
193
+ });
194
+ it("should return input by default", async () => {
195
+ const res = await callFoo(input);
196
+ import_assert.default.deepStrictEqual(res, input);
197
+ });
198
+ it("should register mock", async () => {
199
+ jt400.mockPgm("foo", (input2) => {
200
+ input2.baz = 20;
201
+ return input2;
202
+ });
203
+ const res = await callFoo(input);
204
+ import_assert.default.strictEqual(res.baz, 20);
205
+ });
206
+ });
207
+ describe("should mock ifs", () => {
208
+ it("should get metadata", async () => {
209
+ const metadata = await jt400.ifs().fileMetadata("/foo/bar.txt");
210
+ import_assert.default.deepStrictEqual(metadata, {
211
+ exists: false,
212
+ length: 0
213
+ });
214
+ });
215
+ });
216
+ describe("execute", () => {
217
+ it("should get metadata", async () => {
218
+ const statement = await jt400.execute("select * from testtbl");
219
+ const metadata = await statement.metadata();
220
+ import_assert.default.deepStrictEqual(metadata, [
221
+ {
222
+ name: "ID",
223
+ typeName: "DECIMAL",
224
+ precision: 15,
225
+ scale: 0
226
+ },
227
+ {
228
+ name: "NAME",
229
+ typeName: "VARCHAR",
230
+ precision: 300,
231
+ scale: 0
232
+ },
233
+ {
234
+ name: "START",
235
+ typeName: "DATE",
236
+ precision: 10,
237
+ scale: 0
238
+ },
239
+ {
240
+ name: "STAMP",
241
+ typeName: "TIMESTAMP",
242
+ precision: 26,
243
+ scale: 6
244
+ }
245
+ ]);
246
+ });
247
+ it("should get result as stream", (done) => {
248
+ jt400.execute("select * from testtbl").then((statement) => {
249
+ const stream = statement.asStream();
250
+ let data = "";
251
+ import_assert.default.strictEqual(statement.isQuery(), true);
252
+ stream.on("data", (chunk) => {
253
+ data += chunk;
254
+ });
255
+ stream.on("end", () => {
256
+ try {
257
+ import_assert.default.strictEqual(
258
+ data,
259
+ '[["1234567891234","Foo bar baz",null,null]]'
260
+ );
261
+ done();
262
+ } catch (err) {
263
+ done(err);
264
+ }
265
+ });
266
+ stream.on("error", done);
267
+ }).catch(done);
268
+ });
269
+ it("should get result as object stream", (done) => {
270
+ jt400.execute("select * from testtbl").then((statement) => statement.asObjectStream()).then((stream) => {
271
+ const data = [];
272
+ stream.on("data", (chunk) => {
273
+ data.push(chunk);
274
+ });
275
+ stream.on("end", () => {
276
+ try {
277
+ import_assert.default.deepStrictEqual(data, [
278
+ {
279
+ ID: "1234567891234",
280
+ NAME: "Foo bar baz",
281
+ START: null,
282
+ STAMP: null
283
+ }
284
+ ]);
285
+ done();
286
+ } catch (err) {
287
+ done(err);
288
+ }
289
+ });
290
+ stream.on("error", done);
291
+ }).catch(done);
292
+ });
293
+ it("should get result as array", async () => {
294
+ const statement = await jt400.execute("select * from testtbl");
295
+ const data = await statement.asArray();
296
+ import_assert.default.deepStrictEqual(data, [
297
+ ["1234567891234", "Foo bar baz", null, null]
298
+ ]);
299
+ });
300
+ it("should get result as iterable", async () => {
301
+ const statement = await jt400.execute("select * from testtbl");
302
+ const rows = statement.asIterable();
303
+ let count = 0;
304
+ for await (const row of rows) {
305
+ count++;
306
+ import_assert.default.deepStrictEqual(row, [
307
+ "1234567891234",
308
+ "Foo bar baz",
309
+ null,
310
+ null
311
+ ]);
312
+ }
313
+ import_assert.default.strictEqual(count, 1);
314
+ });
315
+ it("should pipe to JSONStream", (done) => {
316
+ let i = 1;
317
+ const data = [];
318
+ while (i < 110) {
319
+ data.push(i++);
320
+ }
321
+ data.reduce((memo, item) => {
322
+ return memo.then(
323
+ () => jt400.update("insert into testtbl (NAME) values(?)", ["n" + item])
324
+ );
325
+ }, Promise.resolve()).then(() => jt400.execute("select NAME from testtbl order by ID")).then((statement) => statement.asStream().pipe((0, import_JSONStream.parse)([true]))).then((stream) => {
326
+ const res = [];
327
+ stream.on("data", (row) => {
328
+ res.push(row);
329
+ });
330
+ stream.on("end", () => {
331
+ import_assert.default.strictEqual(res.length, 110);
332
+ res.forEach((row, index) => {
333
+ if (index > 0) {
334
+ import_assert.default.deepStrictEqual(row[0], "n" + index);
335
+ }
336
+ });
337
+ done();
338
+ });
339
+ stream.on("error", done);
340
+ }).catch(done);
341
+ });
342
+ it("should get update count", async () => {
343
+ const statement = await jt400.execute("update testtbl set NAME=?", [
344
+ "testing"
345
+ ]);
346
+ import_assert.default.strictEqual(statement.isQuery(), false);
347
+ const updated = await statement.updated();
348
+ import_assert.default.strictEqual(updated, 1);
349
+ });
350
+ it("should close stream", (done) => {
351
+ let i = 1;
352
+ const data = [];
353
+ while (i < 40) {
354
+ data.push(i++);
355
+ }
356
+ Promise.all(
357
+ data.map(
358
+ (item) => jt400.update("insert into testtbl (NAME) values(?)", ["n" + item])
359
+ )
360
+ ).then(() => {
361
+ const res = [];
362
+ return jt400.execute("select NAME from testtbl").then((statement) => {
363
+ const stream = statement.asStream({
364
+ bufferSize: 10
365
+ }).pipe((0, import_JSONStream.parse)([true]));
366
+ stream.on("data", (row) => {
367
+ res.push(row);
368
+ if (res.length >= 10) {
369
+ statement.close();
370
+ }
371
+ });
372
+ stream.on("end", () => {
373
+ import_assert.default.ok(res.length < 21);
374
+ done();
375
+ });
376
+ stream.on("error", done);
377
+ });
378
+ }).catch(done);
379
+ });
380
+ });
381
+ describe("metadata", () => {
382
+ it("should return table metadata as stream", (done) => {
383
+ const stream = jt400.getTablesAsStream({
384
+ schema: "PUBLIC"
385
+ });
386
+ const schema = [];
387
+ stream.on("data", (data) => {
388
+ schema.push(data);
389
+ });
390
+ stream.on("end", () => {
391
+ import_assert.default.deepStrictEqual(schema, [
392
+ {
393
+ schema: "PUBLIC",
394
+ table: "TESTTBL",
395
+ remarks: ""
396
+ }
397
+ ]);
398
+ done();
399
+ });
400
+ stream.on("error", done);
401
+ });
402
+ it("should return columns", async () => {
403
+ const res = await jt400.getColumns({
404
+ schema: "PUBLIC",
405
+ table: "TESTTBL"
406
+ });
407
+ import_assert.default.deepStrictEqual(res, [
408
+ {
409
+ name: "ID",
410
+ typeName: "DECIMAL",
411
+ precision: 15,
412
+ scale: 0
413
+ },
414
+ {
415
+ name: "NAME",
416
+ typeName: "VARCHAR",
417
+ precision: 300,
418
+ scale: 0
419
+ },
420
+ {
421
+ name: "START",
422
+ typeName: "DATE",
423
+ precision: 10,
424
+ scale: 0
425
+ },
426
+ {
427
+ name: "STAMP",
428
+ typeName: "TIMESTAMP",
429
+ precision: 26,
430
+ scale: 0
431
+ }
432
+ ]);
433
+ });
434
+ it("should return primary key", async () => {
435
+ const res = await jt400.getPrimaryKeys({
436
+ table: "TESTTBL"
437
+ });
438
+ import_assert.default.strictEqual(res.length, 1);
439
+ import_assert.default.strictEqual(res[0].name, "ID");
440
+ });
441
+ });
442
+ describe("transaction", () => {
443
+ it("should commit", () => {
444
+ let rowId;
445
+ return jt400.transaction((transaction) => {
446
+ return transaction.insertAndGetId(
447
+ "insert into testtbl (NAME) values('Transaction 1')"
448
+ ).then((res) => {
449
+ rowId = res;
450
+ return transaction.update(
451
+ "update testtbl set NAME='Transaction 2' where id=?",
452
+ [rowId]
453
+ );
454
+ });
455
+ }).then(
456
+ () => jt400.query("select NAME from testtbl where id=?", [rowId])
457
+ ).then((res) => {
458
+ import_assert.default.deepStrictEqual(res[0].NAME, "Transaction 2");
459
+ });
460
+ });
461
+ it("should rollback", () => {
462
+ const fakeError = new Error("fake error");
463
+ let rowId;
464
+ return jt400.transaction((transaction) => {
465
+ return transaction.insertAndGetId(
466
+ "insert into testtbl (NAME) values('Transaction 1')"
467
+ ).then((res) => {
468
+ rowId = res;
469
+ throw fakeError;
470
+ });
471
+ }).catch((err) => {
472
+ import_assert.default.strictEqual(err, fakeError);
473
+ }).then(() => jt400.query("select NAME from testtbl where id=?", [rowId])).then((res) => {
474
+ import_assert.default.strictEqual(res.length, 0);
475
+ });
476
+ });
477
+ it("should batch update", async () => {
478
+ const res = await jt400.transaction((transaction) => {
479
+ return transaction.batchUpdate("insert into testtbl (NAME) values(?)", [
480
+ ["Foo"],
481
+ ["Bar"]
482
+ ]);
483
+ });
484
+ import_assert.default.deepStrictEqual(res, [1, 1]);
485
+ });
486
+ });
487
+ });
488
+ //# sourceMappingURL=hsql-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../ts-src/unit-test/hsql-spec.ts"],"sourcesContent":["import { useInMemoryDb } from '../index.js'\nimport { Readable } from 'stream'\nimport { parse } from 'JSONStream'\nimport assert from 'assert'\n\nconst jt400 = useInMemoryDb()\ndescribe('hsql in memory', () => {\n beforeEach(() => {\n return jt400\n .update(\n 'create table testtbl (ID DECIMAL(15, 0) GENERATED BY DEFAULT AS IDENTITY(START WITH 1234567891234), NAME VARCHAR(300), START DATE, STAMP TIMESTAMP, PRIMARY KEY(ID))',\n )\n .then(() =>\n jt400.update(\"insert into testtbl (NAME) values('Foo bar baz')\"),\n )\n })\n\n afterEach(() => {\n return jt400.update('drop table testtbl')\n })\n\n describe('query', () => {\n it('should be in memory', () => {\n assert.strictEqual(jt400.isInMemory(), true)\n })\n\n it('should select form testtbl', async () => {\n const res = await jt400.query<any>('select * from testtbl')\n assert.strictEqual(res.length, 1)\n })\n\n it('should use column alias when selecting', async () => {\n const res = await jt400.query<any>('select ID, NAME MYNAME from testtbl')\n assert.ok('MYNAME' in res[0])\n })\n\n it('should query as stream', (done) => {\n const stream = jt400.createReadStream('select * from testtbl')\n const jsonStream = stream.pipe(parse([true]))\n const data: any[] = []\n\n jsonStream.on('data', (row) => {\n data.push(row)\n })\n\n jsonStream.on('end', () => {\n try {\n assert.strictEqual(data.length, 1)\n done()\n } catch (e) {\n done(e)\n }\n })\n\n stream.on('error', done)\n })\n\n it('should fail queryAsStream with oops error', (done) => {\n const sql = 'select * from testtbl'\n const params = ['a']\n const stream = jt400.createReadStream(sql, params)\n const jsonStream = stream.pipe(parse([true]))\n\n jsonStream.on('end', () => {\n stream.emit('error', new Error('wrong error'))\n })\n\n stream.on('error', (err) => {\n try {\n assert.strictEqual(\n err.message,\n 'Argumento incorrecto en una llamada JDBC: parameter index out of range: 1',\n )\n done()\n } catch (e) {\n done(e)\n }\n })\n })\n })\n\n describe('insert', () => {\n it('should insert and return id', async () => {\n const res = await jt400.insertAndGetId(\n 'insert into testtbl (NAME) values(?)',\n ['foo'],\n )\n assert.strictEqual(res, 1234567891235)\n })\n\n it('should insert list', async () => {\n const res = await jt400.insertList('testtbl', 'ID', [\n {\n NAME: 'foo',\n },\n {\n NAME: 'bar',\n },\n ])\n\n assert.deepStrictEqual(res, [1234567891235, 1234567891236])\n\n const select = await jt400.query('select * from testtbl')\n assert.strictEqual(select.length, 3)\n })\n\n it('should insert date and timestamp', async () => {\n const ids = await jt400.insertList('testtbl', 'ID', [\n {\n START: new Date().toISOString().substr(0, 10),\n STAMP: new Date(),\n },\n ])\n\n assert.deepStrictEqual(ids, [1234567891235])\n })\n\n it('should create write stream', (done) => {\n const dataStream = new Readable({ objectMode: true })\n let c = 97\n dataStream._read = function () {\n dataStream.push([String.fromCharCode(c++)])\n if (c > 'z'.charCodeAt(0)) {\n dataStream.push(null)\n }\n }\n\n const ws = jt400.createWriteStream(\n 'insert into testtbl (NAME) VALUES(?)',\n { bufferSize: 10 },\n )\n dataStream\n .pipe(ws)\n .on('finish', () => {\n jt400\n .query('select name from testtbl')\n .then((res) => {\n assert.strictEqual(res.length, 27)\n })\n .then(done, done)\n })\n .on('error', done)\n })\n })\n\n describe('batch update', () => {\n it('should insert batch', async () => {\n const res = await jt400.batchUpdate(\n 'insert into testtbl (NAME,START) values(?, ?)',\n [\n ['foo', '2015-01-02'],\n ['bar', '2015-03-04'],\n ],\n )\n\n assert.deepStrictEqual(res, [1, 1])\n })\n\n it('should fail insert batch with oops-error', () => {\n const sql = 'insert into testtbl (NAME,START) values(?, ?)'\n const params = [\n ['foo', '2015-01-02'],\n ['bar', '2015-03-04'],\n ['a', 'b', 'c', 'd'],\n ]\n\n return jt400\n .batchUpdate(sql, params)\n .then(() => {\n throw new Error('wrong error')\n })\n .catch((error) => {\n assert.strictEqual(\n error.message,\n 'excepción de datos: formato fecha/hora incorrecto',\n )\n assert.ok(error.cause.stack.includes('JdbcJsonClient.setParams'))\n assert.strictEqual(error.context.sql, sql)\n assert.deepStrictEqual(error.context.params, params)\n assert.strictEqual(error.category, 'ProgrammerError')\n })\n })\n })\n\n describe('pgm call mock', () => {\n let callFoo\n let input\n\n beforeEach(() => {\n callFoo = jt400.defineProgram({\n programName: 'foo',\n paramsSchema: [\n {\n name: 'bar',\n size: 10,\n },\n {\n name: 'baz',\n size: 9,\n decimals: 2,\n },\n ],\n })\n\n input = {\n bar: 'a',\n baz: 10,\n }\n })\n\n it('should return input by default', async () => {\n const res = await callFoo(input)\n assert.deepStrictEqual(res, input)\n })\n\n it('should register mock', async () => {\n jt400.mockPgm('foo', (input) => {\n input.baz = 20\n return input\n })\n\n const res = await callFoo(input)\n assert.strictEqual(res.baz, 20)\n })\n })\n\n describe('should mock ifs', () => {\n it('should get metadata', async () => {\n const metadata = await jt400.ifs().fileMetadata('/foo/bar.txt')\n assert.deepStrictEqual(metadata, {\n exists: false,\n length: 0,\n })\n })\n })\n\n describe('execute', () => {\n it('should get metadata', async () => {\n const statement = await jt400.execute('select * from testtbl')\n const metadata = await statement.metadata()\n\n assert.deepStrictEqual(metadata, [\n {\n name: 'ID',\n typeName: 'DECIMAL',\n precision: 15,\n scale: 0,\n },\n {\n name: 'NAME',\n typeName: 'VARCHAR',\n precision: 300,\n scale: 0,\n },\n {\n name: 'START',\n typeName: 'DATE',\n precision: 10,\n scale: 0,\n },\n {\n name: 'STAMP',\n typeName: 'TIMESTAMP',\n precision: 26,\n scale: 6,\n },\n ])\n })\n\n it('should get result as stream', (done) => {\n jt400\n .execute('select * from testtbl')\n .then((statement) => {\n const stream = statement.asStream()\n let data = ''\n assert.strictEqual(statement.isQuery(), true)\n\n stream.on('data', (chunk) => {\n data += chunk\n })\n\n stream.on('end', () => {\n try {\n assert.strictEqual(\n data,\n '[[\"1234567891234\",\"Foo bar baz\",null,null]]',\n )\n done()\n } catch (err) {\n done(err)\n }\n })\n\n stream.on('error', done)\n })\n .catch(done)\n })\n\n it('should get result as object stream', (done) => {\n jt400\n .execute('select * from testtbl')\n .then((statement) => statement.asObjectStream())\n .then((stream) => {\n const data: any[] = []\n stream.on('data', (chunk) => {\n data.push(chunk)\n })\n\n stream.on('end', () => {\n try {\n assert.deepStrictEqual(data, [\n {\n ID: '1234567891234',\n NAME: 'Foo bar baz',\n START: null,\n STAMP: null,\n },\n ])\n done()\n } catch (err) {\n done(err)\n }\n })\n\n stream.on('error', done)\n })\n .catch(done)\n })\n\n it('should get result as array', async () => {\n const statement = await jt400.execute('select * from testtbl')\n const data = await statement.asArray()\n assert.deepStrictEqual(data, [\n ['1234567891234', 'Foo bar baz', null, null],\n ])\n })\n it('should get result as iterable', async () => {\n const statement = await jt400.execute('select * from testtbl')\n const rows = statement.asIterable()\n let count = 0\n for await (const row of rows) {\n count++\n assert.deepStrictEqual(row, [\n '1234567891234',\n 'Foo bar baz',\n null,\n null,\n ])\n }\n assert.strictEqual(count, 1)\n })\n\n it('should pipe to JSONStream', (done) => {\n let i = 1\n const data: any[] = []\n\n while (i < 110) {\n data.push(i++)\n }\n\n data\n .reduce((memo, item) => {\n return memo.then(() =>\n jt400.update('insert into testtbl (NAME) values(?)', ['n' + item]),\n )\n }, Promise.resolve())\n .then(() => jt400.execute('select NAME from testtbl order by ID'))\n .then((statement) => statement.asStream().pipe(parse([true])))\n .then((stream) => {\n const res: any[] = []\n stream.on('data', (row) => {\n res.push(row)\n })\n\n stream.on('end', () => {\n assert.strictEqual(res.length, 110)\n res.forEach((row, index) => {\n if (index > 0) {\n assert.deepStrictEqual(row[0], 'n' + index)\n }\n })\n done()\n })\n\n stream.on('error', done)\n })\n .catch(done)\n })\n\n it('should get update count', async () => {\n const statement = await jt400.execute('update testtbl set NAME=?', [\n 'testing',\n ])\n assert.strictEqual(statement.isQuery(), false)\n const updated = await statement.updated()\n assert.strictEqual(updated, 1)\n })\n\n it('should close stream', (done) => {\n let i = 1\n const data: any[] = []\n\n while (i < 40) {\n data.push(i++)\n }\n\n Promise.all(\n data.map((item) =>\n jt400.update('insert into testtbl (NAME) values(?)', ['n' + item]),\n ),\n )\n .then(() => {\n const res: any[] = []\n return jt400.execute('select NAME from testtbl').then((statement) => {\n const stream = statement\n .asStream({\n bufferSize: 10,\n })\n .pipe(parse([true]))\n\n stream.on('data', (row) => {\n res.push(row)\n if (res.length >= 10) {\n statement.close()\n }\n })\n\n stream.on('end', () => {\n assert.ok(res.length < 21)\n done()\n })\n\n stream.on('error', done)\n })\n })\n .catch(done)\n })\n })\n\n describe('metadata', () => {\n it('should return table metadata as stream', (done) => {\n const stream = jt400.getTablesAsStream({\n schema: 'PUBLIC',\n })\n\n const schema: any[] = []\n stream.on('data', (data) => {\n schema.push(data)\n })\n\n stream.on('end', () => {\n assert.deepStrictEqual(schema, [\n {\n schema: 'PUBLIC',\n table: 'TESTTBL',\n remarks: '',\n },\n ])\n done()\n })\n\n stream.on('error', done)\n })\n\n it('should return columns', async () => {\n const res = await jt400.getColumns({\n schema: 'PUBLIC',\n table: 'TESTTBL',\n })\n\n assert.deepStrictEqual(res, [\n {\n name: 'ID',\n typeName: 'DECIMAL',\n precision: 15,\n scale: 0,\n },\n {\n name: 'NAME',\n typeName: 'VARCHAR',\n precision: 300,\n scale: 0,\n },\n {\n name: 'START',\n typeName: 'DATE',\n precision: 10,\n scale: 0,\n },\n {\n name: 'STAMP',\n typeName: 'TIMESTAMP',\n precision: 26,\n scale: 0,\n },\n ])\n })\n\n it('should return primary key', async () => {\n const res = await jt400.getPrimaryKeys({\n table: 'TESTTBL',\n })\n\n assert.strictEqual(res.length, 1)\n assert.strictEqual(res[0].name, 'ID')\n })\n })\n\n describe('transaction', () => {\n it('should commit', () => {\n let rowId\n return jt400\n .transaction((transaction) => {\n return transaction\n .insertAndGetId(\n \"insert into testtbl (NAME) values('Transaction 1')\",\n )\n .then((res) => {\n rowId = res\n return transaction.update(\n \"update testtbl set NAME='Transaction 2' where id=?\",\n [rowId],\n )\n })\n })\n .then(() =>\n jt400.query<any>('select NAME from testtbl where id=?', [rowId]),\n )\n .then((res) => {\n assert.deepStrictEqual(res[0].NAME, 'Transaction 2')\n })\n })\n\n it('should rollback', () => {\n const fakeError = new Error('fake error')\n let rowId\n return jt400\n .transaction((transaction) => {\n return transaction\n .insertAndGetId(\n \"insert into testtbl (NAME) values('Transaction 1')\",\n )\n .then((res) => {\n rowId = res\n throw fakeError\n })\n })\n .catch((err) => {\n assert.strictEqual(err, fakeError)\n })\n .then(() => jt400.query('select NAME from testtbl where id=?', [rowId]))\n .then((res) => {\n assert.strictEqual(res.length, 0)\n })\n })\n\n it('should batch update', async () => {\n const res = await jt400.transaction((transaction) => {\n return transaction.batchUpdate('insert into testtbl (NAME) values(?)', [\n ['Foo'],\n ['Bar'],\n ])\n })\n assert.deepStrictEqual(res, [1, 1])\n })\n })\n})\n"],"mappings":"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","names":["assert","input"]}
@@ -0,0 +1,2 @@
1
+
2
+ export { }
@@ -0,0 +1,43 @@
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_sqlutil = require("../lib/sqlutil.js");
24
+ var import_assert = __toESM(require("assert"), 1);
25
+ describe("sql helpers", () => {
26
+ it("should create sql statement", () => {
27
+ const records = [
28
+ {
29
+ foo: "bar",
30
+ baz: 123
31
+ },
32
+ {
33
+ foo: "ble",
34
+ baz: 456
35
+ }
36
+ ];
37
+ import_assert.default.strictEqual(
38
+ (0, import_sqlutil.toInsertSql)("myTable", records),
39
+ "INSERT INTO myTable (foo, baz) VALUES(?, ?), (?, ?)"
40
+ );
41
+ });
42
+ });
43
+ //# sourceMappingURL=sqlutil-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../ts-src/unit-test/sqlutil-spec.ts"],"sourcesContent":["import { toInsertSql } from '../lib/sqlutil.js'\nimport assert from 'assert'\n\ndescribe('sql helpers', () => {\n it('should create sql statement', () => {\n const records = [\n {\n foo: 'bar',\n baz: 123,\n },\n {\n foo: 'ble',\n baz: 456,\n },\n ]\n assert.strictEqual(\n toInsertSql('myTable', records),\n 'INSERT INTO myTable (foo, baz) VALUES(?, ?), (?, ?)',\n )\n })\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,qBAA4B;AAC5B,oBAAmB;AAEnB,SAAS,eAAe,MAAM;AAC5B,KAAG,+BAA+B,MAAM;AACtC,UAAM,UAAU;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAAA,IACF;AACA,kBAAAA,QAAO;AAAA,UACL,4BAAY,WAAW,OAAO;AAAA,MAC9B;AAAA,IACF;AAAA,EACF,CAAC;AACH,CAAC;","names":["assert"]}
@@ -0,0 +1,2 @@
1
+
2
+ export { }