mm_dao 1.8.2 → 1.8.3

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.
Files changed (2) hide show
  1. package/lib/dao.js +11 -2
  2. package/package.json +1 -1
package/lib/dao.js CHANGED
@@ -1152,17 +1152,26 @@ Dao.prototype.main = async function (params, db) {
1152
1152
  var safe_table = typeof table === 'string' && string.validate(table, 'username') ? table : '';
1153
1153
 
1154
1154
  // 设置操作的数据表
1155
+ var table_name;
1155
1156
  if (string.has(cg.table, '*{0}*')) {
1156
1157
  if (table) {
1157
1158
  if (!safe_table) {
1158
1159
  return getRet().error(30001, '表名包含无效字符');
1159
1160
  }
1160
- db.table = cg.table.replace('{0}', safe_table);
1161
+ table_name = cg.table.replace('{0}', safe_table);
1161
1162
  } else {
1162
1163
  return getRet().error(30001, '表名不能为空');
1163
1164
  }
1164
1165
  } else {
1165
- db.table = cg.table + '';
1166
+ table_name = cg.table + '';
1167
+ }
1168
+ db.table = table_name;
1169
+
1170
+ // 兼容传入数据管理器(无 config,只有 new/getSql 等方法)的场景:
1171
+ // 派生一张绑定表名的表模型,使 getSql/getCountSql/groupCountSql 等
1172
+ // 表级方法与 config.filter 可用;传入的已是表模型时保持不变
1173
+ if (db && db.config === undefined && typeof db.new === 'function') {
1174
+ db = db.new(table_name, cg.key);
1166
1175
  }
1167
1176
 
1168
1177
  return await this[method](db, qy, { ...body });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mm_dao",
3
- "version": "1.8.2",
3
+ "version": "1.8.3",
4
4
  "description": "一个通用的SQL帮助类,支持通过切换db_type实现对不同数据库的操作,包括MySQL和SQLite等;另提供 manager.js/drive.js 的SQL模板管理器(融合自 mm_os com/sql,基于 mm_corejs,内置管理器池,无全局/原型扩展依赖)",
5
5
  "main": "index.js",
6
6
  "scripts": {