befly 3.17.16 → 3.18.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/checks/config.js +2 -1
- package/configs/beflyConfig.json +2 -1
- package/lib/dbHelper/builders.js +5 -1
- package/lib/dbHelper/dataOps.js +7 -7
- package/lib/dbHelper/index.js +1 -0
- package/lib/dbHelper/transaction.js +1 -1
- package/package.json +2 -2
- package/plugins/mysql.js +2 -1
- package/scripts/syncDb/context.js +2 -1
package/checks/config.js
CHANGED
package/configs/beflyConfig.json
CHANGED
package/lib/dbHelper/builders.js
CHANGED
|
@@ -355,7 +355,11 @@ export function processJoinOn(on) {
|
|
|
355
355
|
return result;
|
|
356
356
|
}
|
|
357
357
|
|
|
358
|
-
export function addDefaultStateFilter(where = {}, table, hasJoins = false) {
|
|
358
|
+
export function addDefaultStateFilter(where = {}, table, hasJoins = false, enableStateFilter = true) {
|
|
359
|
+
if (!enableStateFilter) {
|
|
360
|
+
return where;
|
|
361
|
+
}
|
|
362
|
+
|
|
359
363
|
const hasStateCondition = Object.keys(where).some((key) => key.startsWith("state") || key.includes(".state"));
|
|
360
364
|
if (hasStateCondition) {
|
|
361
365
|
return where;
|
package/lib/dbHelper/dataOps.js
CHANGED
|
@@ -13,7 +13,7 @@ export const dataOpsMethods = {
|
|
|
13
13
|
const { table, where, joins, tableQualifier } = await this.prepareQueryOptions(options, "getCount.options");
|
|
14
14
|
const hasJoins = Array.isArray(joins) && joins.length > 0;
|
|
15
15
|
|
|
16
|
-
const whereFiltered = addDefaultStateFilter(where, tableQualifier, hasJoins);
|
|
16
|
+
const whereFiltered = addDefaultStateFilter(where, tableQualifier, hasJoins, this.enableStateFilter);
|
|
17
17
|
const result = await this.fetchCount({ table: table, joins: joins }, whereFiltered, "COUNT(*) as count");
|
|
18
18
|
|
|
19
19
|
return {
|
|
@@ -26,7 +26,7 @@ export const dataOpsMethods = {
|
|
|
26
26
|
const { table, fields, where, joins, tableQualifier } = await this.prepareQueryOptions(options, "getOne.options");
|
|
27
27
|
const hasJoins = Array.isArray(joins) && joins.length > 0;
|
|
28
28
|
|
|
29
|
-
const whereFiltered = addDefaultStateFilter(where, tableQualifier, hasJoins);
|
|
29
|
+
const whereFiltered = addDefaultStateFilter(where, tableQualifier, hasJoins, this.enableStateFilter);
|
|
30
30
|
const builder = this.createSqlBuilder().select(fields).from(table).where(whereFiltered);
|
|
31
31
|
this.applyJoins(builder, joins);
|
|
32
32
|
|
|
@@ -50,7 +50,7 @@ export const dataOpsMethods = {
|
|
|
50
50
|
validatePageLimitRange(prepared, options.table);
|
|
51
51
|
|
|
52
52
|
const hasJoins = Array.isArray(prepared.joins) && prepared.joins.length > 0;
|
|
53
|
-
const whereFiltered = addDefaultStateFilter(prepared.where, prepared.tableQualifier, hasJoins);
|
|
53
|
+
const whereFiltered = addDefaultStateFilter(prepared.where, prepared.tableQualifier, hasJoins, this.enableStateFilter);
|
|
54
54
|
const countResult = await this.fetchCount(prepared, whereFiltered, "COUNT(*) as total");
|
|
55
55
|
const total = countResult.total;
|
|
56
56
|
|
|
@@ -102,7 +102,7 @@ export const dataOpsMethods = {
|
|
|
102
102
|
const prepared = await this.prepareQueryOptions(prepareOptions, "getAll.options");
|
|
103
103
|
|
|
104
104
|
const hasJoins = Array.isArray(prepared.joins) && prepared.joins.length > 0;
|
|
105
|
-
const whereFiltered = addDefaultStateFilter(prepared.where, prepared.tableQualifier, hasJoins);
|
|
105
|
+
const whereFiltered = addDefaultStateFilter(prepared.where, prepared.tableQualifier, hasJoins, this.enableStateFilter);
|
|
106
106
|
const countResult = await this.fetchCount(prepared, whereFiltered, "COUNT(*) as total");
|
|
107
107
|
const total = countResult.total;
|
|
108
108
|
|
|
@@ -150,7 +150,7 @@ export const dataOpsMethods = {
|
|
|
150
150
|
validateNoJoinReadOptions(options, "exists", "exists 不支持 joins(请使用显式 query 或拆分查询)");
|
|
151
151
|
const snakeTable = snakeCase(options.table);
|
|
152
152
|
const snakeWhere = whereKeysToSnake(clearDeep(options.where || {}));
|
|
153
|
-
const whereFiltered = addDefaultStateFilter(snakeWhere, snakeTable, false);
|
|
153
|
+
const whereFiltered = addDefaultStateFilter(snakeWhere, snakeTable, false, this.enableStateFilter);
|
|
154
154
|
|
|
155
155
|
const builder = this.createSqlBuilder().selectRaw("COUNT(1) as cnt").from(snakeTable).where(whereFiltered).limit(1);
|
|
156
156
|
const { sql, params } = builder.toSelectSql();
|
|
@@ -405,7 +405,7 @@ export const dataOpsMethods = {
|
|
|
405
405
|
const snakeWhere = whereKeysToSnake(clearDeep(where));
|
|
406
406
|
|
|
407
407
|
const processed = buildUpdateRow({ data: data, now: Date.now(), allowState: true });
|
|
408
|
-
const whereFiltered = addDefaultStateFilter(snakeWhere, snakeTable, false);
|
|
408
|
+
const whereFiltered = addDefaultStateFilter(snakeWhere, snakeTable, false, this.enableStateFilter);
|
|
409
409
|
const builder = this.createSqlBuilder().where(whereFiltered);
|
|
410
410
|
const { sql, params } = builder.toUpdateSql(snakeTable, processed);
|
|
411
411
|
|
|
@@ -478,7 +478,7 @@ export const dataOpsMethods = {
|
|
|
478
478
|
const snakeField = snakeCase(field);
|
|
479
479
|
|
|
480
480
|
const snakeWhere = whereKeysToSnake(clearDeep(where));
|
|
481
|
-
const whereFiltered = addDefaultStateFilter(snakeWhere, snakeTable, false);
|
|
481
|
+
const whereFiltered = addDefaultStateFilter(snakeWhere, snakeTable, false, this.enableStateFilter);
|
|
482
482
|
const builder = this.createSqlBuilder().where(whereFiltered);
|
|
483
483
|
const { sql: whereClause, params: whereParams } = builder.getWhereConditions();
|
|
484
484
|
|
package/lib/dbHelper/index.js
CHANGED
|
@@ -19,6 +19,7 @@ function DbHelper(options) {
|
|
|
19
19
|
this.sql = options.sql || null;
|
|
20
20
|
this.isTransaction = Boolean(options.sql);
|
|
21
21
|
this.idMode = options.idMode === "autoId" ? "autoId" : "timeId";
|
|
22
|
+
this.enableStateFilter = options.stateFilter === 0 ? false : true;
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
Object.assign(DbHelper.prototype, builderMethods, executeMethods, dataOpsMethods, transactionMethods);
|
|
@@ -26,7 +26,7 @@ export const transactionMethods = {
|
|
|
26
26
|
|
|
27
27
|
try {
|
|
28
28
|
return await sql.begin(async (tx) => {
|
|
29
|
-
const trans = new this.constructor({ redis: this.redis, dbName: this.dbName, sql: tx, idMode: this.idMode });
|
|
29
|
+
const trans = new this.constructor({ redis: this.redis, dbName: this.dbName, sql: tx, idMode: this.idMode, stateFilter: this.enableStateFilter ? 1 : 0 });
|
|
30
30
|
const result = await callback(trans);
|
|
31
31
|
if (isBeflyResponse(result) && result.code !== 0) {
|
|
32
32
|
throw new TransAbortError(result);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "befly",
|
|
3
|
-
"version": "3.
|
|
4
|
-
"gitHead": "
|
|
3
|
+
"version": "3.18.0",
|
|
4
|
+
"gitHead": "1d9785d976aaa758c598e30055570a607b0a0574",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Befly - 为 Bun 专属打造的 JavaScript API 接口框架核心引擎",
|
|
7
7
|
"keywords": [
|
package/plugins/mysql.js
CHANGED
|
@@ -19,7 +19,8 @@ export default {
|
|
|
19
19
|
redis: befly.redis,
|
|
20
20
|
dbName: befly.config?.mysql?.database,
|
|
21
21
|
sql: Connect.getMysql(),
|
|
22
|
-
idMode: befly.config?.mysql?.idMode
|
|
22
|
+
idMode: befly.config?.mysql?.idMode,
|
|
23
|
+
stateFilter: befly.config?.mysql?.stateFilter
|
|
23
24
|
});
|
|
24
25
|
|
|
25
26
|
return dbManager;
|
|
@@ -67,7 +67,8 @@ export async function prepareSyncDbBaseContext(mysqlConfig) {
|
|
|
67
67
|
redis: null,
|
|
68
68
|
dbName: mysqlConfig.database,
|
|
69
69
|
sql: Connect.getMysql(),
|
|
70
|
-
idMode: mysqlConfig.idMode
|
|
70
|
+
idMode: mysqlConfig.idMode,
|
|
71
|
+
stateFilter: mysqlConfig.stateFilter
|
|
71
72
|
});
|
|
72
73
|
|
|
73
74
|
const dbColumns = await querySyncDbColumns(mysql);
|