mm_sqlite 1.2.2 → 1.2.4

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/link_model.js CHANGED
@@ -2,131 +2,128 @@
2
2
  * 连接数据库模型类
3
3
  * @class
4
4
  */
5
- class Link_model {
6
- /**
7
- * 构造函数
8
- * @param {Object} config 配置参数
9
- */
10
- constructor(config, sql) {
11
- /**
12
- * 配置参数
13
- */
14
- this.config = Object.assign({
15
- key: "user_id",
16
- value: 0,
17
- clear_prefix: true
18
- }, config);
5
+ class LinkModel {
6
+ /**
7
+ * 构造函数
8
+ * @param {object} config 配置参数
9
+ * @param sql
10
+ */
11
+ constructor(config, sql) {
12
+ /**
13
+ * 配置参数
14
+ */
15
+ this.config = {key: 'user_id',
16
+ value: 0,
17
+ clear_prefix: true, ...config};
19
18
 
20
- /**
21
- * 模型集合
22
- */
23
- this.model = {};
19
+ /**
20
+ * 模型集合
21
+ */
22
+ this.model = {};
24
23
 
25
- /**
26
- * 数据库集合
27
- */
28
- this.dbs = {};
24
+ /**
25
+ * 数据库集合
26
+ */
27
+ this.dbs = {};
29
28
 
30
- /**
31
- * 数据库集合
32
- */
33
- this.sql = sql;
34
- }
29
+ /**
30
+ * 数据库集合
31
+ */
32
+ this.sql = sql;
33
+ }
35
34
  }
36
35
 
37
36
  /**
38
37
  * 添加对象
39
- * @param {String} table 表名
40
- * @return {Object}
38
+ * @param {string} table 表名
39
+ * @returns {object}
41
40
  */
42
41
  Link_model.prototype.add = async function(table) {
43
- var {
44
- key,
45
- value,
46
- clear_prefix
47
- } = this.config;
48
- var db = this.sql.db();
49
- db.table = table;
50
- db.key = key;
51
- db.size = 1;
52
- db.page = 1;
53
- var query = {};
54
- query[key] = value;
55
- var obj = await db.getObj(query);
56
- if (!obj) {
57
- var n = await db.add(query);
58
- if (n) {
59
- obj = await db.getObj(query);
60
- }
61
- }
42
+ var {
43
+ key,
44
+ value,
45
+ clear_prefix
46
+ } = this.config;
47
+ var db = this.sql.db();
48
+ db.table = table;
49
+ db.key = key;
50
+ db.size = 1;
51
+ db.page = 1;
52
+ var query = {};
53
+ query[key] = value;
54
+ var obj = await db.getObj(query);
55
+ if (!obj) {
56
+ var n = await db.add(query);
57
+ if (n) {
58
+ obj = await db.getObj(query);
59
+ }
60
+ }
62
61
 
63
- var name = table;
64
- // 是否去除表前缀
65
- if (clear_prefix) {
66
- var arr = table.split("_");
67
- if (arr.length > 1) {
68
- name = table.right("_");
69
- }
70
- }
71
- this.model[name] = obj;
72
- this.dbs[table] = db;
73
- return this;
62
+ var name = table;
63
+ // 是否去除表前缀
64
+ if (clear_prefix) {
65
+ var arr = table.split('_');
66
+ if (arr.length > 1) {
67
+ name = table.right('_');
68
+ }
69
+ }
70
+ this.model[name] = obj;
71
+ this.dbs[table] = db;
72
+ return this;
74
73
  };
75
74
 
76
75
  /**
77
76
  * 初始化
78
- * @param {Object} sql 数据管理器
79
- * @return {Object} 当前对象
77
+ * @param {object} sql 数据管理器
78
+ * @returns {object} 当前对象
80
79
  */
81
80
  Link_model.prototype.init = function(sql) {
82
- this.sql = sql;
83
- return this;
81
+ this.sql = sql;
82
+ return this;
84
83
  };
85
84
 
86
85
  /**
87
86
  * 更新键值
88
- * @param {Object} key
89
- * @param {Object} value
90
- * @return {Object} 当前对象
87
+ * @param {object} key
88
+ * @param {object} value
89
+ * @returns {object} 当前对象
91
90
  */
92
91
  Link_model.prototype.update = function(key, value) {
93
- var m = this.model;
94
- for (var k in m) {
95
- var o = m[k];
96
- if (o[key] !== undefined) {
97
- o[key] = value;
98
- }
99
- }
100
- return this;
92
+ var m = this.model;
93
+ for (var k in m) {
94
+ var o = m[k];
95
+ if (o[key] !== undefined) {
96
+ o[key] = value;
97
+ }
98
+ }
99
+ return this;
101
100
  };
102
101
 
103
102
  /**
104
103
  * 合并属性
105
104
  * @param {Array} arr_name 当前对象
106
- * @return {Object}
105
+ * @returns {object}
107
106
  */
108
- Link_model.prototype.merge = function(...arr_name) {
109
- var model = {};
110
- if (arr_name.length === 0) {
111
- arr_name = Object.keys(this.model);
112
- }
113
- for (var i = 0; i < arr_name.length; i++) {
114
- var name = arr_name[i];
115
- var o = this.model[name];
116
- if (o) {
117
- for (var k in o) {
118
- model[k] = o[k]
119
- }
120
- }
121
- }
122
- var _this = this;
123
- return new Proxy(model, {
124
- set: function(obj, prop, value) {
125
- _this.update(prop, value);
126
- obj[prop] = value;
127
- return obj;
128
- }
129
- });
130
- };
107
+ LinkModel.prototype.merge = function(...arr_name) {
108
+ var model = {};
109
+ const arr_names = arr_name.length === 0 ? Object.keys(this.model) : arr_name;
110
+ for (var i = 0; i < arr_names.length; i++) {
111
+ var name = arr_names[i];
112
+ var o = this.model[name];
113
+ if (o) {
114
+ for (var k in o) {
115
+ model[k] = o[k];
116
+ }
117
+ }
118
+ }
119
+ var self = this;
120
+ return new Proxy(model, {
121
+ set: function(obj, prop, value) {
122
+ self.update(prop, value);
123
+ obj[prop] = value;
124
+ return obj;
125
+ }
126
+ });
127
+ };
131
128
 
132
- module.exports = Link_model;
129
+ module.exports = LinkModel;
package/package.json CHANGED
@@ -1,11 +1,13 @@
1
1
  {
2
2
  "name": "mm_sqlite",
3
- "version": "1.2.2",
3
+ "version": "1.2.4",
4
4
  "description": "高性能SQLite数据库操作模块,提供与mm_mysql完全兼容的API接口,支持异步操作、事务处理和批量操作",
5
5
  "main": "index.js",
6
6
  "scripts": {
7
7
  "test": "node test.js",
8
- "dev": "nodemon test.js"
8
+ "dev": "nodemon test.js",
9
+ "lint": "eslint . --config eslint.config.js",
10
+ "lint:fix": "eslint . --config eslint.config.js --fix"
9
11
  },
10
12
  "repository": {
11
13
  "type": "git",
@@ -36,8 +38,13 @@
36
38
  "node": ">=14.0.0"
37
39
  },
38
40
  "dependencies": {
39
- "mm_expand": "^1.9.7",
41
+ "mm_expand": "^2.0.0",
40
42
  "sqlite3": "^5.1.7",
41
43
  "sqlstring": "^2.3.3"
44
+ },
45
+ "devDependencies": {
46
+ "eslint": "^8.57.0",
47
+ "eslint-plugin-jsdoc": "^46.9.1",
48
+ "mm_eslint": "^1.1.1"
42
49
  }
43
- }
50
+ }