pqb 0.35.6 → 0.36.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/index.d.ts +16 -6
- package/dist/index.js +33 -19
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +34 -20
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ExpressionTypeMethod, Expression, RawSQLBase, emptyObject, isTemplateLiteralArgs, ColumnTypeBase, setColumnData, pushColumnData, quoteObjectKey, toArray, singleQuote, addCode, singleQuoteArray, objectHasValues, columnDefaultArgumentToCode, columnErrorMessagesToCode, getValueKey, addValue, isExpression, joinTruthy, numberDataToCode, stringDataToCode, getDefaultLanguage, dateDataToCode, pushOrNewArrayToObject, returnArg as returnArg$1, noop, arrayDataToCode, emptyArray, applyTransforms, callWithThis, setParserToQuery, isRawSQL, pushOrNewArray, setDefaultNowFn, setDefaultLanguage, makeTimestampsHelpers, setCurrentColumnName, setAdapterConnectRetry, isObjectEmpty, ValExpression, applyMixins,
|
|
1
|
+
import { ExpressionTypeMethod, Expression, RawSQLBase, emptyObject, isTemplateLiteralArgs, ColumnTypeBase, setColumnData, pushColumnData, quoteObjectKey, toArray, singleQuote, addCode, singleQuoteArray, objectHasValues, columnDefaultArgumentToCode, columnErrorMessagesToCode, getValueKey, addValue, isExpression, joinTruthy, numberDataToCode, stringDataToCode, getDefaultLanguage, toSnakeCase, dateDataToCode, pushOrNewArrayToObject, returnArg as returnArg$1, noop, arrayDataToCode, emptyArray, applyTransforms, callWithThis, setParserToQuery, isRawSQL, pushOrNewArray, setDefaultNowFn, setDefaultLanguage, makeTimestampsHelpers, setCurrentColumnName, setAdapterConnectRetry, isObjectEmpty, ValExpression, applyMixins, snakeCaseKey } from 'orchid-core';
|
|
2
2
|
import pg from 'pg';
|
|
3
3
|
import { inspect } from 'node:util';
|
|
4
4
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
@@ -378,7 +378,8 @@ class ColumnType extends ColumnTypeBase {
|
|
|
378
378
|
* @param args - raw SQL
|
|
379
379
|
*/
|
|
380
380
|
generated(...args) {
|
|
381
|
-
|
|
381
|
+
const sql = raw(...args);
|
|
382
|
+
return setColumnData(this, "generated", (...args2) => sql.toSQL(...args2));
|
|
382
383
|
}
|
|
383
384
|
}
|
|
384
385
|
|
|
@@ -459,6 +460,10 @@ const columnsShapeToCode = (shape, t) => {
|
|
|
459
460
|
for (const key in shape) {
|
|
460
461
|
if (hasTimestamps && (key === "createdAt" || key === "updatedAt"))
|
|
461
462
|
continue;
|
|
463
|
+
const column = shape[key];
|
|
464
|
+
const name = column.data.name;
|
|
465
|
+
if (name === key)
|
|
466
|
+
column.data.name = void 0;
|
|
462
467
|
code.push(
|
|
463
468
|
...combineCodeElements([
|
|
464
469
|
`${quoteObjectKey(key)}: `,
|
|
@@ -466,6 +471,8 @@ const columnsShapeToCode = (shape, t) => {
|
|
|
466
471
|
","
|
|
467
472
|
])
|
|
468
473
|
);
|
|
474
|
+
if (name === key)
|
|
475
|
+
column.data.name = name;
|
|
469
476
|
}
|
|
470
477
|
if (hasTimestamps) {
|
|
471
478
|
code.push(`...${t}.timestamps(),`);
|
|
@@ -1515,26 +1522,33 @@ class TsVectorColumn extends ColumnType {
|
|
|
1515
1522
|
* @param args
|
|
1516
1523
|
*/
|
|
1517
1524
|
generated(...args) {
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1525
|
+
return setColumnData(this, "generated", (ctx, quotedAs) => {
|
|
1526
|
+
const first = args[0];
|
|
1527
|
+
if (typeof first === "string" || !("raw" in first)) {
|
|
1528
|
+
const target = typeof first === "string" ? args[1] : first;
|
|
1529
|
+
const language = typeof first === "string" ? first : this.defaultLanguage;
|
|
1530
|
+
const { snakeCase } = ctx;
|
|
1531
|
+
let sql;
|
|
1532
|
+
if (Array.isArray(target)) {
|
|
1533
|
+
const columns = target.length === 1 ? `"${snakeCase ? toSnakeCase(target[0]) : target[0]}"` : target.map(
|
|
1534
|
+
(column) => `coalesce("${snakeCase ? toSnakeCase(column) : column}", '')`
|
|
1535
|
+
).join(` || ' ' || `);
|
|
1536
|
+
sql = `to_tsvector('${language}', ${columns})`;
|
|
1537
|
+
} else {
|
|
1538
|
+
for (const key in target) {
|
|
1539
|
+
sql = (sql ? sql + " || " : "(") + `setweight(to_tsvector('${language}', coalesce("${snakeCase ? toSnakeCase(key) : key}", '')), '${target[key]}')`;
|
|
1540
|
+
}
|
|
1541
|
+
if (sql) {
|
|
1542
|
+
sql += ")";
|
|
1543
|
+
} else {
|
|
1544
|
+
throw new Error("Empty target in the text search generated column");
|
|
1545
|
+
}
|
|
1529
1546
|
}
|
|
1530
|
-
|
|
1531
|
-
|
|
1547
|
+
return sql;
|
|
1548
|
+
} else {
|
|
1549
|
+
return raw(...args).toSQL(ctx, quotedAs);
|
|
1532
1550
|
}
|
|
1533
|
-
|
|
1534
|
-
arr.raw = arr;
|
|
1535
|
-
args = [arr];
|
|
1536
|
-
}
|
|
1537
|
-
return super.generated(...args);
|
|
1551
|
+
});
|
|
1538
1552
|
}
|
|
1539
1553
|
}
|
|
1540
1554
|
class TsQueryColumn extends ColumnType {
|