pogi 3.0.1 → 3.2.0
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/.env +6 -5
- package/.vscode/launch.json +51 -12
- package/CHANGELOG.md +48 -0
- package/jest.config.js +31 -21
- package/jest.globalSetup.js +18 -0
- package/jest.globalTeardown.js +6 -0
- package/jest.setup.ts +22 -0
- package/lib/bin/generateInterface.js +40 -45
- package/lib/bin/generateInterface.js.map +1 -1
- package/lib/connectionOptions.d.ts +1 -1
- package/lib/connectionOptions.js +1 -2
- package/lib/index.d.ts +6 -6
- package/lib/index.js +3 -9
- package/lib/index.js.map +1 -1
- package/lib/pgConverters.js +12 -22
- package/lib/pgConverters.js.map +1 -1
- package/lib/pgConverters.test.js +7 -10
- package/lib/pgConverters.test.js.map +1 -1
- package/lib/pgDb.d.ts +7 -7
- package/lib/pgDb.js +551 -596
- package/lib/pgDb.js.map +1 -1
- package/lib/pgDb.test.js +546 -548
- package/lib/pgDb.test.js.map +1 -1
- package/lib/pgDbInterface.d.ts +2 -2
- package/lib/pgDbInterface.js +2 -5
- package/lib/pgDbInterface.js.map +1 -1
- package/lib/pgDbLogger.js +1 -2
- package/lib/pgDbOperators.js +3 -5
- package/lib/pgDbOperators.js.map +1 -1
- package/lib/pgDbOperators.test.js +155 -158
- package/lib/pgDbOperators.test.js.map +1 -1
- package/lib/pgSchema.d.ts +2 -2
- package/lib/pgSchema.js +7 -8
- package/lib/pgSchema.js.map +1 -1
- package/lib/pgTable.d.ts +8 -9
- package/lib/pgTable.js +178 -217
- package/lib/pgTable.js.map +1 -1
- package/lib/pgTableInterface.d.ts +1 -1
- package/lib/pgTableInterface.js +1 -2
- package/lib/pgTableInterface.js.map +1 -1
- package/lib/pgUtils.d.ts +10 -10
- package/lib/pgUtils.js +36 -45
- package/lib/pgUtils.js.map +1 -1
- package/lib/queryAble.d.ts +5 -6
- package/lib/queryAble.js +248 -264
- package/lib/queryAble.js.map +1 -1
- package/lib/queryAbleInterface.d.ts +5 -6
- package/lib/queryAbleInterface.js +1 -2
- package/lib/queryAbleInterface.js.map +1 -1
- package/lib/queryWhere.d.ts +1 -1
- package/lib/queryWhere.js +20 -23
- package/lib/queryWhere.js.map +1 -1
- package/lib/test/pgServiceRestartTest.js +617 -648
- package/lib/test/pgServiceRestartTest.js.map +1 -1
- package/package.json +27 -26
- package/tsconfig.json +6 -12
package/.env
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
PGDATABASE=labcup
|
|
2
|
-
PGHOST=
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
#PGDATABASE=labcup
|
|
2
|
+
PGHOST=127.0.0.1
|
|
3
|
+
PGPASSWORD="postgres"
|
|
4
|
+
PGUSER="postgres"
|
|
5
|
+
PGPORT=5432
|
|
6
|
+
NODE_OPTIONS=--experimental-vm-modules
|
package/.vscode/launch.json
CHANGED
|
@@ -4,6 +4,15 @@
|
|
|
4
4
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
5
5
|
"version": "0.2.0",
|
|
6
6
|
"configurations": [
|
|
7
|
+
{
|
|
8
|
+
"name": "Attach",
|
|
9
|
+
"port": 9229,
|
|
10
|
+
"request": "attach",
|
|
11
|
+
"skipFiles": [
|
|
12
|
+
"<node_internals>/**"
|
|
13
|
+
],
|
|
14
|
+
"type": "node"
|
|
15
|
+
},
|
|
7
16
|
{
|
|
8
17
|
"name": "Debug via npm",
|
|
9
18
|
"type": "node",
|
|
@@ -23,16 +32,16 @@
|
|
|
23
32
|
"cwd": "${workspaceFolder}",
|
|
24
33
|
"program": "${workspaceFolder}/node_modules/jest/bin/jest",
|
|
25
34
|
"args": [
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
"--runInBand",
|
|
36
|
+
"--config",
|
|
37
|
+
"jest.config.js",
|
|
38
|
+
"--runTestsByPath",
|
|
39
|
+
"${relativeFile}",
|
|
40
|
+
],
|
|
41
|
+
"console": "integratedTerminal",
|
|
42
|
+
"internalConsoleOptions": "neverOpen",
|
|
43
|
+
"disableOptimisticBPs": true,
|
|
44
|
+
"skipFiles": [
|
|
36
45
|
"fs.js",
|
|
37
46
|
"typescript.js",
|
|
38
47
|
"tslib.js",
|
|
@@ -50,10 +59,12 @@
|
|
|
50
59
|
"--runInBand"
|
|
51
60
|
],
|
|
52
61
|
"cwd": "${workspaceFolder}",
|
|
62
|
+
"env": {
|
|
63
|
+
"NODE_OPTIONS": "--experimental-vm-modules"
|
|
64
|
+
},
|
|
53
65
|
"envFile": "${workspaceFolder}/.env",
|
|
54
66
|
"console": "integratedTerminal",
|
|
55
67
|
"internalConsoleOptions": "neverOpen",
|
|
56
|
-
"disableOptimisticBPs": true,
|
|
57
68
|
"outFiles": [
|
|
58
69
|
"${workspaceFolder}/lib/*.js",
|
|
59
70
|
"!${workspaceFolder}/node_modules/**/*",
|
|
@@ -62,6 +73,34 @@
|
|
|
62
73
|
"${workspaceFolder}/node_modules/**/*.js",
|
|
63
74
|
"<node_internals>/**/*.js"
|
|
64
75
|
],
|
|
65
|
-
}
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"type": "node",
|
|
79
|
+
"name": "vscode-jest-tests.v2",
|
|
80
|
+
"request": "launch",
|
|
81
|
+
"program": "${workspaceFolder}/node_modules/jest/bin/jest",
|
|
82
|
+
"args": [
|
|
83
|
+
"--runInBand",
|
|
84
|
+
"--config",
|
|
85
|
+
"jest.config.js",
|
|
86
|
+
"--testNamePattern",
|
|
87
|
+
"${jest.testNamePattern}",
|
|
88
|
+
"--runTestsByPath",
|
|
89
|
+
"${jest.testFile}"
|
|
90
|
+
],
|
|
91
|
+
"env": {
|
|
92
|
+
"NODE_OPTIONS": "--experimental-vm-modules"
|
|
93
|
+
},
|
|
94
|
+
"cwd": "${workspaceFolder}",
|
|
95
|
+
"console": "integratedTerminal",
|
|
96
|
+
"internalConsoleOptions": "neverOpen",
|
|
97
|
+
"windows": {
|
|
98
|
+
"program": "${workspaceFolder}/node_modules/jest/bin/jest"
|
|
99
|
+
},
|
|
100
|
+
"skipFiles": [
|
|
101
|
+
"<node_internals>/**",
|
|
102
|
+
"**/node_modules/**",
|
|
103
|
+
],
|
|
104
|
+
},
|
|
66
105
|
]
|
|
67
106
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,51 @@
|
|
|
1
|
+
# [3.2.0](https://github.com/holdfenytolvaj/pogi/compare/v3.1.0...v3.2.0) (2026-02-04)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
# [3.1.0](https://github.com/holdfenytolvaj/pogi/compare/v3.0.5...v3.1.0) (2026-02-04)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* esm modules and package updates ([b7b231a](https://github.com/holdfenytolvaj/pogi/commit/b7b231a6a6ecdaf5a93cebda62064a32328146b5))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [3.0.5](https://github.com/holdfenytolvaj/pogi/compare/v3.0.4...v3.0.5) (2026-02-03)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## [3.0.4](https://github.com/holdfenytolvaj/pogi/compare/v3.0.3...v3.0.4) (2026-02-03)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [3.0.3](https://github.com/holdfenytolvaj/pogi/compare/v3.0.2...v3.0.3) (2026-02-03)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## [3.0.2](https://github.com/holdfenytolvaj/pogi/compare/v2.10.2...v3.0.2) (2026-02-03)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Bug Fixes
|
|
30
|
+
|
|
31
|
+
* emitter leak ([3040a43](https://github.com/holdfenytolvaj/pogi/commit/3040a43c2cd6a8fee319f6dfe4cb66b7693e4443))
|
|
32
|
+
* oid fix ([bfaedd5](https://github.com/holdfenytolvaj/pogi/commit/bfaedd5a10810623d27be010e338abe324155494))
|
|
33
|
+
* oid fixes ([5af7146](https://github.com/holdfenytolvaj/pogi/commit/5af7146d727f0344e3411a2f9df1f02afbf998b2))
|
|
34
|
+
* orderBy ([33f2373](https://github.com/holdfenytolvaj/pogi/commit/33f23730a51c5c921c1e2f725ee1202b84138072))
|
|
35
|
+
* strict column escape ([e4eeff3](https://github.com/holdfenytolvaj/pogi/commit/e4eeff3558ccc3b0cd02875b46a95f19feb8781a))
|
|
36
|
+
* support node v24 ([234e44a](https://github.com/holdfenytolvaj/pogi/commit/234e44ac268213fc668913a3184be211d4f6d2b6))
|
|
37
|
+
* ts warnings ([a16231c](https://github.com/holdfenytolvaj/pogi/commit/a16231c5c1e5053d9c2cf4ef86a81990cc7963f4))
|
|
38
|
+
* typescript errors, build ([ac4210a](https://github.com/holdfenytolvaj/pogi/commit/ac4210a412717141151d0a1a870d3f23d0d450e8))
|
|
39
|
+
* wrongly implemented catch for non-transactional query ([f79de17](https://github.com/holdfenytolvaj/pogi/commit/f79de17a781e2d6c7873b4afc88eacbd020c836b))
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### Features
|
|
43
|
+
|
|
44
|
+
* improve sql injections prevention phase 2 ([880b9c4](https://github.com/holdfenytolvaj/pogi/commit/880b9c4b26b107b7bb3d2caae24319c761f95a4c))
|
|
45
|
+
* strictDDL for group by/order by/limit/offset ([54c866f](https://github.com/holdfenytolvaj/pogi/commit/54c866f1fcec9f1b8666c0a8a509663acc0af79c))
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
1
49
|
# [2.11.0](https://github.com/holdfenytolvaj/pogi/compare/v2.10.0...v2.11.0) (2021-09-16)
|
|
2
50
|
|
|
3
51
|
### Features
|
package/jest.config.js
CHANGED
|
@@ -1,23 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
1
|
+
import 'dotenv/config';
|
|
2
|
+
//const { createDefaultEsmPreset } = require("ts-jest");
|
|
3
|
+
//import type { Config } from 'jest';
|
|
4
|
+
//import { createDefaultEsmPreset } from 'ts-jest';
|
|
3
5
|
|
|
4
|
-
|
|
5
|
-
roots: ["./src"],
|
|
6
|
-
testMatch: [
|
|
7
|
-
"**/*.test.ts"
|
|
8
|
-
],
|
|
9
|
-
testPathIgnorePatterns: ["/dist/", "/build/"],
|
|
6
|
+
// const tsJestTransformCfg = createDefaultPreset().transform;
|
|
10
7
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
8
|
+
/** @type {import("jest").Config} **/
|
|
9
|
+
export default {
|
|
10
|
+
rootDir: "./",
|
|
11
|
+
modulePaths: [
|
|
12
|
+
"<rootDir>"
|
|
13
|
+
],
|
|
14
|
+
testMatch: [
|
|
15
|
+
"**/*.test.ts"
|
|
16
|
+
],
|
|
17
|
+
testEnvironment: "node",
|
|
18
|
+
extensionsToTreatAsEsm: ['.ts'],
|
|
19
|
+
moduleNameMapper: {
|
|
20
|
+
"^(\\.{1,2}/.*)\\.js$": "$1",
|
|
21
|
+
},
|
|
22
|
+
// transform: {
|
|
23
|
+
// ...createDefaultEsmPreset().transform,
|
|
24
|
+
// },
|
|
25
|
+
transform: {
|
|
26
|
+
'^.+\\.tsx?$': '@swc/jest',
|
|
27
|
+
},
|
|
28
|
+
setupFilesAfterEnv: [
|
|
29
|
+
"<rootDir>/jest.setup.ts",
|
|
30
|
+
],
|
|
31
|
+
globalSetup: "<rootDir>jest.globalSetup.js",
|
|
32
|
+
globalTeardown: "<rootDir>jest.globalTeardown.js",
|
|
33
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
let { GenericContainer, Wait } = require("testcontainers");
|
|
2
|
+
module.exports = async function (globalConfig, projectConfig) {
|
|
3
|
+
console.log('db starting...');
|
|
4
|
+
try {
|
|
5
|
+
globalThis.dbContainer = await new GenericContainer("postgres")
|
|
6
|
+
.withEnvironment({
|
|
7
|
+
POSTGRES_USER: process.env.PGUSER || 'postgres',
|
|
8
|
+
POSTGRES_PASSWORD: process.env.PGPASSWORD || 'postgres',
|
|
9
|
+
})
|
|
10
|
+
.withExposedPorts({ container: 5432, host: +process.env.PGPORT || 5432 })
|
|
11
|
+
.withWaitStrategy(Wait.forLogMessage("database system is ready to accept connections")) // it is a lie
|
|
12
|
+
.start();
|
|
13
|
+
await new Promise(r => setTimeout(r, 1000));
|
|
14
|
+
console.log('db started');
|
|
15
|
+
} catch (e) {
|
|
16
|
+
console.error('db start failed', e);
|
|
17
|
+
}
|
|
18
|
+
};
|
package/jest.setup.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { expect, jest, test } from '@jest/globals';
|
|
2
|
+
import inspector from 'inspector';
|
|
3
|
+
if (process.env.DEBUG || inspector.url()) {
|
|
4
|
+
console.log('debugging jest, set some extra timeout');
|
|
5
|
+
jest.setTimeout(5 * 60 * 1000);
|
|
6
|
+
}
|
|
7
|
+
// let { GenericContainer, Wait } = require("testcontainers");
|
|
8
|
+
// /** @type {import("testcontainers").StartedTestContainer} */
|
|
9
|
+
// let dbContainer;
|
|
10
|
+
// beforeAll(async () => {
|
|
11
|
+
// console.log('db starting...');
|
|
12
|
+
// dbContainer = await new GenericContainer("postgres:18")
|
|
13
|
+
// .withExposedPorts({ container: 5432, host: 5432 })
|
|
14
|
+
// // .withWaitStrategy(Wait.forListeningPorts())
|
|
15
|
+
// .withWaitStrategy(Wait.forLogMessage("database system is ready to accept connections"))
|
|
16
|
+
// .start();
|
|
17
|
+
// console.log('db started');
|
|
18
|
+
// });
|
|
19
|
+
|
|
20
|
+
// afterAll(async () => {
|
|
21
|
+
// await dbContainer?.stop();
|
|
22
|
+
// });
|
|
@@ -1,53 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
import { PgDb } from "../pgDb";
|
|
2
|
+
import { PgSchema } from "../pgSchema";
|
|
3
|
+
import { PgTable } from "../pgTable";
|
|
4
|
+
(async function () {
|
|
5
|
+
try {
|
|
6
|
+
let pgdb = await PgDb.connect({
|
|
7
|
+
logger: {
|
|
8
|
+
log: () => {
|
|
9
|
+
}, error: console.error
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
console.log('import {PgDb, PgSchema, PgTable} from "pogi";\n');
|
|
13
|
+
console.log('export interface PgDbType extends PgDb {');
|
|
14
|
+
for (let schemaName in pgdb.schemas) {
|
|
15
|
+
if (!(pgdb[schemaName] instanceof PgSchema)) {
|
|
16
|
+
throw new Error('Already existing property: ' + schemaName + '!');
|
|
17
|
+
}
|
|
18
|
+
console.log(` '${schemaName}': PgSchema_${schemaName};`);
|
|
19
|
+
}
|
|
20
|
+
console.log(` 'schemas': {`);
|
|
21
|
+
for (let schemaName in pgdb.schemas) {
|
|
22
|
+
console.log(` '${schemaName}': PgSchema_${schemaName};`);
|
|
23
|
+
}
|
|
24
|
+
console.log(' }');
|
|
25
|
+
console.log('}');
|
|
26
|
+
for (let schemaName in pgdb.schemas) {
|
|
27
|
+
console.log(`export interface PgSchema_${schemaName} extends PgSchema {`);
|
|
28
|
+
for (let tableName in pgdb.schemas[schemaName].tables) {
|
|
29
|
+
if (!(pgdb[schemaName][tableName] instanceof PgTable)) {
|
|
30
|
+
throw new Error('Already existing property: ' + tableName + ' on schema:' + schemaName + '!');
|
|
21
31
|
}
|
|
22
|
-
console.log(` '${
|
|
32
|
+
console.log(` '${tableName}': PgTable<any>;`);
|
|
23
33
|
}
|
|
24
|
-
console.log(`
|
|
25
|
-
for (let
|
|
26
|
-
console.log(` '${
|
|
34
|
+
console.log(` tables: {`);
|
|
35
|
+
for (let tableName in pgdb.schemas[schemaName].tables) {
|
|
36
|
+
console.log(` '${tableName}': PgTable<any>;`);
|
|
27
37
|
}
|
|
28
38
|
console.log(' }');
|
|
29
39
|
console.log('}');
|
|
30
|
-
for (let schemaName in pgdb.schemas) {
|
|
31
|
-
console.log(`export interface PgSchema_${schemaName} extends PgSchema {`);
|
|
32
|
-
for (let tableName in pgdb.schemas[schemaName].tables) {
|
|
33
|
-
if (!(pgdb[schemaName][tableName] instanceof pgTable_1.PgTable)) {
|
|
34
|
-
throw new Error('Already existing property: ' + tableName + ' on schema:' + schemaName + '!');
|
|
35
|
-
}
|
|
36
|
-
console.log(` '${tableName}': PgTable<any>;`);
|
|
37
|
-
}
|
|
38
|
-
console.log(` tables: {`);
|
|
39
|
-
for (let tableName in pgdb.schemas[schemaName].tables) {
|
|
40
|
-
console.log(` '${tableName}': PgTable<any>;`);
|
|
41
|
-
}
|
|
42
|
-
console.log(' }');
|
|
43
|
-
console.log('}');
|
|
44
|
-
}
|
|
45
|
-
pgdb.close();
|
|
46
|
-
}
|
|
47
|
-
catch (e) {
|
|
48
|
-
console.error(e);
|
|
49
40
|
}
|
|
50
|
-
|
|
51
|
-
}
|
|
41
|
+
pgdb.close();
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
console.error(e);
|
|
45
|
+
}
|
|
46
|
+
return Promise.resolve();
|
|
52
47
|
})();
|
|
53
48
|
//# sourceMappingURL=generateInterface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateInterface.js","sourceRoot":"","sources":["../../src/bin/generateInterface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generateInterface.js","sourceRoot":"","sources":["../../src/bin/generateInterface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AACrC,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AAEnC,CAAC,KAAK;IACF,IAAI,CAAC;QACD,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YAC1B,MAAM,EAAE;gBACJ,GAAG,EAAE,GAAG,EAAE;gBACV,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK;aAC1B;SACJ,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAExD,KAAK,IAAI,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,QAAQ,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,eAAe,UAAU,GAAG,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,KAAK,IAAI,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,YAAY,UAAU,eAAe,UAAU,GAAG,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEjB,KAAK,IAAI,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,6BAA6B,UAAU,qBAAqB,CAAC,CAAC;YAC1E,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;gBACpD,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,YAAY,OAAO,CAAC,EAAE,CAAC;oBACpD,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;gBAClG,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,QAAQ,SAAS,kBAAkB,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,YAAY,SAAS,kBAAkB,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAErB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAGD,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC7B,CAAC,CAAC,EAAE,CAAC"}
|
package/lib/connectionOptions.js
CHANGED
package/lib/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export { PgDbLogger } from './pgDbLogger';
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export { QueryOptions } from './queryAbleInterface';
|
|
1
|
+
export { ConnectionOptions } from './connectionOptions.js';
|
|
2
|
+
export { PgDb } from './pgDb.js';
|
|
3
|
+
export { PgDbLogger } from './pgDbLogger.js';
|
|
4
|
+
export { PgSchema } from './pgSchema.js';
|
|
5
|
+
export { PgTable } from './pgTable.js';
|
|
6
|
+
export { QueryOptions } from './queryAbleInterface.js';
|
package/lib/index.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var pgDb_1 = require("./pgDb");
|
|
5
|
-
Object.defineProperty(exports, "PgDb", { enumerable: true, get: function () { return pgDb_1.PgDb; } });
|
|
6
|
-
var pgTable_1 = require("./pgTable");
|
|
7
|
-
Object.defineProperty(exports, "PgTable", { enumerable: true, get: function () { return pgTable_1.PgTable; } });
|
|
8
|
-
var pgSchema_1 = require("./pgSchema");
|
|
9
|
-
Object.defineProperty(exports, "PgSchema", { enumerable: true, get: function () { return pgSchema_1.PgSchema; } });
|
|
1
|
+
export { PgDb } from './pgDb.js';
|
|
2
|
+
export { PgSchema } from './pgSchema.js';
|
|
3
|
+
export { PgTable } from './pgTable.js';
|
|
10
4
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
package/lib/pgConverters.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
function parseArray(s) {
|
|
1
|
+
import moment from 'moment';
|
|
2
|
+
export function parseArray(s) {
|
|
3
|
+
if (Array.isArray(s))
|
|
4
|
+
return s;
|
|
6
5
|
if (!s || s[0] !== '{' || s[s.length - 1] !== '}')
|
|
7
6
|
throw new Error('Invalid array value:' + s);
|
|
8
7
|
if (s == "{}")
|
|
@@ -21,9 +20,8 @@ function parseArray(s) {
|
|
|
21
20
|
} while (e.lastIndex < s.length);
|
|
22
21
|
return valList;
|
|
23
22
|
}
|
|
24
|
-
exports.parseArray = parseArray;
|
|
25
23
|
;
|
|
26
|
-
function parseNumberWithValidation(s) {
|
|
24
|
+
export function parseNumberWithValidation(s) {
|
|
27
25
|
if (s === 'NULL') {
|
|
28
26
|
return null;
|
|
29
27
|
}
|
|
@@ -33,36 +31,28 @@ function parseNumberWithValidation(s) {
|
|
|
33
31
|
}
|
|
34
32
|
return v;
|
|
35
33
|
}
|
|
36
|
-
exports.parseNumberWithValidation = parseNumberWithValidation;
|
|
37
34
|
;
|
|
38
|
-
function parseNumberOrNull(s) {
|
|
35
|
+
export function parseNumberOrNull(s) {
|
|
39
36
|
if (s === 'NULL') {
|
|
40
37
|
return null;
|
|
41
38
|
}
|
|
42
39
|
return +s;
|
|
43
40
|
}
|
|
44
|
-
exports.parseNumberOrNull = parseNumberOrNull;
|
|
45
41
|
;
|
|
46
|
-
function parseBoolOrNull(s) {
|
|
42
|
+
export function parseBoolOrNull(s) {
|
|
47
43
|
if (s === 'NULL') {
|
|
48
44
|
return null;
|
|
49
45
|
}
|
|
50
46
|
return s == 't';
|
|
51
47
|
}
|
|
52
|
-
|
|
53
|
-
let
|
|
54
|
-
|
|
55
|
-
let
|
|
56
|
-
|
|
57
|
-
let parseNumberArrayWithValidation = (s) => s.map(parseNumberWithValidation);
|
|
58
|
-
exports.parseNumberArrayWithValidation = parseNumberArrayWithValidation;
|
|
59
|
-
let parseDateArray = (s) => s == "{}" ? [] : s.substring(1, s.length - 1).split(',').map(d => d == 'NULL' ? null : moment(d.substring(1, d.length - 1)).toDate());
|
|
60
|
-
exports.parseDateArray = parseDateArray;
|
|
61
|
-
let parseJsonArray = (s) => {
|
|
48
|
+
export let parseBooleanArray = (s) => s == "{}" ? [] : s.substring(1, s.length - 1).split(',').map(parseBoolOrNull);
|
|
49
|
+
export let parseNumberArray = (s) => s == "{}" ? [] : s.substring(1, s.length - 1).split(',').map(parseNumberOrNull);
|
|
50
|
+
export let parseNumberArrayWithValidation = (s) => s.map(parseNumberWithValidation);
|
|
51
|
+
export let parseDateArray = (s) => s == "{}" ? [] : s.substring(1, s.length - 1).split(',').map(d => d == 'NULL' ? null : moment(d.substring(1, d.length - 1)).toDate());
|
|
52
|
+
export let parseJsonArray = (s) => {
|
|
62
53
|
let vals = parseArray(s);
|
|
63
54
|
return vals.map(s2 => typeof s2 === 'string' ? JSON.parse(s2) : s2);
|
|
64
55
|
};
|
|
65
|
-
exports.parseJsonArray = parseJsonArray;
|
|
66
56
|
function unescapeString(s) {
|
|
67
57
|
return s.slice(1, s.length - 1)
|
|
68
58
|
.replace(/\\"/g, '"')
|
package/lib/pgConverters.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pgConverters.js","sourceRoot":"","sources":["../src/pgConverters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pgConverters.js","sourceRoot":"","sources":["../src/pgConverters.ts"],"names":[],"mappings":"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"}
|
package/lib/pgConverters.test.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const pgConverters_1 = require("./pgConverters");
|
|
1
|
+
import { parseArray } from "./pgConverters.js";
|
|
5
2
|
describe("pgConverters.test", () => {
|
|
6
|
-
it("parseArray", () =>
|
|
7
|
-
expect(
|
|
8
|
-
expect(
|
|
9
|
-
expect(
|
|
10
|
-
expect(
|
|
11
|
-
})
|
|
3
|
+
it("parseArray", async () => {
|
|
4
|
+
expect(parseArray('{}')).toEqual([]);
|
|
5
|
+
expect(parseArray('{1,2}')).toEqual(['1', '2']);
|
|
6
|
+
expect(parseArray('{NULL,""}')).toEqual([null, '']);
|
|
7
|
+
expect(parseArray('{"\\\\","\\""}')).toEqual(['\\', '"']);
|
|
8
|
+
});
|
|
12
9
|
});
|
|
13
10
|
//# sourceMappingURL=pgConverters.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pgConverters.test.js","sourceRoot":"","sources":["../src/pgConverters.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pgConverters.test.js","sourceRoot":"","sources":["../src/pgConverters.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;QACxB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
package/lib/pgDb.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ConnectionOptions } from './connectionOptions';
|
|
3
|
-
import { Notification, PostProcessResultFunc, ResultFieldType, TransactionIsolationLevel } from "./pgDbInterface";
|
|
4
|
-
import { PgDbLogger } from './pgDbLogger';
|
|
5
|
-
import { PgSchema } from "./pgSchema";
|
|
6
|
-
import { PgTable } from "./pgTable";
|
|
7
|
-
import { QueryAble } from "./queryAble";
|
|
1
|
+
import pg from 'pg';
|
|
2
|
+
import { ConnectionOptions } from './connectionOptions.js';
|
|
3
|
+
import { Notification, PostProcessResultFunc, ResultFieldType, TransactionIsolationLevel } from "./pgDbInterface.js";
|
|
4
|
+
import { PgDbLogger } from './pgDbLogger.js';
|
|
5
|
+
import { PgSchema } from "./pgSchema.js";
|
|
6
|
+
import { PgTable } from "./pgTable.js";
|
|
7
|
+
import { QueryAble } from "./queryAble.js";
|
|
8
8
|
export declare enum FieldType {
|
|
9
9
|
JSON = 0,
|
|
10
10
|
ARRAY = 1,
|