@nesgarbo/node-jt400 5.4.3 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -6
- package/dist-cjs/index.d.cts +18 -0
- package/dist-cjs/index.js +86 -0
- package/dist-cjs/index.js.map +1 -0
- package/dist-cjs/integration-test/call-rpg-spec.d.cts +2 -0
- package/dist-cjs/integration-test/call-rpg-spec.js +101 -0
- package/dist-cjs/integration-test/call-rpg-spec.js.map +1 -0
- package/dist-cjs/integration-test/dataq-spec.d.cts +2 -0
- package/dist-cjs/integration-test/dataq-spec.js +57 -0
- package/dist-cjs/integration-test/dataq-spec.js.map +1 -0
- package/dist-cjs/integration-test/db.d.cts +8 -0
- package/dist-cjs/integration-test/db.js +31 -0
- package/dist-cjs/integration-test/db.js.map +1 -0
- package/dist-cjs/integration-test/db2-connect-spec.d.cts +2 -0
- package/dist-cjs/integration-test/db2-connect-spec.js +42 -0
- package/dist-cjs/integration-test/db2-connect-spec.js.map +1 -0
- package/dist-cjs/integration-test/db2-pool-spec.d.cts +2 -0
- package/dist-cjs/integration-test/db2-pool-spec.js +213 -0
- package/dist-cjs/integration-test/db2-pool-spec.js.map +1 -0
- package/dist-cjs/integration-test/ifs-spec.d.cts +2 -0
- package/dist-cjs/integration-test/ifs-spec.js +140 -0
- package/dist-cjs/integration-test/ifs-spec.js.map +1 -0
- package/dist-cjs/integration-test/msgf-spec.d.cts +2 -0
- package/dist-cjs/integration-test/msgf-spec.js +34 -0
- package/dist-cjs/integration-test/msgf-spec.js.map +1 -0
- package/dist-cjs/integration-test/msgq-spec.d.cts +2 -0
- package/dist-cjs/integration-test/msgq-spec.js +45 -0
- package/dist-cjs/integration-test/msgq-spec.js.map +1 -0
- package/dist-cjs/java/JT400.d.cts +79 -0
- package/dist-cjs/java/JT400.js +16 -0
- package/dist-cjs/java/JT400.js.map +1 -0
- package/dist-cjs/java/index.d.cts +10 -0
- package/dist-cjs/java/index.js +57 -0
- package/dist-cjs/java/index.js.map +1 -0
- package/dist-cjs/lib/baseConnection.d.cts +9 -0
- package/dist-cjs/lib/baseConnection.js +301 -0
- package/dist-cjs/lib/baseConnection.js.map +1 -0
- package/dist-cjs/lib/baseConnection.types.d.cts +56 -0
- package/dist-cjs/lib/baseConnection.types.js +30 -0
- package/dist-cjs/lib/baseConnection.types.js.map +1 -0
- package/dist-cjs/lib/connection.d.cts +16 -0
- package/dist-cjs/lib/connection.js +179 -0
- package/dist-cjs/lib/connection.js.map +1 -0
- package/dist-cjs/lib/connection.types.d.cts +80 -0
- package/dist-cjs/lib/connection.types.js +16 -0
- package/dist-cjs/lib/connection.types.js.map +1 -0
- package/dist-cjs/lib/handleError.d.cts +5 -0
- package/dist-cjs/lib/handleError.js +43 -0
- package/dist-cjs/lib/handleError.js.map +1 -0
- package/dist-cjs/lib/ifs/index.d.cts +7 -0
- package/dist-cjs/lib/ifs/index.js +64 -0
- package/dist-cjs/lib/ifs/index.js.map +1 -0
- package/dist-cjs/lib/ifs/read_stream.d.cts +8 -0
- package/dist-cjs/lib/ifs/read_stream.js +61 -0
- package/dist-cjs/lib/ifs/read_stream.js.map +1 -0
- package/dist-cjs/lib/ifs/types.d.cts +19 -0
- package/dist-cjs/lib/ifs/types.js +16 -0
- package/dist-cjs/lib/ifs/types.js.map +1 -0
- package/dist-cjs/lib/ifs/write_stream.d.cts +8 -0
- package/dist-cjs/lib/ifs/write_stream.js +52 -0
- package/dist-cjs/lib/ifs/write_stream.js.map +1 -0
- package/dist-cjs/lib/inMemoryConnection.d.cts +14 -0
- package/dist-cjs/lib/inMemoryConnection.js +59 -0
- package/dist-cjs/lib/inMemoryConnection.js.map +1 -0
- package/dist-cjs/lib/insertList.d.cts +8 -0
- package/dist-cjs/lib/insertList.js +58 -0
- package/dist-cjs/lib/insertList.js.map +1 -0
- package/dist-cjs/lib/jdbcstream.d.cts +3 -0
- package/dist-cjs/lib/jdbcstream.js +66 -0
- package/dist-cjs/lib/jdbcstream.js.map +1 -0
- package/dist-cjs/lib/jdbcwritestream.d.cts +3 -0
- package/dist-cjs/lib/jdbcwritestream.js +66 -0
- package/dist-cjs/lib/jdbcwritestream.js.map +1 -0
- package/dist-cjs/lib/logger.d.cts +9 -0
- package/dist-cjs/lib/logger.js +39 -0
- package/dist-cjs/lib/logger.js.map +1 -0
- package/dist-cjs/lib/sqlutil.d.cts +3 -0
- package/dist-cjs/lib/sqlutil.js +37 -0
- package/dist-cjs/lib/sqlutil.js.map +1 -0
- package/dist-cjs/lib/streamTransformers.d.cts +5 -0
- package/dist-cjs/lib/streamTransformers.js +56 -0
- package/dist-cjs/lib/streamTransformers.js.map +1 -0
- package/dist-cjs/package.json +3 -0
- package/dist-cjs/unit-test/hsql-spec.d.cts +2 -0
- package/dist-cjs/unit-test/hsql-spec.js +488 -0
- package/dist-cjs/unit-test/hsql-spec.js.map +1 -0
- package/dist-cjs/unit-test/sqlutil-spec.d.cts +2 -0
- package/dist-cjs/unit-test/sqlutil-spec.js +43 -0
- package/dist-cjs/unit-test/sqlutil-spec.js.map +1 -0
- package/dist-cjs/unit-test/streamTransformers-spec.d.cts +2 -0
- package/dist-cjs/unit-test/streamTransformers-spec.js +121 -0
- package/dist-cjs/unit-test/streamTransformers-spec.js.map +1 -0
- package/dist-esm/index.d.ts +18 -0
- package/dist-esm/index.js +59 -0
- package/dist-esm/index.js.map +1 -0
- package/dist-esm/integration-test/call-rpg-spec.d.ts +2 -0
- package/dist-esm/integration-test/call-rpg-spec.js +79 -0
- package/dist-esm/integration-test/call-rpg-spec.js.map +1 -0
- package/dist-esm/integration-test/dataq-spec.d.ts +2 -0
- package/dist-esm/integration-test/dataq-spec.js +35 -0
- package/dist-esm/integration-test/dataq-spec.js.map +1 -0
- package/dist-esm/integration-test/db.d.ts +8 -0
- package/dist-esm/integration-test/db.js +8 -0
- package/dist-esm/integration-test/db.js.map +1 -0
- package/dist-esm/integration-test/db2-connect-spec.d.ts +2 -0
- package/dist-esm/integration-test/db2-connect-spec.js +20 -0
- package/dist-esm/integration-test/db2-connect-spec.js.map +1 -0
- package/dist-esm/integration-test/db2-pool-spec.d.ts +2 -0
- package/dist-esm/integration-test/db2-pool-spec.js +197 -0
- package/dist-esm/integration-test/db2-pool-spec.js.map +1 -0
- package/dist-esm/integration-test/ifs-spec.d.ts +2 -0
- package/dist-esm/integration-test/ifs-spec.js +118 -0
- package/dist-esm/integration-test/ifs-spec.js.map +1 -0
- package/dist-esm/integration-test/msgf-spec.d.ts +2 -0
- package/dist-esm/integration-test/msgf-spec.js +12 -0
- package/dist-esm/integration-test/msgf-spec.js.map +1 -0
- package/dist-esm/integration-test/msgq-spec.d.ts +2 -0
- package/dist-esm/integration-test/msgq-spec.js +23 -0
- package/dist-esm/integration-test/msgq-spec.js.map +1 -0
- package/{dist → dist-esm}/java/JT400.d.ts +16 -14
- package/dist-esm/java/JT400.js +1 -0
- package/dist-esm/java/JT400.js.map +1 -0
- package/dist-esm/java/index.d.ts +10 -0
- package/dist-esm/java/index.js +40 -0
- package/dist-esm/java/index.js.map +1 -0
- package/dist-esm/lib/baseConnection.d.ts +9 -0
- package/dist-esm/lib/baseConnection.js +278 -0
- package/dist-esm/lib/baseConnection.js.map +1 -0
- package/dist-esm/lib/baseConnection.types.d.ts +56 -0
- package/dist-esm/lib/baseConnection.types.js +6 -0
- package/dist-esm/lib/baseConnection.types.js.map +1 -0
- package/dist-esm/lib/connection.d.ts +16 -0
- package/dist-esm/lib/connection.js +146 -0
- package/dist-esm/lib/connection.js.map +1 -0
- package/{dist → dist-esm}/lib/connection.types.d.ts +24 -21
- package/dist-esm/lib/connection.types.js +1 -0
- package/dist-esm/lib/connection.types.js.map +1 -0
- package/dist-esm/lib/handleError.d.ts +5 -0
- package/dist-esm/lib/handleError.js +20 -0
- package/dist-esm/lib/handleError.js.map +1 -0
- package/dist-esm/lib/ifs/index.d.ts +7 -0
- package/dist-esm/lib/ifs/index.js +41 -0
- package/dist-esm/lib/ifs/index.js.map +1 -0
- package/dist-esm/lib/ifs/read_stream.d.ts +8 -0
- package/dist-esm/lib/ifs/read_stream.js +28 -0
- package/dist-esm/lib/ifs/read_stream.js.map +1 -0
- package/{dist → dist-esm}/lib/ifs/types.d.ts +5 -2
- package/dist-esm/lib/ifs/types.js +1 -0
- package/dist-esm/lib/ifs/types.js.map +1 -0
- package/dist-esm/lib/ifs/write_stream.d.ts +8 -0
- package/dist-esm/lib/ifs/write_stream.js +19 -0
- package/dist-esm/lib/ifs/write_stream.js.map +1 -0
- package/dist-esm/lib/inMemoryConnection.d.ts +14 -0
- package/dist-esm/lib/inMemoryConnection.js +36 -0
- package/dist-esm/lib/inMemoryConnection.js.map +1 -0
- package/dist-esm/lib/insertList.d.ts +8 -0
- package/dist-esm/lib/insertList.js +34 -0
- package/dist-esm/lib/insertList.js.map +1 -0
- package/dist-esm/lib/jdbcstream.d.ts +3 -0
- package/dist-esm/lib/jdbcstream.js +43 -0
- package/dist-esm/lib/jdbcstream.js.map +1 -0
- package/dist-esm/lib/jdbcwritestream.d.ts +3 -0
- package/dist-esm/lib/jdbcwritestream.js +33 -0
- package/dist-esm/lib/jdbcwritestream.js.map +1 -0
- package/{dist → dist-esm}/lib/logger.d.ts +4 -2
- package/dist-esm/lib/logger.js +16 -0
- package/dist-esm/lib/logger.js.map +1 -0
- package/dist-esm/lib/sqlutil.d.ts +3 -0
- package/dist-esm/lib/sqlutil.js +14 -0
- package/dist-esm/lib/sqlutil.js.map +1 -0
- package/dist-esm/lib/streamTransformers.d.ts +5 -0
- package/dist-esm/lib/streamTransformers.js +33 -0
- package/dist-esm/lib/streamTransformers.js.map +1 -0
- package/dist-esm/package.json +3 -0
- package/dist-esm/unit-test/hsql-spec.d.ts +2 -0
- package/dist-esm/unit-test/hsql-spec.js +466 -0
- package/dist-esm/unit-test/hsql-spec.js.map +1 -0
- package/dist-esm/unit-test/sqlutil-spec.d.ts +2 -0
- package/dist-esm/unit-test/sqlutil-spec.js +21 -0
- package/dist-esm/unit-test/sqlutil-spec.js.map +1 -0
- package/dist-esm/unit-test/streamTransformers-spec.d.ts +2 -0
- package/dist-esm/unit-test/streamTransformers-spec.js +99 -0
- package/dist-esm/unit-test/streamTransformers-spec.js.map +1 -0
- package/java/lib/jt400wrap.jar +0 -0
- package/package.json +39 -19
- package/dist/index.d.ts +0 -13
- package/dist/index.js +0 -67
- package/dist/index.js.map +0 -1
- package/dist/integration-test/call-rpg-spec.d.ts +0 -1
- package/dist/integration-test/call-rpg-spec.js +0 -88
- package/dist/integration-test/call-rpg-spec.js.map +0 -1
- package/dist/integration-test/dataq-spec.d.ts +0 -1
- package/dist/integration-test/dataq-spec.js +0 -42
- package/dist/integration-test/dataq-spec.js.map +0 -1
- package/dist/integration-test/db.d.ts +0 -2
- package/dist/integration-test/db.js +0 -8
- package/dist/integration-test/db.js.map +0 -1
- package/dist/integration-test/db2-connect-spec.d.ts +0 -1
- package/dist/integration-test/db2-connect-spec.js +0 -34
- package/dist/integration-test/db2-connect-spec.js.map +0 -1
- package/dist/integration-test/db2-pool-spec.d.ts +0 -1
- package/dist/integration-test/db2-pool-spec.js +0 -191
- package/dist/integration-test/db2-pool-spec.js.map +0 -1
- package/dist/integration-test/ifs-spec.d.ts +0 -1
- package/dist/integration-test/ifs-spec.js +0 -118
- package/dist/integration-test/ifs-spec.js.map +0 -1
- package/dist/integration-test/msgf-spec.d.ts +0 -1
- package/dist/integration-test/msgf-spec.js +0 -25
- package/dist/integration-test/msgf-spec.js.map +0 -1
- package/dist/integration-test/msgq-spec.d.ts +0 -1
- package/dist/integration-test/msgq-spec.js +0 -34
- package/dist/integration-test/msgq-spec.js.map +0 -1
- package/dist/java/JT400.js +0 -3
- package/dist/java/JT400.js.map +0 -1
- package/dist/java/index.d.ts +0 -7
- package/dist/java/index.js +0 -33
- package/dist/java/index.js.map +0 -1
- package/dist/lib/baseConnection.d.ts +0 -5
- package/dist/lib/baseConnection.js +0 -264
- package/dist/lib/baseConnection.js.map +0 -1
- package/dist/lib/baseConnection.types.d.ts +0 -53
- package/dist/lib/baseConnection.types.js +0 -7
- package/dist/lib/baseConnection.types.js.map +0 -1
- package/dist/lib/connection.d.ts +0 -10
- package/dist/lib/connection.js +0 -143
- package/dist/lib/connection.js.map +0 -1
- package/dist/lib/connection.types.js +0 -3
- package/dist/lib/connection.types.js.map +0 -1
- package/dist/lib/handleError.d.ts +0 -3
- package/dist/lib/handleError.js +0 -25
- package/dist/lib/handleError.js.map +0 -1
- package/dist/lib/ifs/index.d.ts +0 -3
- package/dist/lib/ifs/index.js +0 -45
- package/dist/lib/ifs/index.js.map +0 -1
- package/dist/lib/ifs/read_stream.d.ts +0 -6
- package/dist/lib/ifs/read_stream.js +0 -28
- package/dist/lib/ifs/read_stream.js.map +0 -1
- package/dist/lib/ifs/types.js +0 -3
- package/dist/lib/ifs/types.js.map +0 -1
- package/dist/lib/ifs/write_stream.d.ts +0 -6
- package/dist/lib/ifs/write_stream.js +0 -25
- package/dist/lib/ifs/write_stream.js.map +0 -1
- package/dist/lib/inMemoryConnection.d.ts +0 -7
- package/dist/lib/inMemoryConnection.js +0 -33
- package/dist/lib/inMemoryConnection.js.map +0 -1
- package/dist/lib/insertList.d.ts +0 -4
- package/dist/lib/insertList.js +0 -44
- package/dist/lib/insertList.js.map +0 -1
- package/dist/lib/jdbcstream.d.ts +0 -1
- package/dist/lib/jdbcstream.js +0 -50
- package/dist/lib/jdbcstream.js.map +0 -1
- package/dist/lib/jdbcwritestream.d.ts +0 -1
- package/dist/lib/jdbcwritestream.js +0 -37
- package/dist/lib/jdbcwritestream.js.map +0 -1
- package/dist/lib/logger.js +0 -13
- package/dist/lib/logger.js.map +0 -1
- package/dist/lib/sqlutil.d.ts +0 -1
- package/dist/lib/sqlutil.js +0 -18
- package/dist/lib/sqlutil.js.map +0 -1
- package/dist/lib/streamTransformers.d.ts +0 -2
- package/dist/lib/streamTransformers.js +0 -30
- package/dist/lib/streamTransformers.js.map +0 -1
- package/dist/unit-test/hsql-spec.d.ts +0 -1
- package/dist/unit-test/hsql-spec.js +0 -495
- package/dist/unit-test/hsql-spec.js.map +0 -1
- package/dist/unit-test/sqlutil-spec.d.ts +0 -1
- package/dist/unit-test/sqlutil-spec.js +0 -20
- package/dist/unit-test/sqlutil-spec.js.map +0 -1
- package/dist/unit-test/streamTransformers-spec.d.ts +0 -1
- package/dist/unit-test/streamTransformers-spec.js +0 -98
- package/dist/unit-test/streamTransformers-spec.js.map +0 -1
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __copyProps = (to, from, except, desc) => {
|
|
8
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
for (let key of __getOwnPropNames(from))
|
|
10
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
11
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
|
+
}
|
|
13
|
+
return to;
|
|
14
|
+
};
|
|
15
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
16
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
17
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
18
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
19
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
|
+
mod
|
|
22
|
+
));
|
|
23
|
+
var import_assert = __toESM(require("assert"), 1);
|
|
24
|
+
var import_fs = require("fs");
|
|
25
|
+
var import__ = require("../index.js");
|
|
26
|
+
var import_db = require("./db.js");
|
|
27
|
+
var import_path = require("path");
|
|
28
|
+
const currentDir = __dirname;
|
|
29
|
+
describe("jt400 pool", () => {
|
|
30
|
+
let idList;
|
|
31
|
+
beforeEach(() => {
|
|
32
|
+
return import_db.jt400.update("delete from tsttbl").then(() => {
|
|
33
|
+
const records = [
|
|
34
|
+
{ foo: "bar", bar: 123, baz: "123.23" },
|
|
35
|
+
{ foo: "bar2 ", bar: 124, baz: "321.32" }
|
|
36
|
+
];
|
|
37
|
+
return import_db.jt400.insertList("tsttbl", "testtblid", records);
|
|
38
|
+
}).then((idListResult) => idList = idListResult);
|
|
39
|
+
});
|
|
40
|
+
it("should not be in memory", () => {
|
|
41
|
+
import_assert.default.strictEqual(import_db.jt400.isInMemory(), false);
|
|
42
|
+
});
|
|
43
|
+
it("should not return same instance in configure", () => {
|
|
44
|
+
import_assert.default.notStrictEqual(import_db.jt400, (0, import__.pool)({ host: "foo" }));
|
|
45
|
+
});
|
|
46
|
+
it("should configure host", () => {
|
|
47
|
+
const db = (0, import__.pool)({ host: "nohost" });
|
|
48
|
+
return db.query("select * from tsttbl").then(() => {
|
|
49
|
+
throw new Error("should not return result from nohost");
|
|
50
|
+
}).catch((err) => {
|
|
51
|
+
import_assert.default.ok(err.message.includes("nohost"));
|
|
52
|
+
import_assert.default.strictEqual(err.category, "OperationalError");
|
|
53
|
+
});
|
|
54
|
+
}).timeout(2e4);
|
|
55
|
+
it("should insert records", () => {
|
|
56
|
+
import_assert.default.strictEqual(idList.length, 2);
|
|
57
|
+
import_assert.default.ok(Number(idList[0]) > 1);
|
|
58
|
+
});
|
|
59
|
+
it("should execute query", async () => {
|
|
60
|
+
const data = await import_db.jt400.query("select * from tsttbl");
|
|
61
|
+
import_assert.default.strictEqual(data.length, 2);
|
|
62
|
+
});
|
|
63
|
+
it("should trim values as default", async () => {
|
|
64
|
+
const data = await import_db.jt400.query(
|
|
65
|
+
"select * from tsttbl order by bar"
|
|
66
|
+
);
|
|
67
|
+
import_assert.default.strictEqual(data.length, 2);
|
|
68
|
+
import_assert.default.strictEqual(data[1].FOO, "bar2");
|
|
69
|
+
});
|
|
70
|
+
it("should trim values when options is empty", async () => {
|
|
71
|
+
const data = await import_db.jt400.query(
|
|
72
|
+
"select * from tsttbl",
|
|
73
|
+
[],
|
|
74
|
+
{}
|
|
75
|
+
);
|
|
76
|
+
import_assert.default.strictEqual(data.length, 2);
|
|
77
|
+
import_assert.default.strictEqual(data[1].FOO, "bar2");
|
|
78
|
+
});
|
|
79
|
+
it("should trim values when trim is undefined", async () => {
|
|
80
|
+
let trim;
|
|
81
|
+
const data = await import_db.jt400.query(
|
|
82
|
+
"select * from tsttbl order by bar",
|
|
83
|
+
[],
|
|
84
|
+
{
|
|
85
|
+
trim
|
|
86
|
+
}
|
|
87
|
+
);
|
|
88
|
+
import_assert.default.strictEqual(data.length, 2);
|
|
89
|
+
import_assert.default.strictEqual(data[1].FOO, "bar2");
|
|
90
|
+
});
|
|
91
|
+
it("should not trim values when trim option is false", async () => {
|
|
92
|
+
const data = await import_db.jt400.query(
|
|
93
|
+
"select * from tsttbl order by bar",
|
|
94
|
+
[],
|
|
95
|
+
{
|
|
96
|
+
trim: false
|
|
97
|
+
}
|
|
98
|
+
);
|
|
99
|
+
import_assert.default.strictEqual(data.length, 2);
|
|
100
|
+
import_assert.default.strictEqual(data[1].FOO, "bar2 ");
|
|
101
|
+
});
|
|
102
|
+
it("should execute query with params", async () => {
|
|
103
|
+
const data = await import_db.jt400.query("select * from tsttbl where baz=?", [
|
|
104
|
+
123.23
|
|
105
|
+
]);
|
|
106
|
+
import_assert.default.strictEqual(data.length, 1);
|
|
107
|
+
});
|
|
108
|
+
it("should execute update", async () => {
|
|
109
|
+
const nUpdated = await import_db.jt400.update(
|
|
110
|
+
"update tsttbl set foo='bar3' where foo='bar'"
|
|
111
|
+
);
|
|
112
|
+
import_assert.default.strictEqual(nUpdated, 1);
|
|
113
|
+
});
|
|
114
|
+
it("should execute update with parameters", async () => {
|
|
115
|
+
const nUpdated = await import_db.jt400.update(
|
|
116
|
+
"update tsttbl set foo=? where testtblid=?",
|
|
117
|
+
["ble", 0]
|
|
118
|
+
);
|
|
119
|
+
import_assert.default.strictEqual(nUpdated, 0);
|
|
120
|
+
});
|
|
121
|
+
it("should insert dates and timestamps", () => {
|
|
122
|
+
const params = [
|
|
123
|
+
new Date(2014, 0, 15),
|
|
124
|
+
new Date(2014, 0, 16, 15, 32, 5),
|
|
125
|
+
"bar"
|
|
126
|
+
];
|
|
127
|
+
return import_db.jt400.update("update tsttbl set fra=?, timi=? where foo=?", params).then(() => {
|
|
128
|
+
return import_db.jt400.query(
|
|
129
|
+
"select fra, timi from tsttbl where foo=?",
|
|
130
|
+
["bar"]
|
|
131
|
+
);
|
|
132
|
+
}).then((res) => {
|
|
133
|
+
import_assert.default.deepStrictEqual(res[0].FRA, "2014-01-15");
|
|
134
|
+
import_assert.default.deepStrictEqual(res[0].TIMI, "2014-01-16 15:32:05.000000");
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
it("should insert clob", async () => {
|
|
138
|
+
const largeText = (0, import_fs.readFileSync)(
|
|
139
|
+
(0, import_path.join)(currentDir, "../../test-data/clob.txt")
|
|
140
|
+
).toString();
|
|
141
|
+
await import_db.jt400.update("update tsttbl set clob=?", [
|
|
142
|
+
{ type: "CLOB", value: largeText }
|
|
143
|
+
]);
|
|
144
|
+
const res = await import_db.jt400.query("SELECT clob from tsttbl");
|
|
145
|
+
import_assert.default.strictEqual(res[0].CLOB.length, largeText.length);
|
|
146
|
+
}).timeout(2e4);
|
|
147
|
+
it("should insert blob", async () => {
|
|
148
|
+
const image = (0, import_fs.readFileSync)((0, import_path.join)(currentDir, "../../test-data/blob.png"), {
|
|
149
|
+
encoding: "base64"
|
|
150
|
+
});
|
|
151
|
+
await import_db.jt400.update("update tsttbl set blob=?", [
|
|
152
|
+
{ type: "BLOB", value: image }
|
|
153
|
+
]);
|
|
154
|
+
const res = await import_db.jt400.query("SELECT blob from tsttbl");
|
|
155
|
+
import_assert.default.strictEqual(res[0].BLOB.length, image.length);
|
|
156
|
+
});
|
|
157
|
+
it("should fail query with oops error", () => {
|
|
158
|
+
const sql = "select * from tsttbl where baz=?";
|
|
159
|
+
const params = [123.23, "a"];
|
|
160
|
+
return import_db.jt400.query(sql, params).then(() => {
|
|
161
|
+
throw new Error("wrong error");
|
|
162
|
+
}).catch((error) => {
|
|
163
|
+
import_assert.default.strictEqual(error.message, "Descriptor index not valid.");
|
|
164
|
+
import_assert.default.ok(error.cause.stack.includes("JdbcJsonClient.setParams"));
|
|
165
|
+
import_assert.default.strictEqual(error.context.sql, sql);
|
|
166
|
+
import_assert.default.strictEqual(error.context.params, params);
|
|
167
|
+
import_assert.default.strictEqual(error.category, "ProgrammerError");
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
it("should fail insert with oops error", () => {
|
|
171
|
+
const sql = "insert into table testtable (foo) values (?)";
|
|
172
|
+
const params = [123.23, "a"];
|
|
173
|
+
return import_db.jt400.insertAndGetId(sql, params).then(() => {
|
|
174
|
+
throw new Error("wrong error");
|
|
175
|
+
}).catch((error) => {
|
|
176
|
+
import_assert.default.strictEqual(
|
|
177
|
+
error.message,
|
|
178
|
+
"[SQL0104] Token TESTTABLE was not valid. Valid tokens: : <INTEGER>."
|
|
179
|
+
);
|
|
180
|
+
import_assert.default.ok(error.cause.stack.includes("JdbcJsonClient.insertAndGetId"));
|
|
181
|
+
import_assert.default.strictEqual(error.context.sql, sql);
|
|
182
|
+
import_assert.default.strictEqual(error.context.params, params);
|
|
183
|
+
import_assert.default.strictEqual(error.category, "ProgrammerError");
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
it("should fail execute query with oops-error", () => {
|
|
187
|
+
const sql = "select * from tsttbl-invalidtoken";
|
|
188
|
+
return import_db.jt400.execute(sql).then(() => {
|
|
189
|
+
throw new Error("wrong error");
|
|
190
|
+
}).catch((error) => {
|
|
191
|
+
import_assert.default.strictEqual(
|
|
192
|
+
error.message,
|
|
193
|
+
"[SQL0104] Token - was not valid. Valid tokens: AS CL ID IN TO ASC END FOR KEY LAG LOG NEW OFF OLD OUT COPY DATA."
|
|
194
|
+
);
|
|
195
|
+
import_assert.default.strictEqual(error.context.sql, sql);
|
|
196
|
+
import_assert.default.deepStrictEqual(error.context.params, []);
|
|
197
|
+
import_assert.default.strictEqual(error.category, "ProgrammerError");
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
it("should fail update", async () => {
|
|
201
|
+
const sql = "update tsttbl set foo=? where testtblid=?";
|
|
202
|
+
const params = ["bar", 0, "toomanyparams"];
|
|
203
|
+
return import_db.jt400.update(sql, params).then(() => {
|
|
204
|
+
throw new Error("wrong error");
|
|
205
|
+
}).catch((error) => {
|
|
206
|
+
import_assert.default.strictEqual(error.message, "Descriptor index not valid.");
|
|
207
|
+
import_assert.default.strictEqual(error.context.sql, sql);
|
|
208
|
+
import_assert.default.strictEqual(error.context.params, params);
|
|
209
|
+
import_assert.default.strictEqual(error.category, "ProgrammerError");
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
//# sourceMappingURL=db2-pool-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../ts-src/integration-test/db2-pool-spec.ts"],"sourcesContent":["import assert from 'assert'\nimport { readFileSync } from 'fs'\nimport { pool, QueryOptions } from '../index.js'\nimport { jt400 as connection } from './db.js'\nimport { join } from 'path'\n\nconst currentDir = __dirname\n\ndescribe('jt400 pool', () => {\n let idList\n\n beforeEach(() => {\n return connection\n .update('delete from tsttbl')\n .then(() => {\n const records = [\n { foo: 'bar', bar: 123, baz: '123.23' },\n { foo: 'bar2 ', bar: 124, baz: '321.32' },\n ]\n return connection.insertList('tsttbl', 'testtblid', records)\n })\n .then((idListResult) => (idList = idListResult))\n })\n\n it('should not be in memory', () => {\n assert.strictEqual(connection.isInMemory(), false)\n })\n\n it('should not return same instance in configure', () => {\n assert.notStrictEqual(connection, pool({ host: 'foo' }))\n })\n\n it('should configure host', () => {\n const db = pool({ host: 'nohost' })\n return db\n .query('select * from tsttbl')\n .then(() => {\n throw new Error('should not return result from nohost')\n })\n .catch((err) => {\n assert.ok(err.message.includes('nohost'))\n assert.strictEqual(err.category, 'OperationalError')\n })\n }).timeout(20000)\n\n it('should insert records', () => {\n assert.strictEqual(idList.length, 2)\n assert.ok(Number(idList[0]) > 1)\n })\n\n it('should execute query', async () => {\n const data = await connection.query('select * from tsttbl')\n assert.strictEqual(data.length, 2)\n })\n\n it('should trim values as default', async () => {\n const data: any = await connection.query(\n 'select * from tsttbl order by bar',\n )\n assert.strictEqual(data.length, 2)\n assert.strictEqual(data[1].FOO, 'bar2')\n })\n\n it('should trim values when options is empty', async () => {\n const data: any = await connection.query(\n 'select * from tsttbl',\n [],\n {} as QueryOptions,\n )\n assert.strictEqual(data.length, 2)\n assert.strictEqual(data[1].FOO, 'bar2')\n })\n\n it('should trim values when trim is undefined', async () => {\n let trim\n const data: any = await connection.query(\n 'select * from tsttbl order by bar',\n [],\n {\n trim,\n },\n )\n assert.strictEqual(data.length, 2)\n assert.strictEqual(data[1].FOO, 'bar2')\n })\n\n it('should not trim values when trim option is false', async () => {\n const data: any = await connection.query(\n 'select * from tsttbl order by bar',\n [],\n {\n trim: false,\n },\n )\n assert.strictEqual(data.length, 2)\n assert.strictEqual(data[1].FOO, 'bar2 ')\n })\n\n it('should execute query with params', async () => {\n const data = await connection.query('select * from tsttbl where baz=?', [\n 123.23,\n ])\n assert.strictEqual(data.length, 1)\n })\n\n it('should execute update', async () => {\n const nUpdated = await connection.update(\n \"update tsttbl set foo='bar3' where foo='bar'\",\n )\n assert.strictEqual(nUpdated, 1)\n })\n\n it('should execute update with parameters', async () => {\n const nUpdated = await connection.update(\n 'update tsttbl set foo=? where testtblid=?',\n ['ble', 0],\n )\n assert.strictEqual(nUpdated, 0)\n })\n\n it('should insert dates and timestamps', () => {\n const params = [\n new Date(2014, 0, 15),\n new Date(2014, 0, 16, 15, 32, 5),\n 'bar',\n ]\n return connection\n .update('update tsttbl set fra=?, timi=? where foo=?', params)\n .then(() => {\n return connection.query<any>(\n 'select fra, timi from tsttbl where foo=?',\n ['bar'],\n )\n })\n .then((res) => {\n assert.deepStrictEqual(res[0].FRA, '2014-01-15')\n assert.deepStrictEqual(res[0].TIMI, '2014-01-16 15:32:05.000000')\n })\n })\n\n it('should insert clob', async () => {\n const largeText = readFileSync(\n join(currentDir, '../../test-data/clob.txt'),\n ).toString()\n await connection.update('update tsttbl set clob=?', [\n { type: 'CLOB', value: largeText },\n ])\n const res: any = await connection.query('SELECT clob from tsttbl')\n assert.strictEqual(res[0].CLOB.length, largeText.length)\n }).timeout(20000)\n\n it('should insert blob', async () => {\n const image = readFileSync(join(currentDir, '../../test-data/blob.png'), {\n encoding: 'base64',\n })\n\n await connection.update('update tsttbl set blob=?', [\n { type: 'BLOB', value: image },\n ])\n const res: any = await connection.query('SELECT blob from tsttbl')\n assert.strictEqual(res[0].BLOB.length, image.length)\n })\n\n it('should fail query with oops error', () => {\n const sql = 'select * from tsttbl where baz=?'\n const params = [123.23, 'a']\n\n return connection\n .query(sql, params)\n .then(() => {\n throw new Error('wrong error')\n })\n .catch((error) => {\n assert.strictEqual(error.message, 'Descriptor index not valid.')\n assert.ok(error.cause.stack.includes('JdbcJsonClient.setParams'))\n assert.strictEqual(error.context.sql, sql)\n assert.strictEqual(error.context.params, params)\n assert.strictEqual(error.category, 'ProgrammerError')\n })\n })\n\n it('should fail insert with oops error', () => {\n const sql = 'insert into table testtable (foo) values (?)'\n const params = [123.23, 'a']\n return connection\n .insertAndGetId(sql, params)\n .then(() => {\n throw new Error('wrong error')\n })\n .catch((error) => {\n assert.strictEqual(\n error.message,\n '[SQL0104] Token TESTTABLE was not valid. Valid tokens: : <INTEGER>.',\n )\n assert.ok(error.cause.stack.includes('JdbcJsonClient.insertAndGetId'))\n assert.strictEqual(error.context.sql, sql)\n assert.strictEqual(error.context.params, params)\n assert.strictEqual(error.category, 'ProgrammerError')\n })\n })\n\n it('should fail execute query with oops-error', () => {\n const sql = 'select * from tsttbl-invalidtoken'\n return connection\n .execute(sql)\n .then(() => {\n throw new Error('wrong error')\n })\n .catch((error) => {\n assert.strictEqual(\n error.message,\n '[SQL0104] Token - was not valid. Valid tokens: AS CL ID IN TO ASC END FOR KEY LAG LOG NEW OFF OLD OUT COPY DATA.',\n )\n assert.strictEqual(error.context.sql, sql)\n assert.deepStrictEqual(error.context.params, [])\n assert.strictEqual(error.category, 'ProgrammerError')\n })\n })\n\n it('should fail update', async () => {\n const sql = 'update tsttbl set foo=? where testtblid=?'\n const params = ['bar', 0, 'toomanyparams']\n return connection\n .update(sql, params)\n .then(() => {\n throw new Error('wrong error')\n })\n .catch((error) => {\n assert.strictEqual(error.message, 'Descriptor index not valid.')\n assert.strictEqual(error.context.sql, sql)\n assert.strictEqual(error.context.params, params)\n assert.strictEqual(error.category, 'ProgrammerError')\n })\n })\n})\n"],"mappings":"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","names":["connection","assert"]}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __copyProps = (to, from, except, desc) => {
|
|
8
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
for (let key of __getOwnPropNames(from))
|
|
10
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
11
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
|
+
}
|
|
13
|
+
return to;
|
|
14
|
+
};
|
|
15
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
16
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
17
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
18
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
19
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
|
+
mod
|
|
22
|
+
));
|
|
23
|
+
var import_assert = __toESM(require("assert"), 1);
|
|
24
|
+
var import_stream_equal = __toESM(require("stream-equal"), 1);
|
|
25
|
+
var import_db = require("./db.js");
|
|
26
|
+
const { ifs } = import_db.jt400;
|
|
27
|
+
describe("ifs", () => {
|
|
28
|
+
it("should read file", (done) => {
|
|
29
|
+
const stream = ifs().createReadStream("/atm/test/hello_world.txt");
|
|
30
|
+
let data = "";
|
|
31
|
+
stream.on("data", (chunk) => {
|
|
32
|
+
data += chunk;
|
|
33
|
+
});
|
|
34
|
+
stream.on("end", () => {
|
|
35
|
+
import_assert.default.strictEqual(data, "Hall\xF3 heimur!\n");
|
|
36
|
+
done();
|
|
37
|
+
});
|
|
38
|
+
stream.on("error", done);
|
|
39
|
+
}).timeout(5e4);
|
|
40
|
+
it("should get file metadata", async () => {
|
|
41
|
+
const metadata = await ifs().fileMetadata("/atm/test/hello_world.txt");
|
|
42
|
+
import_assert.default.deepStrictEqual(metadata, {
|
|
43
|
+
exists: true,
|
|
44
|
+
length: 15
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe("list files", () => {
|
|
48
|
+
it("should list files", async () => {
|
|
49
|
+
const files = await ifs().listFiles("/atm/test");
|
|
50
|
+
import_assert.default.ok(files.length > 0);
|
|
51
|
+
});
|
|
52
|
+
it("should return empty array for empty folder", async () => {
|
|
53
|
+
const files = await ifs().listFiles("/atm/test/emptyFolder");
|
|
54
|
+
import_assert.default.strictEqual(files.length, 0);
|
|
55
|
+
});
|
|
56
|
+
it("should return empty array for a folder that does not exist", async () => {
|
|
57
|
+
const files = await ifs().listFiles("/atm/test/does-not-exist");
|
|
58
|
+
import_assert.default.strictEqual(files.length, 0);
|
|
59
|
+
});
|
|
60
|
+
it("should return empty array if the folder is a file", async () => {
|
|
61
|
+
const files = await ifs().listFiles("/atm/test/hello_world.txt");
|
|
62
|
+
import_assert.default.strictEqual(files.length, 0);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
describe("move file", () => {
|
|
66
|
+
it("should return true if the file exist", async () => {
|
|
67
|
+
const res = await ifs().moveFile(
|
|
68
|
+
"/atm/test/file-to-move.txt",
|
|
69
|
+
"/atm/test/file-moved.txt"
|
|
70
|
+
);
|
|
71
|
+
import_assert.default.strictEqual(res, true);
|
|
72
|
+
await ifs().moveFile(
|
|
73
|
+
"/atm/test/file-moved.txt",
|
|
74
|
+
"/atm/test/file-to-move.txt"
|
|
75
|
+
);
|
|
76
|
+
});
|
|
77
|
+
it("should return false if the file does not exist", async () => {
|
|
78
|
+
const res = await ifs().moveFile(
|
|
79
|
+
"/atm/test/does-not-exist.txt",
|
|
80
|
+
"/atm/test/does-not-exist2.txt"
|
|
81
|
+
);
|
|
82
|
+
import_assert.default.strictEqual(res, false);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
it("should get metadata for file that does not exists", async () => {
|
|
86
|
+
const metadata = await ifs().fileMetadata(
|
|
87
|
+
"/atm/test/___file_that_does_not_exists____.txt"
|
|
88
|
+
);
|
|
89
|
+
import_assert.default.deepStrictEqual(metadata, {
|
|
90
|
+
exists: false,
|
|
91
|
+
length: 0
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
it("should read filename promise", (done) => {
|
|
95
|
+
const stream = ifs().createReadStream(
|
|
96
|
+
Promise.resolve("/atm/test/hello_world.txt")
|
|
97
|
+
);
|
|
98
|
+
let data = "";
|
|
99
|
+
stream.on("data", (chunk) => {
|
|
100
|
+
data += chunk;
|
|
101
|
+
});
|
|
102
|
+
stream.on("end", () => {
|
|
103
|
+
import_assert.default.strictEqual(data, "Hall\xF3 heimur!\n");
|
|
104
|
+
done();
|
|
105
|
+
});
|
|
106
|
+
stream.on("error", done);
|
|
107
|
+
}).timeout(5e4);
|
|
108
|
+
it("should write file", (done) => {
|
|
109
|
+
const rs = ifs().createReadStream("/atm/test/hello_world.txt");
|
|
110
|
+
const ws = ifs().createWriteStream("/atm/test2/new_file.txt", {
|
|
111
|
+
append: false
|
|
112
|
+
});
|
|
113
|
+
rs.pipe(ws).on("finish", () => {
|
|
114
|
+
const stream = ifs().createReadStream("/atm/test2/new_file.txt");
|
|
115
|
+
let data = "";
|
|
116
|
+
stream.on("data", (chunk) => {
|
|
117
|
+
data += chunk;
|
|
118
|
+
});
|
|
119
|
+
stream.on("end", () => {
|
|
120
|
+
import_assert.default.strictEqual(data, "Hall\xF3 heimur!\n");
|
|
121
|
+
done();
|
|
122
|
+
});
|
|
123
|
+
stream.on("error", done);
|
|
124
|
+
}).on("error", done);
|
|
125
|
+
}).timeout(5e3);
|
|
126
|
+
it("should pipe image", () => {
|
|
127
|
+
const rs = ifs().createReadStream("/atm/test/image.jpg");
|
|
128
|
+
const ws = ifs().createWriteStream("/atm/test2/image.jpg", {
|
|
129
|
+
append: false
|
|
130
|
+
});
|
|
131
|
+
rs.pipe(ws).on("finish", () => {
|
|
132
|
+
const oldImage = ifs().createReadStream("/atm/test/image.jpg");
|
|
133
|
+
const newImage = ifs().createReadStream("/atm/test2/image.jpg");
|
|
134
|
+
return (0, import_stream_equal.default)(oldImage, newImage).then((equal) => {
|
|
135
|
+
import_assert.default.strictEqual(equal, true);
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
}).timeout(5e4);
|
|
139
|
+
});
|
|
140
|
+
//# sourceMappingURL=ifs-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../ts-src/integration-test/ifs-spec.ts"],"sourcesContent":["import assert from 'assert'\nimport streamEqual from 'stream-equal'\nimport { jt400 } from './db.js'\nconst { ifs } = jt400\n\ndescribe('ifs', () => {\n it('should read file', (done) => {\n const stream = ifs().createReadStream('/atm/test/hello_world.txt')\n let data = ''\n stream.on('data', (chunk) => {\n data += chunk\n })\n\n stream.on('end', () => {\n assert.strictEqual(data, 'Halló heimur!\\n')\n done()\n })\n\n stream.on('error', done)\n }).timeout(50000)\n\n it('should get file metadata', async () => {\n const metadata = await ifs().fileMetadata('/atm/test/hello_world.txt')\n assert.deepStrictEqual(metadata, {\n exists: true,\n length: 15,\n })\n })\n describe('list files', () => {\n it('should list files', async () => {\n const files = await ifs().listFiles('/atm/test')\n assert.ok(files.length > 0)\n })\n it('should return empty array for empty folder', async () => {\n const files = await ifs().listFiles('/atm/test/emptyFolder')\n assert.strictEqual(files.length, 0)\n })\n it('should return empty array for a folder that does not exist', async () => {\n const files = await ifs().listFiles('/atm/test/does-not-exist')\n assert.strictEqual(files.length, 0)\n })\n it('should return empty array if the folder is a file', async () => {\n const files = await ifs().listFiles('/atm/test/hello_world.txt')\n assert.strictEqual(files.length, 0)\n })\n })\n describe('move file', () => {\n it('should return true if the file exist', async () => {\n const res = await ifs().moveFile(\n '/atm/test/file-to-move.txt',\n '/atm/test/file-moved.txt',\n )\n assert.strictEqual(res, true)\n await ifs().moveFile(\n '/atm/test/file-moved.txt',\n '/atm/test/file-to-move.txt',\n )\n })\n it('should return false if the file does not exist', async () => {\n const res = await ifs().moveFile(\n '/atm/test/does-not-exist.txt',\n '/atm/test/does-not-exist2.txt',\n )\n assert.strictEqual(res, false)\n })\n })\n\n it('should get metadata for file that does not exists', async () => {\n const metadata = await ifs().fileMetadata(\n '/atm/test/___file_that_does_not_exists____.txt',\n )\n\n assert.deepStrictEqual(metadata, {\n exists: false,\n length: 0,\n })\n })\n\n it('should read filename promise', (done) => {\n const stream = ifs().createReadStream(\n Promise.resolve('/atm/test/hello_world.txt'),\n )\n let data = ''\n stream.on('data', (chunk) => {\n data += chunk\n })\n\n stream.on('end', () => {\n assert.strictEqual(data, 'Halló heimur!\\n')\n done()\n })\n\n stream.on('error', done)\n }).timeout(50000)\n\n it('should write file', (done) => {\n const rs = ifs().createReadStream('/atm/test/hello_world.txt')\n const ws = ifs().createWriteStream('/atm/test2/new_file.txt', {\n append: false,\n })\n\n rs.pipe(ws)\n .on('finish', () => {\n const stream = ifs().createReadStream('/atm/test2/new_file.txt')\n let data = ''\n stream.on('data', (chunk) => {\n data += chunk\n })\n\n stream.on('end', () => {\n assert.strictEqual(data, 'Halló heimur!\\n')\n done()\n /*\n ifs().deleteFile('/atm/test2/new_file.txt')\n .then((res) => {\n assert.strictEqual(res, true);\n done();\n })\n .catch(done);\n */\n })\n\n stream.on('error', done)\n })\n .on('error', done)\n }).timeout(5000)\n\n it('should pipe image', () => {\n const rs = ifs().createReadStream('/atm/test/image.jpg')\n const ws = ifs().createWriteStream('/atm/test2/image.jpg', {\n append: false,\n })\n\n rs.pipe(ws).on('finish', () => {\n const oldImage = ifs().createReadStream('/atm/test/image.jpg')\n const newImage = ifs().createReadStream('/atm/test2/image.jpg')\n\n return streamEqual(oldImage, newImage).then((equal) => {\n assert.strictEqual(equal, true)\n })\n })\n }).timeout(50000)\n})\n"],"mappings":"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","names":["assert","streamEqual"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __copyProps = (to, from, except, desc) => {
|
|
8
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
for (let key of __getOwnPropNames(from))
|
|
10
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
11
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
|
+
}
|
|
13
|
+
return to;
|
|
14
|
+
};
|
|
15
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
16
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
17
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
18
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
19
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
|
+
mod
|
|
22
|
+
));
|
|
23
|
+
var import_db = require("./db.js");
|
|
24
|
+
var import_assert = __toESM(require("assert"), 1);
|
|
25
|
+
describe("MessageFileHandler", async function() {
|
|
26
|
+
it("should open a message file and read an id", async () => {
|
|
27
|
+
const file = await import_db.jt400.openMessageFile({ path: "/QSYS.LIB/QCPFMSG.MSGF" });
|
|
28
|
+
const msg = await file.read({ messageId: "CPF2105" });
|
|
29
|
+
const expectedText = "Object &1 in &2 type *&3 not found.";
|
|
30
|
+
const text = await msg.getText();
|
|
31
|
+
import_assert.default.strictEqual(text, expectedText);
|
|
32
|
+
}).timeout(5e3);
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=msgf-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../ts-src/integration-test/msgf-spec.ts"],"sourcesContent":["import { jt400 } from './db.js'\nimport assert from 'assert'\n\ndescribe('MessageFileHandler', async function () {\n it('should open a message file and read an id', async () => {\n const file = await jt400.openMessageFile({ path: '/QSYS.LIB/QCPFMSG.MSGF' })\n const msg = await file.read({ messageId: 'CPF2105' })\n const expectedText = 'Object &1 in &2 type *&3 not found.'\n const text = await msg.getText()\n assert.strictEqual(text, expectedText)\n }).timeout(5000)\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,gBAAsB;AACtB,oBAAmB;AAEnB,SAAS,sBAAsB,iBAAkB;AAC/C,KAAG,6CAA6C,YAAY;AAC1D,UAAM,OAAO,MAAM,gBAAM,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,UAAM,MAAM,MAAM,KAAK,KAAK,EAAE,WAAW,UAAU,CAAC;AACpD,UAAM,eAAe;AACrB,UAAM,OAAO,MAAM,IAAI,QAAQ;AAC/B,kBAAAA,QAAO,YAAY,MAAM,YAAY;AAAA,EACvC,CAAC,EAAE,QAAQ,GAAI;AACjB,CAAC;","names":["assert"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __copyProps = (to, from, except, desc) => {
|
|
8
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
for (let key of __getOwnPropNames(from))
|
|
10
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
11
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
|
+
}
|
|
13
|
+
return to;
|
|
14
|
+
};
|
|
15
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
16
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
17
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
18
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
19
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
|
+
mod
|
|
22
|
+
));
|
|
23
|
+
var import_assert = __toESM(require("assert"), 1);
|
|
24
|
+
var import_db = require("./db.js");
|
|
25
|
+
xdescribe("MessageQ", function() {
|
|
26
|
+
let msgq;
|
|
27
|
+
beforeEach(async () => {
|
|
28
|
+
msgq = await import_db.jt400.openMessageQ({
|
|
29
|
+
name: process.env.AS400_TEST_MESSAGE_Q || ""
|
|
30
|
+
});
|
|
31
|
+
const readnext = async () => {
|
|
32
|
+
const message = await msgq.read();
|
|
33
|
+
if (message) {
|
|
34
|
+
return readnext();
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
await readnext();
|
|
38
|
+
});
|
|
39
|
+
it("should open a message queue and write/read a message.", async () => {
|
|
40
|
+
const testMessage = "Test Message";
|
|
41
|
+
await msgq.sendInformational(testMessage);
|
|
42
|
+
import_assert.default.strictEqual(await msgq.read(), testMessage);
|
|
43
|
+
}).timeout(5e3);
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=msgq-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../ts-src/integration-test/msgq-spec.ts"],"sourcesContent":["import assert from 'assert'\nimport { jt400 } from './db.js'\nxdescribe('MessageQ', function () {\n let msgq\n beforeEach(async () => {\n // Clear queue\n msgq = await jt400.openMessageQ({\n name: process.env.AS400_TEST_MESSAGE_Q || '',\n })\n\n const readnext = async () => {\n const message = await msgq.read()\n if (message) {\n return readnext()\n }\n }\n\n await readnext()\n })\n\n it('should open a message queue and write/read a message.', async () => {\n const testMessage = 'Test Message'\n await msgq.sendInformational(testMessage)\n assert.strictEqual(await msgq.read(), testMessage)\n }).timeout(5000)\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAmB;AACnB,gBAAsB;AACtB,UAAU,YAAY,WAAY;AAChC,MAAI;AACJ,aAAW,YAAY;AAErB,WAAO,MAAM,gBAAM,aAAa;AAAA,MAC9B,MAAM,QAAQ,IAAI,wBAAwB;AAAA,IAC5C,CAAC;AAED,UAAM,WAAW,YAAY;AAC3B,YAAM,UAAU,MAAM,KAAK,KAAK;AAChC,UAAI,SAAS;AACX,eAAO,SAAS;AAAA,MAClB;AAAA,IACF;AAEA,UAAM,SAAS;AAAA,EACjB,CAAC;AAED,KAAG,yDAAyD,YAAY;AACtE,UAAM,cAAc;AACpB,UAAM,KAAK,kBAAkB,WAAW;AACxC,kBAAAA,QAAO,YAAY,MAAM,KAAK,KAAK,GAAG,WAAW;AAAA,EACnD,CAAC,EAAE,QAAQ,GAAI;AACjB,CAAC;","names":["assert"]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
interface ResultStream {
|
|
2
|
+
close: () => Promise<void>;
|
|
3
|
+
read: () => Promise<string>;
|
|
4
|
+
}
|
|
5
|
+
interface StatementWrap {
|
|
6
|
+
isQuerySync: () => boolean;
|
|
7
|
+
close: () => Promise<void>;
|
|
8
|
+
updated: () => Promise<number>;
|
|
9
|
+
getMetaData: () => Promise<string>;
|
|
10
|
+
asStreamSync: (bufferSize: number) => ResultStream;
|
|
11
|
+
asArray: () => Promise<string>;
|
|
12
|
+
next: () => Promise<string>;
|
|
13
|
+
}
|
|
14
|
+
interface TablesReadStream {
|
|
15
|
+
close: () => Promise<void>;
|
|
16
|
+
read: () => Promise<string>;
|
|
17
|
+
getMetaData: () => Promise<string>;
|
|
18
|
+
}
|
|
19
|
+
interface JDBCConnection {
|
|
20
|
+
query: (sql: string, jsonParams: string, trim: boolean) => Promise<string>;
|
|
21
|
+
queryAsStream: (sql: string, jsonParams: string, bufferSize: number) => Promise<ResultStream>;
|
|
22
|
+
execute: (sql: string, jsonParams: string) => Promise<StatementWrap>;
|
|
23
|
+
getTablesAsStreamSync: (catalog: string, schema: string, tableName: string) => TablesReadStream;
|
|
24
|
+
getColumns: (catalog: string, schema: string, tableNamePattern: string, columnNamePattern: string) => Promise<string>;
|
|
25
|
+
update: (sql: string, jsonParams: string) => Promise<number>;
|
|
26
|
+
batchUpdate: (sql: string, jsonParams: string) => Promise<number[]>;
|
|
27
|
+
insertAndGetId: (sql: string, jsonParams: string) => Promise<number>;
|
|
28
|
+
}
|
|
29
|
+
interface Transaction extends JDBCConnection {
|
|
30
|
+
commit: () => Promise<void>;
|
|
31
|
+
rollback: () => Promise<void>;
|
|
32
|
+
end: () => Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
interface Pgm {
|
|
35
|
+
run: (jsonParams: string, timeout: number) => Promise<string>;
|
|
36
|
+
}
|
|
37
|
+
interface MessageQ {
|
|
38
|
+
read: (wait: number) => Promise<string>;
|
|
39
|
+
sendInformational: (message: string) => Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
interface KeyedDataQueueResponse {
|
|
42
|
+
getData: () => Promise<string>;
|
|
43
|
+
write: (data: string) => Promise<void>;
|
|
44
|
+
}
|
|
45
|
+
interface KeyedDataQ {
|
|
46
|
+
read: (key: string, wait: number) => Promise<string>;
|
|
47
|
+
readResponse: (key: string, wait: number, writeKeyLength: number) => Promise<KeyedDataQueueResponse>;
|
|
48
|
+
write: (key: string, data: string) => Promise<void>;
|
|
49
|
+
}
|
|
50
|
+
interface AS400Message {
|
|
51
|
+
getText: () => Promise<string>;
|
|
52
|
+
}
|
|
53
|
+
interface MessageFileHandler {
|
|
54
|
+
read: (messageId: string) => Promise<AS400Message>;
|
|
55
|
+
}
|
|
56
|
+
interface IfsReadStream {
|
|
57
|
+
read: () => Promise<Buffer>;
|
|
58
|
+
}
|
|
59
|
+
interface IfsWriteStream {
|
|
60
|
+
write: (data: Buffer) => Promise<void>;
|
|
61
|
+
flush: () => Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
interface JT400 extends JDBCConnection {
|
|
64
|
+
createTransactionSync: () => Transaction;
|
|
65
|
+
getPrimaryKeys: (catalog: string, schema: string, table: string) => Promise<string>;
|
|
66
|
+
pgmSync: (programName: string, paramsSchemaJsonStr: string, libraryName?: string, ccsid?: number) => Pgm;
|
|
67
|
+
openMessageQ: (name: string, isPath: boolean) => Promise<MessageQ>;
|
|
68
|
+
createKeyedDataQSync: (name: string) => KeyedDataQ;
|
|
69
|
+
openMessageFile: (path: string) => Promise<MessageFileHandler>;
|
|
70
|
+
createIfsReadStream: (fileName: string) => Promise<IfsReadStream>;
|
|
71
|
+
createIfsWriteStream: (folderPath: string, fileName: string, append: boolean, ccsid?: number) => Promise<IfsWriteStream>;
|
|
72
|
+
listIfsFiles: (folderName: string) => Promise<string[]>;
|
|
73
|
+
moveIfsFile: (fileName: string, newFileName: string) => Promise<boolean>;
|
|
74
|
+
deleteIfsFile: (fileName: string) => Promise<boolean>;
|
|
75
|
+
getIfsFileMetadata: (fileName: string) => Promise<string>;
|
|
76
|
+
close: () => Promise<void>;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export type { AS400Message, IfsReadStream, IfsWriteStream, JDBCConnection, JT400, KeyedDataQ, KeyedDataQueueResponse, MessageFileHandler, MessageQ, Pgm, ResultStream, StatementWrap, TablesReadStream, Transaction };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
}
|
|
11
|
+
return to;
|
|
12
|
+
};
|
|
13
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
14
|
+
var JT400_exports = {};
|
|
15
|
+
module.exports = __toCommonJS(JT400_exports);
|
|
16
|
+
//# sourceMappingURL=JT400.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../ts-src/java/JT400.ts"],"sourcesContent":["export interface ResultStream {\n close: () => Promise<void>\n read: () => Promise<string>\n}\n\nexport interface StatementWrap {\n isQuerySync: () => boolean\n close: () => Promise<void>\n updated: () => Promise<number>\n getMetaData: () => Promise<string>\n asStreamSync: (bufferSize: number) => ResultStream\n asArray: () => Promise<string>\n next: () => Promise<string>\n}\n\nexport interface TablesReadStream {\n close: () => Promise<void>\n read: () => Promise<string>\n getMetaData: () => Promise<string>\n}\n\nexport interface JDBCConnection {\n query: (sql: string, jsonParams: string, trim: boolean) => Promise<string>\n queryAsStream: (\n sql: string,\n jsonParams: string,\n bufferSize: number,\n ) => Promise<ResultStream>\n\n execute: (sql: string, jsonParams: string) => Promise<StatementWrap>\n getTablesAsStreamSync: (\n catalog: string,\n schema: string,\n tableName: string,\n ) => TablesReadStream\n getColumns: (\n catalog: string,\n schema: string,\n tableNamePattern: string,\n columnNamePattern: string,\n ) => Promise<string>\n update: (sql: string, jsonParams: string) => Promise<number>\n batchUpdate: (sql: string, jsonParams: string) => Promise<number[]>\n insertAndGetId: (sql: string, jsonParams: string) => Promise<number>\n}\n\nexport interface Transaction extends JDBCConnection {\n commit: () => Promise<void>\n rollback: () => Promise<void>\n end: () => Promise<void>\n}\n\nexport interface Pgm {\n run: (jsonParams: string, timeout: number) => Promise<string>\n}\n\nexport interface MessageQ {\n read: (wait: number) => Promise<string>\n sendInformational: (message: string) => Promise<void>\n}\n\nexport interface KeyedDataQueueResponse {\n getData: () => Promise<string>\n\n write: (data: string) => Promise<void>\n}\nexport interface KeyedDataQ {\n read: (key: string, wait: number) => Promise<string>\n readResponse: (\n key: string,\n wait: number,\n writeKeyLength: number,\n ) => Promise<KeyedDataQueueResponse>\n write: (key: string, data: string) => Promise<void>\n}\n\nexport interface AS400Message {\n getText: () => Promise<string>\n}\n\nexport interface MessageFileHandler {\n read: (messageId: string) => Promise<AS400Message>\n}\n\nexport interface IfsReadStream {\n read: () => Promise<Buffer>\n}\n\nexport interface IfsWriteStream {\n write: (data: Buffer) => Promise<void>\n flush: () => Promise<void>\n}\n\nexport interface JT400 extends JDBCConnection {\n createTransactionSync: () => Transaction\n getPrimaryKeys: (\n catalog: string,\n schema: string,\n table: string,\n ) => Promise<string>\n pgmSync: (\n programName: string,\n paramsSchemaJsonStr: string,\n libraryName?: string,\n ccsid?: number,\n ) => Pgm\n openMessageQ: (name: string, isPath: boolean) => Promise<MessageQ>\n createKeyedDataQSync: (name: string) => KeyedDataQ\n openMessageFile: (path: string) => Promise<MessageFileHandler>\n createIfsReadStream: (fileName: string) => Promise<IfsReadStream>\n createIfsWriteStream: (\n folderPath: string,\n fileName: string,\n append: boolean,\n ccsid?: number,\n ) => Promise<IfsWriteStream>\n listIfsFiles: (folderName: string) => Promise<string[]>\n moveIfsFile: (fileName: string, newFileName: string) => Promise<boolean>\n deleteIfsFile: (fileName: string) => Promise<boolean>\n getIfsFileMetadata: (fileName: string) => Promise<string>\n close: () => Promise<void>\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { JT400 } from './JT400.cjs';
|
|
2
|
+
|
|
3
|
+
interface JavaBridge {
|
|
4
|
+
createConnection: (config: string) => Promise<JT400>;
|
|
5
|
+
createPool: (config: string) => JT400;
|
|
6
|
+
createInMemoryConnection: () => JT400;
|
|
7
|
+
}
|
|
8
|
+
declare const initJavaBridge: () => JavaBridge;
|
|
9
|
+
|
|
10
|
+
export { type JavaBridge, initJavaBridge };
|