@take-out/postgres 0.2.10 → 0.3.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/dist/cjs/cli.cjs +0 -0
- package/dist/cjs/scripts/drizzle-migrations-sync.cjs +0 -0
- package/dist/esm/cli.mjs +0 -0
- package/dist/esm/getDBClient.mjs.map +1 -1
- package/dist/esm/index.js +6 -14
- package/dist/esm/index.js.map +1 -6
- package/dist/esm/scripts/drizzle-migrations-sync.mjs +0 -0
- package/dist/esm/sql.mjs.map +1 -1
- package/package.json +3 -3
- package/src/chunkedQuery.ts +3 -3
- package/src/cli.ts +2 -2
- package/src/createDb.ts +1 -1
- package/src/createServerHelpers.ts +1 -1
- package/src/getDBClient.ts +13 -13
- package/src/migrate.ts +2 -2
- package/src/scripts/build-migrations.ts +1 -1
- package/src/scripts/drizzle-migrations-sync.ts +1 -1
- package/src/sql.ts +2 -2
- package/types/getDBClient.d.ts +1 -1
- package/types/getDBClient.d.ts.map +1 -1
- package/types/scripts/build-migrations.d.ts +1 -1
- package/types/scripts/build-migrations.d.ts.map +1 -1
- package/types/sql.d.ts +2 -2
- package/types/sql.d.ts.map +1 -1
- package/dist/cjs/build.js +0 -21
- package/dist/cjs/build.js.map +0 -6
- package/dist/cjs/chunkedQuery.js +0 -51
- package/dist/cjs/chunkedQuery.js.map +0 -6
- package/dist/cjs/cli.js +0 -128
- package/dist/cjs/cli.js.map +0 -6
- package/dist/cjs/createDb.js +0 -28
- package/dist/cjs/createDb.js.map +0 -6
- package/dist/cjs/createPool.js +0 -32
- package/dist/cjs/createPool.js.map +0 -6
- package/dist/cjs/createServerHelpers.js +0 -28
- package/dist/cjs/createServerHelpers.js.map +0 -6
- package/dist/cjs/getDBClient.js +0 -168
- package/dist/cjs/getDBClient.js.map +0 -6
- package/dist/cjs/index.js +0 -27
- package/dist/cjs/index.js.map +0 -6
- package/dist/cjs/migrate.js +0 -144
- package/dist/cjs/migrate.js.map +0 -6
- package/dist/cjs/scripts/build-migrations.js +0 -69
- package/dist/cjs/scripts/build-migrations.js.map +0 -6
- package/dist/cjs/scripts/drizzle-migrations-sync.js +0 -118
- package/dist/cjs/scripts/drizzle-migrations-sync.js.map +0 -6
- package/dist/cjs/scripts/migration-add.js +0 -40
- package/dist/cjs/scripts/migration-add.js.map +0 -6
- package/dist/cjs/scripts/pg_dump.js +0 -35
- package/dist/cjs/scripts/pg_dump.js.map +0 -6
- package/dist/cjs/scripts/psql.js +0 -36
- package/dist/cjs/scripts/psql.js.map +0 -6
- package/dist/cjs/sql.js +0 -35
- package/dist/cjs/sql.js.map +0 -6
- package/dist/esm/build.js +0 -5
- package/dist/esm/build.js.map +0 -6
- package/dist/esm/chunkedQuery.js +0 -35
- package/dist/esm/chunkedQuery.js.map +0 -6
- package/dist/esm/cli.js +0 -134
- package/dist/esm/cli.js.map +0 -6
- package/dist/esm/createDb.js +0 -13
- package/dist/esm/createDb.js.map +0 -6
- package/dist/esm/createPool.js +0 -8
- package/dist/esm/createPool.js.map +0 -6
- package/dist/esm/createServerHelpers.js +0 -13
- package/dist/esm/createServerHelpers.js.map +0 -6
- package/dist/esm/getDBClient.js +0 -144
- package/dist/esm/getDBClient.js.map +0 -6
- package/dist/esm/migrate.js +0 -129
- package/dist/esm/migrate.js.map +0 -6
- package/dist/esm/scripts/build-migrations.js +0 -46
- package/dist/esm/scripts/build-migrations.js.map +0 -6
- package/dist/esm/scripts/drizzle-migrations-sync.js +0 -104
- package/dist/esm/scripts/drizzle-migrations-sync.js.map +0 -6
- package/dist/esm/scripts/migration-add.js +0 -25
- package/dist/esm/scripts/migration-add.js.map +0 -6
- package/dist/esm/scripts/pg_dump.js +0 -19
- package/dist/esm/scripts/pg_dump.js.map +0 -6
- package/dist/esm/scripts/psql.js +0 -20
- package/dist/esm/scripts/psql.js.map +0 -6
- package/dist/esm/sql.js +0 -19
- package/dist/esm/sql.js.map +0 -6
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/scripts/drizzle-migrations-sync.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
8
|
-
}, __copyProps = (to, from, except, desc) => {
|
|
9
|
-
if (from && typeof from == "object" || typeof from == "function")
|
|
10
|
-
for (let key of __getOwnPropNames(from))
|
|
11
|
-
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
15
|
-
var migration_add_exports = {};
|
|
16
|
-
__export(migration_add_exports, {
|
|
17
|
-
addMigration: () => addMigration
|
|
18
|
-
});
|
|
19
|
-
module.exports = __toCommonJS(migration_add_exports);
|
|
20
|
-
var import_node_fs = require("node:fs"), import_node_path = require("node:path");
|
|
21
|
-
const commonWords = ["sapphire", "emerald", "ruby", "amber", "topaz", "onyx", "pearl"];
|
|
22
|
-
function addMigration(options) {
|
|
23
|
-
const { migrationsDir, name } = options, migrationName = name || commonWords[Math.floor(Math.random() * commonWords.length)], files = (0, import_node_fs.readdirSync)(migrationsDir), migrationRegex = /^(\d+)[-_].*\.(ts|sql)$/;
|
|
24
|
-
let maxNumber = 0;
|
|
25
|
-
for (const file of files) {
|
|
26
|
-
const match = file.match(migrationRegex);
|
|
27
|
-
if (match?.[1]) {
|
|
28
|
-
const num = Number.parseInt(match[1], 10);
|
|
29
|
-
!Number.isNaN(num) && num > maxNumber && (maxNumber = num);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
const newFilename = `${(maxNumber + 1).toString().padStart(4, "0")}-${migrationName}.ts`, newFilePath = (0, import_node_path.join)(migrationsDir, newFilename);
|
|
33
|
-
return (0, import_node_fs.writeFileSync)(newFilePath, `import type { PoolClient } from 'pg'
|
|
34
|
-
|
|
35
|
-
export async function up(client: PoolClient) {
|
|
36
|
-
// implementation for applying this migration
|
|
37
|
-
}
|
|
38
|
-
`), console.info(`Created custom migration: ${newFilePath}`), console.info("For Drizzle schema migrations, run 'drizzle-kit generate' instead"), newFilePath;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=migration-add.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/scripts/migration-add.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA2C,oBAC3C,mBAAqB;AAOrB,MAAM,cAAc,CAAC,YAAY,WAAW,QAAQ,SAAS,SAAS,QAAQ,OAAO;AAE9E,SAAS,aAAa,SAAsC;AACjE,QAAM,EAAE,eAAe,KAAK,IAAI,SAG1B,gBACJ,QAAQ,YAAY,KAAK,MAAM,KAAK,OAAO,IAAI,YAAY,MAAM,CAAC,GAG9D,YAAQ,4BAAY,aAAa,GAGjC,iBAAiB;AACvB,MAAI,YAAY;AAChB,aAAW,QAAQ,OAAO;AACxB,UAAM,QAAQ,KAAK,MAAM,cAAc;AACvC,QAAI,QAAQ,CAAC,GAAG;AACd,YAAM,MAAM,OAAO,SAAS,MAAM,CAAC,GAAG,EAAE;AACxC,MAAI,CAAC,OAAO,MAAM,GAAG,KAAK,MAAM,cAC9B,YAAY;AAAA,IAEhB;AAAA,EACF;AAIA,QAAM,cAAc,IADA,YAAY,GAAG,SAAS,EAAE,SAAS,GAAG,GAAG,CAC5B,IAAI,aAAa,OAC5C,kBAAc,uBAAK,eAAe,WAAW;AAWnD,2CAAc,aARU;AAAA;AAAA;AAAA;AAAA;AAAA,CAQkB,GAE1C,QAAQ,KAAK,6BAA6B,WAAW,EAAE,GACvD,QAAQ,KAAK,mEAAmE,GAEzE;AACT;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
8
|
-
}, __copyProps = (to, from, except, desc) => {
|
|
9
|
-
if (from && typeof from == "object" || typeof from == "function")
|
|
10
|
-
for (let key of __getOwnPropNames(from))
|
|
11
|
-
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
15
|
-
var pg_dump_exports = {};
|
|
16
|
-
__export(pg_dump_exports, {
|
|
17
|
-
runPgDump: () => runPgDump
|
|
18
|
-
});
|
|
19
|
-
module.exports = __toCommonJS(pg_dump_exports);
|
|
20
|
-
var import_node_child_process = require("node:child_process");
|
|
21
|
-
function runPgDump(options = {}) {
|
|
22
|
-
const { connectionString, host, port, database, user, password, args = [] } = options, env = {
|
|
23
|
-
...process.env
|
|
24
|
-
};
|
|
25
|
-
if (connectionString) {
|
|
26
|
-
const url = new URL(connectionString);
|
|
27
|
-
env.PGHOST = url.hostname, env.PGPORT = url.port || "5432", env.PGDATABASE = url.pathname.slice(1), env.PGUSER = url.username, url.password && (env.PGPASSWORD = url.password);
|
|
28
|
-
} else
|
|
29
|
-
host && (env.PGHOST = host), port && (env.PGPORT = port.toString()), database && (env.PGDATABASE = database), user && (env.PGUSER = user), password && (env.PGPASSWORD = password);
|
|
30
|
-
return console.info(`Running pg_dump on postgres ${env.PGHOST}/${env.PGDATABASE}`), (0, import_node_child_process.spawnSync)("pg_dump", args, {
|
|
31
|
-
stdio: ["ignore", "inherit", "inherit"],
|
|
32
|
-
env
|
|
33
|
-
}).status;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=pg_dump.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/scripts/pg_dump.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAA0B;AAYnB,SAAS,UAAU,UAAyB,CAAC,GAAG;AACrD,QAAM,EAAE,kBAAkB,MAAM,MAAM,UAAU,MAAM,UAAU,OAAO,CAAC,EAAE,IAAI,SAExE,MAA8B;AAAA,IAClC,GAAG,QAAQ;AAAA,EACb;AAEA,MAAI,kBAAkB;AAEpB,UAAM,MAAM,IAAI,IAAI,gBAAgB;AACpC,QAAI,SAAS,IAAI,UACjB,IAAI,SAAS,IAAI,QAAQ,QACzB,IAAI,aAAa,IAAI,SAAS,MAAM,CAAC,GACrC,IAAI,SAAS,IAAI,UACb,IAAI,aACN,IAAI,aAAa,IAAI;AAAA,EAEzB;AACE,IAAI,SAAM,IAAI,SAAS,OACnB,SAAM,IAAI,SAAS,KAAK,SAAS,IACjC,aAAU,IAAI,aAAa,WAC3B,SAAM,IAAI,SAAS,OACnB,aAAU,IAAI,aAAa;AAGjC,iBAAQ,KAAK,+BAA+B,IAAI,MAAM,IAAI,IAAI,UAAU,EAAE,OAE3D,qCAAU,WAAW,MAAM;AAAA,IACxC,OAAO,CAAC,UAAU,WAAW,SAAS;AAAA,IACtC;AAAA,EACF,CAAC,EAEa;AAChB;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
package/dist/cjs/scripts/psql.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
8
|
-
}, __copyProps = (to, from, except, desc) => {
|
|
9
|
-
if (from && typeof from == "object" || typeof from == "function")
|
|
10
|
-
for (let key of __getOwnPropNames(from))
|
|
11
|
-
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
15
|
-
var psql_exports = {};
|
|
16
|
-
__export(psql_exports, {
|
|
17
|
-
runPsql: () => runPsql
|
|
18
|
-
});
|
|
19
|
-
module.exports = __toCommonJS(psql_exports);
|
|
20
|
-
var import_node_child_process = require("node:child_process");
|
|
21
|
-
function runPsql(options = {}) {
|
|
22
|
-
const { connectionString, host, port, database, user, password, query } = options, env = {
|
|
23
|
-
...process.env
|
|
24
|
-
};
|
|
25
|
-
if (connectionString) {
|
|
26
|
-
const url = new URL(connectionString);
|
|
27
|
-
env.PGHOST = url.hostname, env.PGPORT = url.port || "5432", env.PGDATABASE = url.pathname.slice(1), env.PGUSER = url.username, url.password && (env.PGPASSWORD = url.password);
|
|
28
|
-
} else
|
|
29
|
-
host && (env.PGHOST = host), port && (env.PGPORT = port.toString()), database && (env.PGDATABASE = database), user && (env.PGUSER = user), password && (env.PGPASSWORD = password);
|
|
30
|
-
const args = [];
|
|
31
|
-
return query && args.push("-c", query), console.info(`Connecting to postgres ${env.PGHOST}/${env.PGDATABASE}`), (0, import_node_child_process.spawnSync)("psql", args, {
|
|
32
|
-
stdio: ["ignore", "inherit", "inherit"],
|
|
33
|
-
env
|
|
34
|
-
}).status;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=psql.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/scripts/psql.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAA0B;AAYnB,SAAS,QAAQ,UAAuB,CAAC,GAAG;AACjD,QAAM,EAAE,kBAAkB,MAAM,MAAM,UAAU,MAAM,UAAU,MAAM,IAAI,SAEpE,MAA8B;AAAA,IAClC,GAAG,QAAQ;AAAA,EACb;AAEA,MAAI,kBAAkB;AAEpB,UAAM,MAAM,IAAI,IAAI,gBAAgB;AACpC,QAAI,SAAS,IAAI,UACjB,IAAI,SAAS,IAAI,QAAQ,QACzB,IAAI,aAAa,IAAI,SAAS,MAAM,CAAC,GACrC,IAAI,SAAS,IAAI,UACb,IAAI,aACN,IAAI,aAAa,IAAI;AAAA,EAEzB;AACE,IAAI,SAAM,IAAI,SAAS,OACnB,SAAM,IAAI,SAAS,KAAK,SAAS,IACjC,aAAU,IAAI,aAAa,WAC3B,SAAM,IAAI,SAAS,OACnB,aAAU,IAAI,aAAa;AAGjC,QAAM,OAAiB,CAAC;AACxB,SAAI,SACF,KAAK,KAAK,MAAM,KAAK,GAGvB,QAAQ,KAAK,0BAA0B,IAAI,MAAM,IAAI,IAAI,UAAU,EAAE,OAEtD,qCAAU,QAAQ,MAAM;AAAA,IACrC,OAAO,CAAC,UAAU,WAAW,SAAS;AAAA,IACtC;AAAA,EACF,CAAC,EAEa;AAChB;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
package/dist/cjs/sql.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
8
|
-
}, __copyProps = (to, from, except, desc) => {
|
|
9
|
-
if (from && typeof from == "object" || typeof from == "function")
|
|
10
|
-
for (let key of __getOwnPropNames(from))
|
|
11
|
-
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
15
|
-
var sql_exports = {};
|
|
16
|
-
__export(sql_exports, {
|
|
17
|
-
createSql: () => createSql,
|
|
18
|
-
setDefaultPool: () => setDefaultPool,
|
|
19
|
-
sql: () => sql
|
|
20
|
-
});
|
|
21
|
-
module.exports = __toCommonJS(sql_exports);
|
|
22
|
-
var import_helpers = require("@take-out/helpers");
|
|
23
|
-
const createSql = (pool) => (strings, ...values) => {
|
|
24
|
-
const text = strings.reduce((result, str, i) => result + str + (i < values.length ? `$${i + 1}` : ""), "");
|
|
25
|
-
return process.env.DEBUG && console.info(`sql: ${(0, import_helpers.ellipsis)(text, 80)}`), pool.query(text.trim(), values);
|
|
26
|
-
};
|
|
27
|
-
let defaultPool = null;
|
|
28
|
-
const setDefaultPool = (pool) => {
|
|
29
|
-
defaultPool = pool;
|
|
30
|
-
}, sql = (strings, ...values) => {
|
|
31
|
-
if (!defaultPool)
|
|
32
|
-
throw new Error("No default pool set. Call setDefaultPool() first or use createSql()");
|
|
33
|
-
return createSql(defaultPool)(strings, ...values);
|
|
34
|
-
};
|
|
35
|
-
//# sourceMappingURL=sql.js.map
|
package/dist/cjs/sql.js.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/sql.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAyB;AASlB,MAAM,YAAY,CAAC,SACjB,CAAC,YAAkC,WAA6C;AACrF,QAAM,OAAO,QAAQ,OAAO,CAAC,QAAQ,KAAK,MACjC,SAAS,OAAO,IAAI,OAAO,SAAS,IAAI,IAAI,CAAC,KAAK,KACxD,EAAE;AAEL,SAAI,QAAQ,IAAI,SACd,QAAQ,KAAK,YAAQ,yBAAS,MAAM,EAAE,CAAC,EAAE,GAGpC,KAAK,MAAM,KAAK,KAAK,GAAG,MAAM;AACvC;AAIF,IAAI,cAA2B;AAExB,MAAM,iBAAiB,CAAC,SAAe;AAC5C,gBAAc;AAChB,GAEa,MAAM,CACjB,YACG,WAC2B;AAC9B,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,qEAAqE;AAEvF,SAAO,UAAU,WAAW,EAAE,SAAS,GAAG,MAAM;AAClD;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
package/dist/esm/build.js
DELETED
package/dist/esm/build.js.map
DELETED
package/dist/esm/chunkedQuery.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
async function processInChunks(client, query, processor, options = {}) {
|
|
2
|
-
const { chunkSize = 1e3, onProgress } = options;
|
|
3
|
-
let offset = 0, hasMore = !0, totalProcessed = 0;
|
|
4
|
-
const countQuery = query.replace(/SELECT .+ FROM/, "SELECT COUNT(*) FROM").replace(/ORDER BY .+/, ""), countResult = await client.query(countQuery), totalCount = Number.parseInt(countResult.rows[0].count, 10);
|
|
5
|
-
for (; hasMore; ) {
|
|
6
|
-
const paginatedQuery = `${query} LIMIT ${chunkSize} OFFSET ${offset}`, result = await client.query(paginatedQuery);
|
|
7
|
-
if (result.rows.length === 0) {
|
|
8
|
-
hasMore = !1;
|
|
9
|
-
break;
|
|
10
|
-
}
|
|
11
|
-
await processor(result.rows), totalProcessed += result.rows.length, offset += chunkSize, onProgress && onProgress(totalProcessed, totalCount), result.rows.length < chunkSize && (hasMore = !1);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
async function updateInChunks(client, tableName, selectQuery, transformer, options = {}) {
|
|
15
|
-
let totalUpdated = 0;
|
|
16
|
-
return await processInChunks(
|
|
17
|
-
client,
|
|
18
|
-
selectQuery,
|
|
19
|
-
async (rows) => {
|
|
20
|
-
for (const row of rows) {
|
|
21
|
-
const updates = await transformer(row);
|
|
22
|
-
if (updates && Object.keys(updates).length > 0) {
|
|
23
|
-
const setClause = Object.keys(updates).map((key, index) => `${key} = $${index + 2}`).join(", "), values = [row.id, ...Object.values(updates)];
|
|
24
|
-
await client.query(`UPDATE ${tableName} SET ${setClause} WHERE id = $1`, values), totalUpdated++;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
options
|
|
29
|
-
), totalUpdated;
|
|
30
|
-
}
|
|
31
|
-
export {
|
|
32
|
-
processInChunks,
|
|
33
|
-
updateInChunks
|
|
34
|
-
};
|
|
35
|
-
//# sourceMappingURL=chunkedQuery.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/chunkedQuery.ts"],
|
|
4
|
-
"mappings": "AAUA,eAAsB,gBACpB,QACA,OACA,WACA,UAA+B,CAAC,GACjB;AACf,QAAM,EAAE,YAAY,KAAM,WAAW,IAAI;AACzC,MAAI,SAAS,GACT,UAAU,IACV,iBAAiB;AAGrB,QAAM,aAAa,MAChB,QAAQ,kBAAkB,sBAAsB,EAChD,QAAQ,eAAe,EAAE,GACtB,cAAc,MAAM,OAAO,MAAM,UAAU,GAC3C,aAAa,OAAO,SAAS,YAAY,KAAK,CAAC,EAAE,OAAO,EAAE;AAEhE,SAAO,WAAS;AACd,UAAM,iBAAiB,GAAG,KAAK,UAAU,SAAS,WAAW,MAAM,IAC7D,SAAS,MAAM,OAAO,MAAS,cAAc;AAEnD,QAAI,OAAO,KAAK,WAAW,GAAG;AAC5B,gBAAU;AACV;AAAA,IACF;AAEA,UAAM,UAAU,OAAO,IAAI,GAE3B,kBAAkB,OAAO,KAAK,QAC9B,UAAU,WAEN,cACF,WAAW,gBAAgB,UAAU,GAInC,OAAO,KAAK,SAAS,cACvB,UAAU;AAAA,EAEd;AACF;AAKA,eAAsB,eACpB,QACA,WACA,aACA,aACA,UAA+B,CAAC,GACf;AACjB,MAAI,eAAe;AAEnB,eAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,OAAO,SAAS;AACd,iBAAW,OAAO,MAAM;AACtB,cAAM,UAAU,MAAM,YAAY,GAAG;AAErC,YAAI,WAAW,OAAO,KAAK,OAAO,EAAE,SAAS,GAAG;AAE9C,gBAAM,YAAY,OAAO,KAAK,OAAO,EAClC,IAAI,CAAC,KAAK,UAAU,GAAG,GAAG,OAAO,QAAQ,CAAC,EAAE,EAC5C,KAAK,IAAI,GAEN,SAAS,CAAC,IAAI,IAAI,GAAG,OAAO,OAAO,OAAO,CAAC;AAEjD,gBAAM,OAAO,MAAM,UAAU,SAAS,QAAQ,SAAS,kBAAkB,MAAM,GAE/E;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,EACF,GAEO;AACT;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
package/dist/esm/cli.js
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { defineCommand, runMain } from "citty";
|
|
4
|
-
import { buildMigrations as buildMigrationsRun } from "./scripts/build-migrations";
|
|
5
|
-
import { syncDrizzleMigrations } from "./scripts/drizzle-migrations-sync";
|
|
6
|
-
import { addMigration } from "./scripts/migration-add";
|
|
7
|
-
import { runPgDump } from "./scripts/pg_dump";
|
|
8
|
-
import { runPsql } from "./scripts/psql";
|
|
9
|
-
const syncDrizzle = defineCommand({
|
|
10
|
-
meta: {
|
|
11
|
-
name: "sync-drizzle",
|
|
12
|
-
description: "Sync Drizzle SQL migrations to TypeScript wrappers"
|
|
13
|
-
},
|
|
14
|
-
args: {
|
|
15
|
-
dir: {
|
|
16
|
-
type: "string",
|
|
17
|
-
description: "Migrations directory",
|
|
18
|
-
required: !1,
|
|
19
|
-
default: "./src/database/migrations"
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
async run({ args }) {
|
|
23
|
-
const migrationsDir = join(process.cwd(), args.dir);
|
|
24
|
-
console.info(`Syncing migrations in ${migrationsDir}`), await syncDrizzleMigrations({ migrationsDir });
|
|
25
|
-
}
|
|
26
|
-
}), buildMigrations = defineCommand({
|
|
27
|
-
meta: {
|
|
28
|
-
name: "build-migrations",
|
|
29
|
-
description: "Build migration bundle for deployment"
|
|
30
|
-
},
|
|
31
|
-
args: {
|
|
32
|
-
dir: {
|
|
33
|
-
type: "string",
|
|
34
|
-
description: "Migrations directory",
|
|
35
|
-
required: !1,
|
|
36
|
-
default: "./src/database/migrations"
|
|
37
|
-
},
|
|
38
|
-
out: {
|
|
39
|
-
type: "string",
|
|
40
|
-
description: "Output file name",
|
|
41
|
-
required: !1,
|
|
42
|
-
default: "migrate-dist.js"
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
async run({ args }) {
|
|
46
|
-
const migrationsDir = join(process.cwd(), args.dir);
|
|
47
|
-
await buildMigrationsRun({
|
|
48
|
-
migrationsDir,
|
|
49
|
-
outFile: args.out
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
}), migrationAdd = defineCommand({
|
|
53
|
-
meta: {
|
|
54
|
-
name: "migrate:add",
|
|
55
|
-
description: "Create a new custom TypeScript migration"
|
|
56
|
-
},
|
|
57
|
-
args: {
|
|
58
|
-
name: {
|
|
59
|
-
type: "positional",
|
|
60
|
-
description: "Migration name",
|
|
61
|
-
required: !1
|
|
62
|
-
},
|
|
63
|
-
dir: {
|
|
64
|
-
type: "string",
|
|
65
|
-
description: "Migrations directory",
|
|
66
|
-
required: !1,
|
|
67
|
-
default: "./src/database/migrations"
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
async run({ args }) {
|
|
71
|
-
const migrationsDir = join(process.cwd(), args.dir);
|
|
72
|
-
addMigration({ migrationsDir, name: args.name });
|
|
73
|
-
}
|
|
74
|
-
}), psql = defineCommand({
|
|
75
|
-
meta: {
|
|
76
|
-
name: "psql",
|
|
77
|
-
description: "Connect to PostgreSQL database with psql"
|
|
78
|
-
},
|
|
79
|
-
args: {
|
|
80
|
-
connectionString: {
|
|
81
|
-
type: "string",
|
|
82
|
-
description: "PostgreSQL connection string",
|
|
83
|
-
required: !1
|
|
84
|
-
},
|
|
85
|
-
query: {
|
|
86
|
-
type: "string",
|
|
87
|
-
description: "Query to execute",
|
|
88
|
-
required: !1
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
async run({ args }) {
|
|
92
|
-
const connectionString = args.connectionString || process.env.ZERO_UPSTREAM_DB;
|
|
93
|
-
connectionString || (console.error(
|
|
94
|
-
"No connection string provided. Set ZERO_UPSTREAM_DB or pass --connectionString"
|
|
95
|
-
), process.exit(1));
|
|
96
|
-
const exitCode = runPsql({ connectionString, query: args.query });
|
|
97
|
-
process.exit(exitCode || 0);
|
|
98
|
-
}
|
|
99
|
-
}), pgDump = defineCommand({
|
|
100
|
-
meta: {
|
|
101
|
-
name: "pg_dump",
|
|
102
|
-
description: "Dump PostgreSQL database using pg_dump"
|
|
103
|
-
},
|
|
104
|
-
args: {
|
|
105
|
-
connectionString: {
|
|
106
|
-
type: "string",
|
|
107
|
-
description: "PostgreSQL connection string",
|
|
108
|
-
required: !1
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
async run({ args }) {
|
|
112
|
-
const connectionString = args.connectionString || process.env.ZERO_UPSTREAM_DB;
|
|
113
|
-
connectionString || (console.error(
|
|
114
|
-
"No connection string provided. Set ZERO_UPSTREAM_DB or pass --connectionString"
|
|
115
|
-
), process.exit(1));
|
|
116
|
-
const cliArgs = process.argv.slice(3), exitCode = runPgDump({ connectionString, args: cliArgs });
|
|
117
|
-
process.exit(exitCode || 0);
|
|
118
|
-
}
|
|
119
|
-
}), main = defineCommand({
|
|
120
|
-
meta: {
|
|
121
|
-
name: "postgres",
|
|
122
|
-
description: "PostgreSQL database utilities and migration tools",
|
|
123
|
-
version: "0.0.1"
|
|
124
|
-
},
|
|
125
|
-
subCommands: {
|
|
126
|
-
"sync-drizzle": syncDrizzle,
|
|
127
|
-
"build-migrations": buildMigrations,
|
|
128
|
-
"migrate:add": migrationAdd,
|
|
129
|
-
psql,
|
|
130
|
-
pg_dump: pgDump
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
runMain(main);
|
|
134
|
-
//# sourceMappingURL=cli.js.map
|
package/dist/esm/cli.js.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/cli.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
package/dist/esm/createDb.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { drizzle } from "drizzle-orm/node-postgres";
|
|
2
|
-
import { createPool } from "./createPool";
|
|
3
|
-
const createDb = (connectionString, schema) => {
|
|
4
|
-
const pool = createPool(connectionString);
|
|
5
|
-
return drizzle(pool, {
|
|
6
|
-
schema,
|
|
7
|
-
logger: !1
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
export {
|
|
11
|
-
createDb
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=createDb.js.map
|
package/dist/esm/createDb.js.map
DELETED
package/dist/esm/createPool.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { getDBClient } from "./getDBClient";
|
|
2
|
-
import { createSql, setDefaultPool } from "./sql";
|
|
3
|
-
function createServerHelpers(pool) {
|
|
4
|
-
const sql = createSql(pool);
|
|
5
|
-
return setDefaultPool(pool), {
|
|
6
|
-
sql,
|
|
7
|
-
getDBClient: (options = {}) => getDBClient({ pool, ...options })
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
export {
|
|
11
|
-
createServerHelpers
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=createServerHelpers.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/createServerHelpers.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,mBAA4C;AACrD,SAAS,WAAW,sBAAsB;AAWnC,SAAS,oBAAoB,MAA2B;AAC7D,QAAM,MAAM,UAAU,IAAI;AAC1B,wBAAe,IAAI,GAEZ;AAAA,IACL;AAAA,IACA,aAAa,CAAC,UAAU,CAAC,MAAM,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC;AAAA,EACjE;AACF;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
package/dist/esm/getDBClient.js
DELETED
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import pg from "pg";
|
|
2
|
-
const cache = /* @__PURE__ */ new Map(), createPoolKey = (connectionString) => connectionString, getOrCreatePoolCache = (connectionString, config) => {
|
|
3
|
-
const key = createPoolKey(connectionString);
|
|
4
|
-
return cache.has(key) || cache.set(key, {
|
|
5
|
-
pool: new pg.Pool(config),
|
|
6
|
-
maxConnections: null,
|
|
7
|
-
reservedConnections: null,
|
|
8
|
-
openedConnections: null,
|
|
9
|
-
openedConnectionsLastUpdate: null
|
|
10
|
-
}), cache.get(key);
|
|
11
|
-
};
|
|
12
|
-
async function getDBClient(options = {}) {
|
|
13
|
-
const { pool, connectionString, retries = 8 } = options;
|
|
14
|
-
if (!pool && !connectionString)
|
|
15
|
-
throw new Error("Either pool or connectionString must be provided");
|
|
16
|
-
let client = null;
|
|
17
|
-
try {
|
|
18
|
-
return client = await tryToGetNewClientFromPool(pool, connectionString, retries), client;
|
|
19
|
-
} catch (error) {
|
|
20
|
-
throw console.error("Failed to get DB client:", error), error;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
async function tryToGetNewClientFromPool(providedPool, connectionString, retries) {
|
|
24
|
-
const { default: retry } = await import("async-retry");
|
|
25
|
-
return await retry(
|
|
26
|
-
async () => {
|
|
27
|
-
if (providedPool)
|
|
28
|
-
return await providedPool.connect();
|
|
29
|
-
if (!connectionString)
|
|
30
|
-
throw new Error("No connection string provided");
|
|
31
|
-
return await getOrCreatePoolCache(connectionString, {
|
|
32
|
-
connectionString,
|
|
33
|
-
connectionTimeoutMillis: 5e3,
|
|
34
|
-
// idle_session_timeout set to 35s on server, client timeout at 30s
|
|
35
|
-
// fix via https://github.com/brianc/node-postgres/issues/2718#issuecomment-2094885323
|
|
36
|
-
idleTimeoutMillis: 3e4,
|
|
37
|
-
allowExitOnIdle: !0
|
|
38
|
-
}).pool.connect();
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
retries,
|
|
42
|
-
minTimeout: 300,
|
|
43
|
-
factor: 2,
|
|
44
|
-
maxTimeout: 8e3
|
|
45
|
-
}
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
async function queryDb(queryText, params, options = {}) {
|
|
49
|
-
let client = null;
|
|
50
|
-
try {
|
|
51
|
-
return client = await tryToGetNewClientFromPool(
|
|
52
|
-
options.pool,
|
|
53
|
-
options.connectionString,
|
|
54
|
-
options.retries || 8
|
|
55
|
-
), await client.query(queryText, params);
|
|
56
|
-
} catch (error) {
|
|
57
|
-
throw console.error("Database query failed:", {
|
|
58
|
-
query: queryText,
|
|
59
|
-
error: error instanceof Error ? error.message : String(error)
|
|
60
|
-
}), error;
|
|
61
|
-
} finally {
|
|
62
|
-
if (client && options.connectionString)
|
|
63
|
-
if (await checkForTooManyConnections(
|
|
64
|
-
client,
|
|
65
|
-
options.connectionString
|
|
66
|
-
)) {
|
|
67
|
-
const poolCache = cache.get(createPoolKey(options.connectionString));
|
|
68
|
-
client.release(), await poolCache?.pool.end(), poolCache && cache.delete(createPoolKey(options.connectionString));
|
|
69
|
-
} else
|
|
70
|
-
client.release();
|
|
71
|
-
else client && client.release();
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
async function checkForTooManyConnections(client, connectionString) {
|
|
75
|
-
const poolCache = cache.get(createPoolKey(connectionString));
|
|
76
|
-
if (!poolCache) return !1;
|
|
77
|
-
const currentTime = Date.now(), openedConnectionsMaxAge = 1e4, maxConnectionsTolerance = 0.9;
|
|
78
|
-
if (poolCache.maxConnections === null || poolCache.reservedConnections === null) {
|
|
79
|
-
const [maxConnections, reservedConnections] = await getConnectionLimits(client);
|
|
80
|
-
poolCache.maxConnections = maxConnections, poolCache.reservedConnections = reservedConnections;
|
|
81
|
-
}
|
|
82
|
-
if (poolCache.openedConnections === null || poolCache.openedConnectionsLastUpdate === null || currentTime - poolCache.openedConnectionsLastUpdate > openedConnectionsMaxAge) {
|
|
83
|
-
const openedConnections = await getOpenedConnections(client, connectionString);
|
|
84
|
-
poolCache.openedConnections = openedConnections, poolCache.openedConnectionsLastUpdate = currentTime;
|
|
85
|
-
}
|
|
86
|
-
return poolCache.openedConnections > (poolCache.maxConnections - poolCache.reservedConnections) * maxConnectionsTolerance ? (console.warn(
|
|
87
|
-
`Too many connections detected: ${poolCache.openedConnections}/${poolCache.maxConnections - poolCache.reservedConnections}`
|
|
88
|
-
), !0) : !1;
|
|
89
|
-
}
|
|
90
|
-
async function getConnectionLimits(client) {
|
|
91
|
-
const maxConnectionsResult = await client.query("SHOW max_connections"), reservedConnectionResult = await client.query(
|
|
92
|
-
"SHOW superuser_reserved_connections"
|
|
93
|
-
);
|
|
94
|
-
return [
|
|
95
|
-
Number.parseInt(maxConnectionsResult.rows[0].max_connections, 10),
|
|
96
|
-
Number.parseInt(reservedConnectionResult.rows[0].superuser_reserved_connections, 10)
|
|
97
|
-
];
|
|
98
|
-
}
|
|
99
|
-
async function getOpenedConnections(client, connectionString) {
|
|
100
|
-
const dbName = new URL(connectionString).pathname.slice(1), openConnectionsResult = await client.query(
|
|
101
|
-
"SELECT numbackends as opened_connections FROM pg_stat_database WHERE datname = $1",
|
|
102
|
-
[dbName]
|
|
103
|
-
);
|
|
104
|
-
return Number.parseInt(
|
|
105
|
-
openConnectionsResult.rows[0]?.opened_connections || 0,
|
|
106
|
-
10
|
|
107
|
-
);
|
|
108
|
-
}
|
|
109
|
-
async function getNewClient(options = {}) {
|
|
110
|
-
const { connectionString } = options;
|
|
111
|
-
if (!connectionString)
|
|
112
|
-
throw new Error("connectionString is required for getNewClient");
|
|
113
|
-
try {
|
|
114
|
-
return await tryToGetNewClient(connectionString);
|
|
115
|
-
} catch (error) {
|
|
116
|
-
throw console.error("Failed to get new client:", error), error;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
async function tryToGetNewClient(connectionString) {
|
|
120
|
-
const configurations = {
|
|
121
|
-
connectionString,
|
|
122
|
-
connectionTimeoutMillis: 5e3,
|
|
123
|
-
idleTimeoutMillis: 3e4,
|
|
124
|
-
allowExitOnIdle: !0
|
|
125
|
-
}, { default: retry } = await import("async-retry");
|
|
126
|
-
return await retry(
|
|
127
|
-
async () => {
|
|
128
|
-
const newClient = new pg.Client(configurations);
|
|
129
|
-
return await newClient.connect(), newClient;
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
retries: 10,
|
|
133
|
-
minTimeout: 100,
|
|
134
|
-
factor: 2,
|
|
135
|
-
maxTimeout: 5e3
|
|
136
|
-
}
|
|
137
|
-
);
|
|
138
|
-
}
|
|
139
|
-
export {
|
|
140
|
-
getDBClient,
|
|
141
|
-
getNewClient,
|
|
142
|
-
queryDb
|
|
143
|
-
};
|
|
144
|
-
//# sourceMappingURL=getDBClient.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/getDBClient.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|