@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
@@ -1,68 +1,69 @@
1
1
  import { Readable } from 'stream';
2
- import { BaseConnection, Close } from './baseConnection.types';
3
- import { Ifs } from './ifs/types';
4
- export interface ProgramDefinitionOptions {
2
+ import { BaseConnection, Close } from './baseConnection.types.js';
3
+ import { Ifs } from './ifs/types.js';
4
+
5
+ interface ProgramDefinitionOptions {
5
6
  programName: string;
6
7
  paramsSchema: PgmParamType[];
7
8
  libraryName?: string;
8
9
  ccsid?: number;
9
10
  }
10
- export interface PgmParamType1 {
11
+ interface PgmParamType1 {
11
12
  name: string;
12
13
  size: number;
13
14
  type?: string;
14
15
  decimals?: number;
15
16
  }
16
- export interface PgmParamType2 {
17
+ interface PgmParamType2 {
17
18
  name: string;
18
19
  precision: number;
19
20
  typeName?: string;
20
21
  scale?: number;
21
22
  }
22
- export interface PgmParamStructType {
23
+ interface PgmParamStructType {
23
24
  [key: string]: PgmParamType[];
24
25
  }
25
- export type PgmParamType = PgmParamType1 | PgmParamType2 | PgmParamStructType;
26
- export interface JustNameMessageQ {
26
+ type PgmParamType = PgmParamType1 | PgmParamType2 | PgmParamStructType;
27
+ interface JustNameMessageQ {
27
28
  name: string;
28
29
  }
29
- export interface JustPathMessageQ {
30
+ interface JustPathMessageQ {
30
31
  path: string;
31
32
  }
32
- export type MessageQOptions = JustNameMessageQ | JustPathMessageQ;
33
- export interface MessageQReadOptions {
33
+ type MessageQOptions = JustNameMessageQ | JustPathMessageQ;
34
+ interface MessageQReadOptions {
34
35
  wait?: number;
35
36
  }
36
- export interface DataQReadOptions {
37
+ interface DataQReadOptions {
37
38
  key: string;
38
39
  wait?: number;
39
40
  writeKeyLength?: number;
40
41
  }
41
- export interface MessageFileHandlerOptions {
42
+ interface MessageFileHandlerOptions {
42
43
  path: string;
43
44
  }
44
- export interface MessageFileReadOptions {
45
+ interface MessageFileReadOptions {
45
46
  messageId: string[7];
46
47
  }
47
- export interface MessageQ {
48
+ interface MessageQ {
48
49
  sendInformational: (messageText: string) => Promise<void>;
49
50
  read: (params?: MessageQReadOptions) => Promise<any> | Promise<null>;
50
51
  }
51
- export interface DataQOptions {
52
+ interface DataQOptions {
52
53
  name: string;
53
54
  }
54
- export interface KeyedDataQ {
55
+ interface KeyedDataQ {
55
56
  write: (key: string, data: string) => void;
56
57
  read: (params: DataQReadOptions | string) => Promise<any>;
57
58
  }
58
- export interface AS400Message {
59
+ interface AS400Message {
59
60
  getText: () => Promise<string>;
60
61
  }
61
- export interface MessageFileHandler {
62
+ interface MessageFileHandler {
62
63
  read: (params: MessageFileReadOptions) => Promise<AS400Message>;
63
64
  }
64
- export type TransactionFun = (transaction: BaseConnection) => Promise<any>;
65
- export interface Connection extends BaseConnection {
65
+ type TransactionFun = (transaction: BaseConnection) => Promise<any>;
66
+ interface Connection extends BaseConnection {
66
67
  pgm: (programName: string, paramsSchema: PgmParamType[], libraryName?: string) => any;
67
68
  defineProgram: (options: ProgramDefinitionOptions) => any;
68
69
  getTablesAsStream: (params: any) => Readable;
@@ -75,3 +76,5 @@ export interface Connection extends BaseConnection {
75
76
  ifs: () => Ifs;
76
77
  close: Close;
77
78
  }
79
+
80
+ export type { AS400Message, Connection, DataQOptions, DataQReadOptions, JustNameMessageQ, JustPathMessageQ, KeyedDataQ, MessageFileHandler, MessageFileHandlerOptions, MessageFileReadOptions, MessageQ, MessageQOptions, MessageQReadOptions, PgmParamStructType, PgmParamType, PgmParamType1, PgmParamType2, ProgramDefinitionOptions, TransactionFun };
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=connection.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,5 @@
1
+ declare function handleError(context: {
2
+ [key: string]: any;
3
+ }): (err: any) => never;
4
+
5
+ export { handleError };
@@ -0,0 +1,20 @@
1
+ import { Oops } from "oops-error";
2
+ function handleError(context) {
3
+ return (err) => {
4
+ const errMsg = err.cause && err.cause.getMessageSync && err.cause.getMessageSync() || err.getMessageSync && err.getMessageSync() || err.message;
5
+ const start = errMsg.indexOf(": ");
6
+ const end = errMsg.indexOf("\n");
7
+ const message = start > 0 && end > 0 ? errMsg.slice(start + 2, end) : errMsg;
8
+ const category = message.toLowerCase().includes("connection") || errMsg.includes("java.net.UnknownHostException") ? "OperationalError" : "ProgrammerError";
9
+ throw new Oops({
10
+ message,
11
+ context,
12
+ category,
13
+ cause: err
14
+ });
15
+ };
16
+ }
17
+ export {
18
+ handleError
19
+ };
20
+ //# sourceMappingURL=handleError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../ts-src/lib/handleError.ts"],"sourcesContent":["import { Oops } from 'oops-error'\n\nexport function handleError(context: { [key: string]: any }) {\n return (err: any) => {\n const errMsg =\n (err.cause && err.cause.getMessageSync && err.cause.getMessageSync()) ||\n (err.getMessageSync && err.getMessageSync()) ||\n err.message\n const start = errMsg.indexOf(': ')\n const end = errMsg.indexOf('\\n')\n const message = start > 0 && end > 0 ? errMsg.slice(start + 2, end) : errMsg\n const category =\n message.toLowerCase().includes('connection') ||\n errMsg.includes('java.net.UnknownHostException')\n ? 'OperationalError'\n : 'ProgrammerError'\n throw new Oops({\n message,\n context,\n category,\n cause: err,\n })\n }\n}\n"],"mappings":"AAAA,SAAS,YAAY;AAEd,SAAS,YAAY,SAAiC;AAC3D,SAAO,CAAC,QAAa;AACnB,UAAM,SACH,IAAI,SAAS,IAAI,MAAM,kBAAkB,IAAI,MAAM,eAAe,KAClE,IAAI,kBAAkB,IAAI,eAAe,KAC1C,IAAI;AACN,UAAM,QAAQ,OAAO,QAAQ,IAAI;AACjC,UAAM,MAAM,OAAO,QAAQ,IAAI;AAC/B,UAAM,UAAU,QAAQ,KAAK,MAAM,IAAI,OAAO,MAAM,QAAQ,GAAG,GAAG,IAAI;AACtE,UAAM,WACJ,QAAQ,YAAY,EAAE,SAAS,YAAY,KAC3C,OAAO,SAAS,+BAA+B,IAC3C,qBACA;AACN,UAAM,IAAI,KAAK;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -0,0 +1,7 @@
1
+ import { JT400 } from '../../java/JT400.js';
2
+ import { Ifs } from './types.js';
3
+ import 'stream';
4
+
5
+ declare function ifs(connection: JT400): Ifs;
6
+
7
+ export { ifs };
@@ -0,0 +1,41 @@
1
+ import { basename, dirname } from "path";
2
+ import { IfsReadStream } from "./read_stream.js";
3
+ import { IfsWriteStream } from "./write_stream.js";
4
+ function ifs(connection) {
5
+ return {
6
+ createReadStream: function(fileName) {
7
+ const javaStream = Promise.resolve(fileName).then(function(file) {
8
+ return connection.createIfsReadStream(file);
9
+ });
10
+ return new IfsReadStream({
11
+ ifsReadStream: javaStream
12
+ });
13
+ },
14
+ createWriteStream: function(fileName, options = { append: false }) {
15
+ const javaStream = Promise.resolve(fileName).then(function(file) {
16
+ const folderPath = dirname(file);
17
+ const fileName2 = basename(file);
18
+ return connection.createIfsWriteStream(
19
+ folderPath,
20
+ fileName2,
21
+ options.append,
22
+ options.ccsid
23
+ );
24
+ });
25
+ return new IfsWriteStream({
26
+ ifsWriteStream: javaStream
27
+ });
28
+ },
29
+ listFiles: async (folderName) => {
30
+ const files = await connection.listIfsFiles(folderName);
31
+ return files || [];
32
+ },
33
+ moveFile: (fileName, newFileName) => connection.moveIfsFile(fileName, newFileName),
34
+ deleteFile: (fileName) => connection.deleteIfsFile(fileName),
35
+ fileMetadata: (fileName) => connection.getIfsFileMetadata(fileName).then(JSON.parse)
36
+ };
37
+ }
38
+ export {
39
+ ifs
40
+ };
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../ts-src/lib/ifs/index.ts"],"sourcesContent":["import { basename, dirname } from 'path'\nimport { JT400 } from '../../java/JT400'\nimport { IfsReadStream } from './read_stream.js'\nimport { Ifs } from './types'\nimport { IfsWriteStream } from './write_stream.js'\n\nexport function ifs(\n connection: JT400,\n): Ifs {\n return {\n createReadStream: function (fileName: string | Promise<string>) {\n const javaStream = Promise.resolve(fileName).then(function (file) {\n return connection.createIfsReadStream(file)\n })\n return new IfsReadStream({\n ifsReadStream: javaStream,\n })\n },\n createWriteStream: function (\n fileName: string | Promise<string>,\n options: { append: boolean; ccsid?: number } = { append: false },\n ) {\n const javaStream = Promise.resolve(fileName).then(function (file) {\n const folderPath = dirname(file)\n const fileName = basename(file)\n return connection.createIfsWriteStream(\n folderPath,\n fileName,\n options.append,\n options.ccsid,\n )\n })\n return new IfsWriteStream({\n ifsWriteStream: javaStream,\n })\n },\n listFiles: async (folderName: string) => {\n const files = await connection.listIfsFiles(folderName)\n return files || []\n },\n moveFile: (fileName: string, newFileName: string) =>\n connection.moveIfsFile(fileName, newFileName),\n deleteFile: (fileName: string) => connection.deleteIfsFile(fileName),\n fileMetadata: (fileName: string) =>\n connection.getIfsFileMetadata(fileName).then(JSON.parse),\n }\n}\n"],"mappings":"AAAA,SAAS,UAAU,eAAe;AAElC,SAAS,qBAAqB;AAE9B,SAAS,sBAAsB;AAExB,SAAS,IACd,YACK;AACL,SAAO;AAAA,IACL,kBAAkB,SAAU,UAAoC;AAC9D,YAAM,aAAa,QAAQ,QAAQ,QAAQ,EAAE,KAAK,SAAU,MAAM;AAChE,eAAO,WAAW,oBAAoB,IAAI;AAAA,MAC5C,CAAC;AACD,aAAO,IAAI,cAAc;AAAA,QACvB,eAAe;AAAA,MACjB,CAAC;AAAA,IACH;AAAA,IACA,mBAAmB,SACjB,UACA,UAA+C,EAAE,QAAQ,MAAM,GAC/D;AACA,YAAM,aAAa,QAAQ,QAAQ,QAAQ,EAAE,KAAK,SAAU,MAAM;AAChE,cAAM,aAAa,QAAQ,IAAI;AAC/B,cAAMA,YAAW,SAAS,IAAI;AAC9B,eAAO,WAAW;AAAA,UAChB;AAAA,UACAA;AAAA,UACA,QAAQ;AAAA,UACR,QAAQ;AAAA,QACV;AAAA,MACF,CAAC;AACD,aAAO,IAAI,eAAe;AAAA,QACxB,gBAAgB;AAAA,MAClB,CAAC;AAAA,IACH;AAAA,IACA,WAAW,OAAO,eAAuB;AACvC,YAAM,QAAQ,MAAM,WAAW,aAAa,UAAU;AACtD,aAAO,SAAS,CAAC;AAAA,IACnB;AAAA,IACA,UAAU,CAAC,UAAkB,gBAC3B,WAAW,YAAY,UAAU,WAAW;AAAA,IAC9C,YAAY,CAAC,aAAqB,WAAW,cAAc,QAAQ;AAAA,IACnE,cAAc,CAAC,aACb,WAAW,mBAAmB,QAAQ,EAAE,KAAK,KAAK,KAAK;AAAA,EAC3D;AACF;","names":["fileName"]}
@@ -0,0 +1,8 @@
1
+ import { IfsReadStream as IfsReadStream$1 } from '../../java/JT400.js';
2
+
3
+ type Opt = {
4
+ ifsReadStream: Promise<IfsReadStream$1>;
5
+ };
6
+ declare function IfsReadStream(opt: Opt): void;
7
+
8
+ export { IfsReadStream };
@@ -0,0 +1,28 @@
1
+ import util from "util";
2
+ import { Readable } from "stream";
3
+ function IfsReadStream(opt) {
4
+ Readable.call(this, { objectMode: false });
5
+ this._ifsReadStream = opt.ifsReadStream;
6
+ }
7
+ util.inherits(IfsReadStream, Readable);
8
+ IfsReadStream.prototype._read = function() {
9
+ const streamPromise = this._ifsReadStream;
10
+ streamPromise.then(
11
+ (stream) => stream.read().then((res) => {
12
+ if (res == null) {
13
+ this.push(null);
14
+ return;
15
+ }
16
+ const buf = Buffer.isBuffer(res) ? res : res instanceof Uint8Array ? Buffer.from(res) : Buffer.from(res);
17
+ if (buf.length === 0) {
18
+ this.push(null);
19
+ return;
20
+ }
21
+ this.push(buf);
22
+ })
23
+ ).catch((err) => this.emit("error", err));
24
+ };
25
+ export {
26
+ IfsReadStream
27
+ };
28
+ //# sourceMappingURL=read_stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../ts-src/lib/ifs/read_stream.ts"],"sourcesContent":["import util from 'util'\nimport { Readable } from 'stream'\nimport { IfsReadStream as IfsReadStreamType } from '../../java/JT400.js'\n\ntype Opt = {\n ifsReadStream: Promise<IfsReadStreamType>\n}\n\nexport function IfsReadStream(opt: Opt) {\n Readable.call(this, { objectMode: false })\n this._ifsReadStream = opt.ifsReadStream\n}\n\nutil.inherits(IfsReadStream, Readable)\n\nIfsReadStream.prototype._read = function () {\n const streamPromise: Promise<IfsReadStreamType> = this._ifsReadStream\n streamPromise\n .then((stream) =>\n stream.read().then((res: any) => {\n // java-bridge convierte byte[] -> Buffer automáticamente\n if (res == null) {\n this.push(null) // EOF\n return\n }\n\n const buf =\n Buffer.isBuffer(res) ? res : res instanceof Uint8Array ? Buffer.from(res) : Buffer.from(res as any)\n\n if (buf.length === 0) {\n this.push(null) // EOF defensivo si llega vacío\n return\n }\n\n this.push(buf)\n }),\n )\n .catch((err: any) => this.emit('error', err))\n}\n"],"mappings":"AAAA,OAAO,UAAU;AACjB,SAAS,gBAAgB;AAOlB,SAAS,cAAc,KAAU;AACtC,WAAS,KAAK,MAAM,EAAE,YAAY,MAAM,CAAC;AACzC,OAAK,iBAAiB,IAAI;AAC5B;AAEA,KAAK,SAAS,eAAe,QAAQ;AAErC,cAAc,UAAU,QAAQ,WAAY;AAC1C,QAAM,gBAA4C,KAAK;AACvD,gBACG;AAAA,IAAK,CAAC,WACL,OAAO,KAAK,EAAE,KAAK,CAAC,QAAa;AAE/B,UAAI,OAAO,MAAM;AACf,aAAK,KAAK,IAAI;AACd;AAAA,MACF;AAEA,YAAM,MACJ,OAAO,SAAS,GAAG,IAAI,MAAM,eAAe,aAAa,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,GAAU;AAEpG,UAAI,IAAI,WAAW,GAAG;AACpB,aAAK,KAAK,IAAI;AACd;AAAA,MACF;AAEA,WAAK,KAAK,GAAG;AAAA,IACf,CAAC;AAAA,EACH,EACC,MAAM,CAAC,QAAa,KAAK,KAAK,SAAS,GAAG,CAAC;AAChD;","names":[]}
@@ -1,9 +1,10 @@
1
1
  import { Readable, Writable } from 'stream';
2
- export interface IfsFileMetadata {
2
+
3
+ interface IfsFileMetadata {
3
4
  exists: boolean;
4
5
  length: number;
5
6
  }
6
- export interface Ifs {
7
+ interface Ifs {
7
8
  createReadStream: (fileName: string | Promise<string>) => Readable;
8
9
  createWriteStream: (fileName: string | Promise<string>, options?: {
9
10
  append: boolean;
@@ -14,3 +15,5 @@ export interface Ifs {
14
15
  deleteFile: (fileName: string) => Promise<boolean>;
15
16
  fileMetadata: (fileName: string) => Promise<IfsFileMetadata>;
16
17
  }
18
+
19
+ export type { Ifs, IfsFileMetadata };
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,8 @@
1
+ import { IfsWriteStream as IfsWriteStream$1 } from '../../java/JT400.js';
2
+
3
+ type Opt = {
4
+ ifsWriteStream: Promise<IfsWriteStream$1>;
5
+ };
6
+ declare function IfsWriteStream(opt: Opt): void;
7
+
8
+ export { IfsWriteStream };
@@ -0,0 +1,19 @@
1
+ import util from "util";
2
+ import FlushWritable from "flushwritable";
3
+ function IfsWriteStream(opt) {
4
+ FlushWritable.call(this, { objectMode: false });
5
+ this._ifsWriteStream = opt.ifsWriteStream;
6
+ }
7
+ util.inherits(IfsWriteStream, FlushWritable);
8
+ IfsWriteStream.prototype._write = function(chunk, _, next) {
9
+ const writeStream = this._ifsWriteStream;
10
+ writeStream.then((stream) => stream.write(chunk)).then(() => next()).catch((err) => this.emit("error", err));
11
+ };
12
+ IfsWriteStream.prototype._flush = function(done) {
13
+ const writeStream = this._ifsWriteStream;
14
+ writeStream.then((stream) => stream.flush()).then(() => done()).catch((err) => done(err));
15
+ };
16
+ export {
17
+ IfsWriteStream
18
+ };
19
+ //# sourceMappingURL=write_stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../ts-src/lib/ifs/write_stream.ts"],"sourcesContent":["import { IfsWriteStream as IfsWriteStreamType } from '../../java/JT400.js'\nimport util from 'util'\nimport FlushWritable from 'flushwritable'\n\ntype Opt = {\n ifsWriteStream: Promise<IfsWriteStreamType>\n}\n\nexport function IfsWriteStream(opt: Opt) {\n FlushWritable.call(this, { objectMode: false })\n this._ifsWriteStream = opt.ifsWriteStream\n}\n\nutil.inherits(IfsWriteStream, FlushWritable)\n\nIfsWriteStream.prototype._write = function (\n chunk: Buffer,\n _: any,\n next: (err?: any) => void,\n) {\n const writeStream: Promise<IfsWriteStreamType> = this._ifsWriteStream\n writeStream\n .then((stream) => stream.write(chunk)) // Buffer -> byte[] (auto por java-bridge)\n .then(() => next())\n .catch((err) => this.emit('error', err))\n}\n\nIfsWriteStream.prototype._flush = function (done: (err?: any) => void) {\n const writeStream: Promise<IfsWriteStreamType> = this._ifsWriteStream\n writeStream\n .then((stream) => stream.flush())\n .then(() => done())\n .catch((err) => done(err))\n}\n"],"mappings":"AACA,OAAO,UAAU;AACjB,OAAO,mBAAmB;AAMnB,SAAS,eAAe,KAAU;AACvC,gBAAc,KAAK,MAAM,EAAE,YAAY,MAAM,CAAC;AAC9C,OAAK,kBAAkB,IAAI;AAC7B;AAEA,KAAK,SAAS,gBAAgB,aAAa;AAE3C,eAAe,UAAU,SAAS,SAChC,OACA,GACA,MACA;AACA,QAAM,cAA2C,KAAK;AACtD,cACG,KAAK,CAAC,WAAW,OAAO,MAAM,KAAK,CAAC,EACpC,KAAK,MAAM,KAAK,CAAC,EACjB,MAAM,CAAC,QAAQ,KAAK,KAAK,SAAS,GAAG,CAAC;AAC3C;AAEA,eAAe,UAAU,SAAS,SAAU,MAA2B;AACrE,QAAM,cAA2C,KAAK;AACtD,cACG,KAAK,CAAC,WAAW,OAAO,MAAM,CAAC,EAC/B,KAAK,MAAM,KAAK,CAAC,EACjB,MAAM,CAAC,QAAQ,KAAK,GAAG,CAAC;AAC7B;","names":[]}
@@ -0,0 +1,14 @@
1
+ import { JavaBridge } from '../java/index.js';
2
+ import { Connection } from './connection.types.js';
3
+ import { Logger } from './logger.js';
4
+ import '../java/JT400.js';
5
+ import 'stream';
6
+ import './baseConnection.types.js';
7
+ import './ifs/types.js';
8
+
9
+ interface InMemoryConnection extends Connection {
10
+ mockPgm: (programName: string, fn: (input: any) => any) => InMemoryConnection;
11
+ }
12
+ declare function createInMemoryConnection(jt400Factory: JavaBridge, logger: Logger): InMemoryConnection;
13
+
14
+ export { type InMemoryConnection, createInMemoryConnection };
@@ -0,0 +1,36 @@
1
+ import { createConnection } from "./connection.js";
2
+ import { createStandardInsertList } from "./insertList.js";
3
+ function createInMemoryConnection(jt400Factory, logger) {
4
+ const javaCon = jt400Factory.createInMemoryConnection();
5
+ const instance = createConnection({
6
+ connection: javaCon,
7
+ insertListFun: createStandardInsertList,
8
+ logger,
9
+ inMemory: true
10
+ });
11
+ const pgmMockRegistry = {};
12
+ const defaultPgm = instance.defineProgram;
13
+ instance.defineProgram = function(opt) {
14
+ const defaultFunc = defaultPgm(opt);
15
+ return function(params, timeout = 3) {
16
+ const mockFunc = pgmMockRegistry[opt.programName];
17
+ if (mockFunc) {
18
+ const res = mockFunc(params, timeout);
19
+ return res.then ? res : Promise.resolve(res);
20
+ }
21
+ return defaultFunc(params, timeout);
22
+ };
23
+ };
24
+ const inMemoryconnection = {
25
+ ...instance,
26
+ mockPgm(programName, func) {
27
+ pgmMockRegistry[programName] = func;
28
+ return inMemoryconnection;
29
+ }
30
+ };
31
+ return inMemoryconnection;
32
+ }
33
+ export {
34
+ createInMemoryConnection
35
+ };
36
+ //# sourceMappingURL=inMemoryConnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../ts-src/lib/inMemoryConnection.ts"],"sourcesContent":["import { JavaBridge } from '../java/index.js'\nimport { createConnection } from './connection.js'\nimport { Connection } from './connection.types.js'\nimport { createStandardInsertList } from './insertList.js'\nimport { Logger } from './logger.js'\n\nexport interface InMemoryConnection extends Connection {\n mockPgm: (programName: string, fn: (input: any) => any) => InMemoryConnection\n}\n\nexport function createInMemoryConnection(\n jt400Factory: JavaBridge,\n logger: Logger,\n): InMemoryConnection {\n const javaCon = jt400Factory.createInMemoryConnection()\n const instance = createConnection({\n connection: javaCon,\n insertListFun: createStandardInsertList,\n logger,\n inMemory: true,\n })\n const pgmMockRegistry = {}\n\n const defaultPgm = instance.defineProgram\n instance.defineProgram = function (opt) {\n const defaultFunc = defaultPgm(opt)\n return function (params, timeout = 3) {\n const mockFunc = pgmMockRegistry[opt.programName]\n\n if (mockFunc) {\n const res = mockFunc(params, timeout)\n return res.then ? res : Promise.resolve(res)\n }\n\n return defaultFunc(params, timeout)\n }\n }\n const inMemoryconnection: InMemoryConnection = {\n ...instance,\n mockPgm(programName, func) {\n pgmMockRegistry[programName] = func\n return inMemoryconnection\n },\n }\n return inMemoryconnection\n}\n"],"mappings":"AACA,SAAS,wBAAwB;AAEjC,SAAS,gCAAgC;AAOlC,SAAS,yBACd,cACA,QACoB;AACpB,QAAM,UAAU,aAAa,yBAAyB;AACtD,QAAM,WAAW,iBAAiB;AAAA,IAChC,YAAY;AAAA,IACZ,eAAe;AAAA,IACf;AAAA,IACA,UAAU;AAAA,EACZ,CAAC;AACD,QAAM,kBAAkB,CAAC;AAEzB,QAAM,aAAa,SAAS;AAC5B,WAAS,gBAAgB,SAAU,KAAK;AACtC,UAAM,cAAc,WAAW,GAAG;AAClC,WAAO,SAAU,QAAQ,UAAU,GAAG;AACpC,YAAM,WAAW,gBAAgB,IAAI,WAAW;AAEhD,UAAI,UAAU;AACZ,cAAM,MAAM,SAAS,QAAQ,OAAO;AACpC,eAAO,IAAI,OAAO,MAAM,QAAQ,QAAQ,GAAG;AAAA,MAC7C;AAEA,aAAO,YAAY,QAAQ,OAAO;AAAA,IACpC;AAAA,EACF;AACA,QAAM,qBAAyC;AAAA,IAC7C,GAAG;AAAA,IACH,QAAQ,aAAa,MAAM;AACzB,sBAAgB,WAAW,IAAI;AAC/B,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1,8 @@
1
+ import { BaseConnection, InsertList } from './baseConnection.types.js';
2
+ import 'stream';
3
+
4
+ type CreateInsertList = (connection: BaseConnection) => InsertList;
5
+ declare const createInsertListInOneStatment: CreateInsertList;
6
+ declare const createStandardInsertList: CreateInsertList;
7
+
8
+ export { type CreateInsertList, createInsertListInOneStatment, createStandardInsertList };
@@ -0,0 +1,34 @@
1
+ import { toInsertSql } from "./sqlutil.js";
2
+ const createInsertListInOneStatment = (jt400) => (tableName, idColumn, list) => {
3
+ if (!list || list.length === 0) {
4
+ return Promise.resolve([]);
5
+ }
6
+ const sql = "SELECT " + idColumn + " FROM NEW TABLE(" + toInsertSql(tableName, list) + ")";
7
+ const params = list.map(Object.values).reduce((arr, valueArr) => {
8
+ return arr.concat(valueArr);
9
+ }, []);
10
+ return jt400.query(sql, params).then((idList) => {
11
+ return idList.map((idObj) => idObj[idColumn.toUpperCase()]);
12
+ });
13
+ };
14
+ const createStandardInsertList = (jt400) => (tableName, _, list) => {
15
+ const idList = [];
16
+ const pushToIdList = idList.push.bind(idList);
17
+ return list.map((record) => {
18
+ return {
19
+ sql: toInsertSql(tableName, [record]),
20
+ values: Object.values(record)
21
+ };
22
+ }).reduce((soFar, sqlObj) => {
23
+ return soFar.then(() => {
24
+ return jt400.insertAndGetId(sqlObj.sql, sqlObj.values);
25
+ }).then(pushToIdList);
26
+ }, Promise.resolve()).then(() => {
27
+ return idList;
28
+ });
29
+ };
30
+ export {
31
+ createInsertListInOneStatment,
32
+ createStandardInsertList
33
+ };
34
+ //# sourceMappingURL=insertList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../ts-src/lib/insertList.ts"],"sourcesContent":["import { BaseConnection, InsertList } from './baseConnection.types.js'\nimport { toInsertSql } from './sqlutil.js'\n\nexport type CreateInsertList = (connection: BaseConnection) => InsertList\nexport const createInsertListInOneStatment: CreateInsertList =\n (jt400) => (tableName, idColumn, list) => {\n if (!list || list.length === 0) {\n return Promise.resolve([])\n }\n const sql =\n 'SELECT ' +\n idColumn +\n ' FROM NEW TABLE(' +\n toInsertSql(tableName, list) +\n ')'\n const params = list.map(Object.values).reduce((arr, valueArr) => {\n return arr.concat(valueArr)\n }, [])\n\n return jt400.query<any>(sql, params).then((idList) => {\n return idList.map((idObj) => idObj[idColumn.toUpperCase()])\n })\n }\n\nexport const createStandardInsertList: CreateInsertList =\n (jt400) => (tableName, _, list) => {\n const idList = []\n const pushToIdList = idList.push.bind(idList)\n\n return list\n .map((record) => {\n return {\n sql: toInsertSql(tableName, [record]),\n values: Object.values(record),\n }\n })\n .reduce((soFar, sqlObj: any) => {\n return soFar\n .then(() => {\n return jt400.insertAndGetId(sqlObj.sql, sqlObj.values)\n })\n .then(pushToIdList)\n }, Promise.resolve())\n .then(() => {\n return idList\n })\n }\n"],"mappings":"AACA,SAAS,mBAAmB;AAGrB,MAAM,gCACX,CAAC,UAAU,CAAC,WAAW,UAAU,SAAS;AACxC,MAAI,CAAC,QAAQ,KAAK,WAAW,GAAG;AAC9B,WAAO,QAAQ,QAAQ,CAAC,CAAC;AAAA,EAC3B;AACA,QAAM,MACJ,YACA,WACA,qBACA,YAAY,WAAW,IAAI,IAC3B;AACF,QAAM,SAAS,KAAK,IAAI,OAAO,MAAM,EAAE,OAAO,CAAC,KAAK,aAAa;AAC/D,WAAO,IAAI,OAAO,QAAQ;AAAA,EAC5B,GAAG,CAAC,CAAC;AAEL,SAAO,MAAM,MAAW,KAAK,MAAM,EAAE,KAAK,CAAC,WAAW;AACpD,WAAO,OAAO,IAAI,CAAC,UAAU,MAAM,SAAS,YAAY,CAAC,CAAC;AAAA,EAC5D,CAAC;AACH;AAEK,MAAM,2BACX,CAAC,UAAU,CAAC,WAAW,GAAG,SAAS;AACjC,QAAM,SAAS,CAAC;AAChB,QAAM,eAAe,OAAO,KAAK,KAAK,MAAM;AAE5C,SAAO,KACJ,IAAI,CAAC,WAAW;AACf,WAAO;AAAA,MACL,KAAK,YAAY,WAAW,CAAC,MAAM,CAAC;AAAA,MACpC,QAAQ,OAAO,OAAO,MAAM;AAAA,IAC9B;AAAA,EACF,CAAC,EACA,OAAO,CAAC,OAAO,WAAgB;AAC9B,WAAO,MACJ,KAAK,MAAM;AACV,aAAO,MAAM,eAAe,OAAO,KAAK,OAAO,MAAM;AAAA,IACvD,CAAC,EACA,KAAK,YAAY;AAAA,EACtB,GAAG,QAAQ,QAAQ,CAAC,EACnB,KAAK,MAAM;AACV,WAAO;AAAA,EACT,CAAC;AACL;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function JdbcStream(opt: any): void;
2
+
3
+ export { JdbcStream };
@@ -0,0 +1,43 @@
1
+ import { inherits } from "util";
2
+ import { Readable } from "stream";
3
+ function JdbcStream(opt) {
4
+ Readable.call(this, { objectMode: false });
5
+ this._jdbcStream = opt.jdbcStream;
6
+ this._jdbcStreamPromise = opt.jdbcStreamPromise;
7
+ }
8
+ inherits(JdbcStream, Readable);
9
+ function read(context) {
10
+ if (context._closed) {
11
+ context._jdbcStream.close().catch((err) => {
12
+ if (err) {
13
+ context.emit("error", err);
14
+ }
15
+ });
16
+ context.push(null);
17
+ } else {
18
+ context._jdbcStream.read().then((res) => {
19
+ context.push(res);
20
+ }).catch((err) => {
21
+ context.emit("error", err);
22
+ });
23
+ }
24
+ }
25
+ JdbcStream.prototype.close = function() {
26
+ this._closed = true;
27
+ };
28
+ JdbcStream.prototype._read = function() {
29
+ if (!this._jdbcStream) {
30
+ this._jdbcStreamPromise.then((stream) => {
31
+ this._jdbcStream = stream;
32
+ read(this);
33
+ }).catch((err) => {
34
+ this.emit("error", err);
35
+ });
36
+ } else {
37
+ read(this);
38
+ }
39
+ };
40
+ export {
41
+ JdbcStream
42
+ };
43
+ //# sourceMappingURL=jdbcstream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../ts-src/lib/jdbcstream.ts"],"sourcesContent":["import { inherits } from 'util'\nimport { Readable } from 'stream'\n\nexport function JdbcStream(opt) {\n Readable.call(this, { objectMode: false })\n this._jdbcStream = opt.jdbcStream\n this._jdbcStreamPromise = opt.jdbcStreamPromise\n}\n\ninherits(JdbcStream, Readable)\n\nfunction read(context) {\n if (context._closed) {\n context._jdbcStream.close().catch((err) => {\n if (err) {\n context.emit('error', err)\n }\n })\n context.push(null)\n } else {\n context._jdbcStream\n .read()\n .then((res) => {\n context.push(res)\n })\n .catch((err) => {\n context.emit('error', err)\n })\n }\n}\n\nJdbcStream.prototype.close = function () {\n this._closed = true\n}\n\nJdbcStream.prototype._read = function () {\n if (!this._jdbcStream) {\n this._jdbcStreamPromise\n .then((stream) => {\n this._jdbcStream = stream\n read(this)\n })\n .catch((err) => {\n this.emit('error', err)\n })\n } else {\n read(this)\n }\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAElB,SAAS,WAAW,KAAK;AAC9B,WAAS,KAAK,MAAM,EAAE,YAAY,MAAM,CAAC;AACzC,OAAK,cAAc,IAAI;AACvB,OAAK,qBAAqB,IAAI;AAChC;AAEA,SAAS,YAAY,QAAQ;AAE7B,SAAS,KAAK,SAAS;AACrB,MAAI,QAAQ,SAAS;AACnB,YAAQ,YAAY,MAAM,EAAE,MAAM,CAAC,QAAQ;AACzC,UAAI,KAAK;AACP,gBAAQ,KAAK,SAAS,GAAG;AAAA,MAC3B;AAAA,IACF,CAAC;AACD,YAAQ,KAAK,IAAI;AAAA,EACnB,OAAO;AACL,YAAQ,YACL,KAAK,EACL,KAAK,CAAC,QAAQ;AACb,cAAQ,KAAK,GAAG;AAAA,IAClB,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,cAAQ,KAAK,SAAS,GAAG;AAAA,IAC3B,CAAC;AAAA,EACL;AACF;AAEA,WAAW,UAAU,QAAQ,WAAY;AACvC,OAAK,UAAU;AACjB;AAEA,WAAW,UAAU,QAAQ,WAAY;AACvC,MAAI,CAAC,KAAK,aAAa;AACrB,SAAK,mBACF,KAAK,CAAC,WAAW;AAChB,WAAK,cAAc;AACnB,WAAK,IAAI;AAAA,IACX,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,WAAK,KAAK,SAAS,GAAG;AAAA,IACxB,CAAC;AAAA,EACL,OAAO;AACL,SAAK,IAAI;AAAA,EACX;AACF;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function createJdbcWriteStream(batchUpdate: any, statement: any, bufferSize: any): any;
2
+
3
+ export { createJdbcWriteStream };
@@ -0,0 +1,33 @@
1
+ import FlushWritable from "flushwritable";
2
+ function createJdbcWriteStream(batchUpdate, statement, bufferSize) {
3
+ bufferSize = bufferSize || 100;
4
+ const ws = new FlushWritable({ objectMode: true });
5
+ let dataBuffer = [];
6
+ function flush(done) {
7
+ const d = dataBuffer;
8
+ dataBuffer = [];
9
+ batchUpdate(statement, d).then(() => {
10
+ done();
11
+ }).catch(done);
12
+ }
13
+ ws._write = function(chunck, _, next) {
14
+ dataBuffer.push(chunck);
15
+ if (dataBuffer.length >= bufferSize) {
16
+ flush(next);
17
+ } else {
18
+ next();
19
+ }
20
+ };
21
+ ws._flush = function(done) {
22
+ if (dataBuffer.length) {
23
+ flush(done);
24
+ } else {
25
+ done();
26
+ }
27
+ };
28
+ return ws;
29
+ }
30
+ export {
31
+ createJdbcWriteStream
32
+ };
33
+ //# sourceMappingURL=jdbcwritestream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../ts-src/lib/jdbcwritestream.ts"],"sourcesContent":["import FlushWritable from 'flushwritable'\n\nexport function createJdbcWriteStream(batchUpdate, statement, bufferSize) {\n bufferSize = bufferSize || 100\n const ws = new FlushWritable({ objectMode: true })\n let dataBuffer: any[] = []\n\n function flush(done) {\n const d = dataBuffer\n dataBuffer = []\n batchUpdate(statement, d)\n .then(() => {\n done()\n })\n .catch(done)\n }\n\n ws._write = function (chunck, _, next) {\n dataBuffer.push(chunck)\n if (dataBuffer.length >= bufferSize) {\n flush(next)\n } else {\n next()\n }\n }\n\n ws._flush = function (done) {\n if (dataBuffer.length) {\n flush(done)\n } else {\n done()\n }\n }\n\n return ws\n}\n"],"mappings":"AAAA,OAAO,mBAAmB;AAEnB,SAAS,sBAAsB,aAAa,WAAW,YAAY;AACxE,eAAa,cAAc;AAC3B,QAAM,KAAK,IAAI,cAAc,EAAE,YAAY,KAAK,CAAC;AACjD,MAAI,aAAoB,CAAC;AAEzB,WAAS,MAAM,MAAM;AACnB,UAAM,IAAI;AACV,iBAAa,CAAC;AACd,gBAAY,WAAW,CAAC,EACrB,KAAK,MAAM;AACV,WAAK;AAAA,IACP,CAAC,EACA,MAAM,IAAI;AAAA,EACf;AAEA,KAAG,SAAS,SAAU,QAAQ,GAAG,MAAM;AACrC,eAAW,KAAK,MAAM;AACtB,QAAI,WAAW,UAAU,YAAY;AACnC,YAAM,IAAI;AAAA,IACZ,OAAO;AACL,WAAK;AAAA,IACP;AAAA,EACF;AAEA,KAAG,SAAS,SAAU,MAAM;AAC1B,QAAI,WAAW,QAAQ;AACrB,YAAM,IAAI;AAAA,IACZ,OAAO;AACL,WAAK;AAAA,IACP;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
@@ -1,7 +1,9 @@
1
- export interface Logger {
1
+ interface Logger {
2
2
  debug: (message: any, ...args: any[]) => void;
3
3
  info: (message: any, ...args: any[]) => void;
4
4
  warn: (message: any, ...args: any[]) => void;
5
5
  error: (message: any, ...args: any[]) => void;
6
6
  }
7
- export declare const createDefaultLogger: () => Logger;
7
+ declare const createDefaultLogger: () => Logger;
8
+
9
+ export { type Logger, createDefaultLogger };
@@ -0,0 +1,16 @@
1
+ const createDefaultLogger = () => {
2
+ return {
3
+ debug: () => {
4
+ },
5
+ info: () => {
6
+ },
7
+ warn: () => {
8
+ },
9
+ error: () => {
10
+ }
11
+ };
12
+ };
13
+ export {
14
+ createDefaultLogger
15
+ };
16
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../ts-src/lib/logger.ts"],"sourcesContent":["export interface Logger {\n debug: (message: any, ...args: any[]) => void\n info: (message: any, ...args: any[]) => void\n warn: (message: any, ...args: any[]) => void\n error: (message: any, ...args: any[]) => void\n}\n\nexport const createDefaultLogger = (): Logger => {\n // Default logger that does nothing\n return {\n debug: () => {},\n info: () => {},\n warn: () => {},\n error: () => {},\n }\n}\n"],"mappings":"AAOO,MAAM,sBAAsB,MAAc;AAE/C,SAAO;AAAA,IACL,OAAO,MAAM;AAAA,IAAC;AAAA,IACd,MAAM,MAAM;AAAA,IAAC;AAAA,IACb,MAAM,MAAM;AAAA,IAAC;AAAA,IACb,OAAO,MAAM;AAAA,IAAC;AAAA,EAChB;AACF;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function toInsertSql(tableName: string, records: any[]): string;
2
+
3
+ export { toInsertSql };
@@ -0,0 +1,14 @@
1
+ function recordToValues(record) {
2
+ const str = Object.keys(record).map(() => "?").join(", ");
3
+ return "(" + str + ")";
4
+ }
5
+ function toInsertSql(tableName, records) {
6
+ const first = records[0];
7
+ const keys = Object.keys(first);
8
+ const sql = `INSERT INTO ${tableName} (${keys.join(", ")}) VALUES${records.map(recordToValues).join(", ")}`;
9
+ return sql;
10
+ }
11
+ export {
12
+ toInsertSql
13
+ };
14
+ //# sourceMappingURL=sqlutil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../ts-src/lib/sqlutil.ts"],"sourcesContent":["function recordToValues(record) {\n const str = Object.keys(record)\n .map(() => '?')\n .join(', ')\n return '(' + str + ')'\n}\n\n/**\n * Returns insert statement for records\n */\nexport function toInsertSql(tableName: string, records: any[]): string {\n const first = records[0]\n const keys = Object.keys(first)\n const sql = `INSERT INTO ${tableName} (${keys.join(', ')}) VALUES${records\n .map(recordToValues)\n .join(', ')}`\n return sql\n}\n"],"mappings":"AAAA,SAAS,eAAe,QAAQ;AAC9B,QAAM,MAAM,OAAO,KAAK,MAAM,EAC3B,IAAI,MAAM,GAAG,EACb,KAAK,IAAI;AACZ,SAAO,MAAM,MAAM;AACrB;AAKO,SAAS,YAAY,WAAmB,SAAwB;AACrE,QAAM,QAAQ,QAAQ,CAAC;AACvB,QAAM,OAAO,OAAO,KAAK,KAAK;AAC9B,QAAM,MAAM,eAAe,SAAS,KAAK,KAAK,KAAK,IAAI,CAAC,WAAW,QAChE,IAAI,cAAc,EAClB,KAAK,IAAI,CAAC;AACb,SAAO;AACT;","names":[]}
@@ -0,0 +1,5 @@
1
+ import { Transform } from 'stream';
2
+
3
+ declare function arrayToObject(metadata: any): Transform;
4
+
5
+ export { arrayToObject };
@@ -0,0 +1,33 @@
1
+ import { Transform } from "stream";
2
+ function arrayToObject(metadata) {
3
+ const columnNames = metadata.map((md) => md.name);
4
+ const transformer = new Transform({
5
+ objectMode: true,
6
+ transform(chunk, _, callback) {
7
+ try {
8
+ if (!Array.isArray(chunk)) {
9
+ return callback(new Error("Expected an array chunk as input"));
10
+ }
11
+ if (chunk.length !== columnNames.length) {
12
+ return callback(
13
+ new Error(
14
+ `Array chunk length ${chunk.length} does not match columns length ${columnNames.length}`
15
+ )
16
+ );
17
+ }
18
+ const obj = {};
19
+ for (let i = 0; i < columnNames.length; i++) {
20
+ obj[columnNames[i]] = chunk[i];
21
+ }
22
+ callback(null, obj);
23
+ } catch (err) {
24
+ callback(err);
25
+ }
26
+ }
27
+ });
28
+ return transformer;
29
+ }
30
+ export {
31
+ arrayToObject
32
+ };
33
+ //# sourceMappingURL=streamTransformers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../ts-src/lib/streamTransformers.ts"],"sourcesContent":["import { Transform } from 'stream'\n\nexport function arrayToObject(metadata) {\n const columnNames = metadata.map((md) => md.name)\n\n const transformer = new Transform({\n objectMode: true,\n transform(chunk, _, callback) {\n try {\n if (!Array.isArray(chunk)) {\n return callback(new Error('Expected an array chunk as input'))\n }\n\n if (chunk.length !== columnNames.length) {\n return callback(\n new Error(\n `Array chunk length ${chunk.length} does not match columns length ${columnNames.length}`,\n ),\n )\n }\n\n const obj = {}\n for (let i = 0; i < columnNames.length; i++) {\n obj[columnNames[i]] = chunk[i]\n }\n\n callback(null, obj)\n } catch (err) {\n callback(err)\n }\n },\n })\n\n return transformer\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAEnB,SAAS,cAAc,UAAU;AACtC,QAAM,cAAc,SAAS,IAAI,CAAC,OAAO,GAAG,IAAI;AAEhD,QAAM,cAAc,IAAI,UAAU;AAAA,IAChC,YAAY;AAAA,IACZ,UAAU,OAAO,GAAG,UAAU;AAC5B,UAAI;AACF,YAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB,iBAAO,SAAS,IAAI,MAAM,kCAAkC,CAAC;AAAA,QAC/D;AAEA,YAAI,MAAM,WAAW,YAAY,QAAQ;AACvC,iBAAO;AAAA,YACL,IAAI;AAAA,cACF,sBAAsB,MAAM,MAAM,kCAAkC,YAAY,MAAM;AAAA,YACxF;AAAA,UACF;AAAA,QACF;AAEA,cAAM,MAAM,CAAC;AACb,iBAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AAC3C,cAAI,YAAY,CAAC,CAAC,IAAI,MAAM,CAAC;AAAA,QAC/B;AAEA,iBAAS,MAAM,GAAG;AAAA,MACpB,SAAS,KAAK;AACZ,iBAAS,GAAG;AAAA,MACd;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":[]}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -0,0 +1,2 @@
1
+
2
+ export { }