mm_config 1.0.0 → 1.0.1

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/.gitattributes CHANGED
@@ -1,2 +1,5 @@
1
- # Auto detect text files and perform LF normalization
2
- * text=auto
1
+ # Auto detect text files and perform LF normalization
2
+ * text=auto
3
+ *.js linguist-language=JavaScript
4
+ *.css linguist-language=JavaScript
5
+ *.html linguist-language=JavaScript
package/config.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "test",
3
+ "state": 1,
4
+ "sort": 1
5
+ }
package/index.js CHANGED
@@ -1,113 +1,15 @@
1
- const Base = require('./Base');
2
- const Item = require('./item');
1
+ require("mm_expand");
3
2
 
4
3
  /**
5
- * @description 项目
6
- * @class
4
+ * 重够配置,同步保存
5
+ * @param {Object} _config
6
+ * @param {String} _jsonFile
7
7
  */
8
- class Index extends Base {
9
- /**
10
- * @description 构造函数
11
- * @param {String} dir
12
- * @param {String} scope
13
- */
14
- constructor(dir, scope) {
15
- // 文件路径
16
- this.filename = "";
17
- // 配置列表
18
- this.list = [];
19
- // 项目
20
- this.item = item;
21
- }
22
- }
23
-
24
- /**
25
- * 增
26
- * @param {Object} param
27
- */
28
- Index.prototype.add_main = function(param) {
29
- if (param.constructor == this.item.constructor) {
30
- this.list.push(param);
31
- } else if (param.filename && param.config) {
32
- var o = new this.item();
33
- this.list.push();
34
- }
35
- };
36
-
37
- /**
38
- * 删
39
- * @param {Object} param
40
- */
41
- Index.prototype.del_main = function(param) {
42
- var lt = this.list;
43
- var query = {};
44
- if (typeof(param) == 'string') {
45
- query.name = param;
46
- } else {
47
-
48
- }
49
- for (var i = lt.length - 1; i > 0; i--) {
50
- var cg = lt[i].config;
51
- if ($.as(cg, query)) {
52
-
8
+ module.exports = function(_config, _jsonFile){
9
+ return new Proxy(_config, {
10
+ set: function(obj, prop, value) {
11
+ obj[prop] = value;
12
+ _jsonFile.saveJson(obj);
53
13
  }
54
- }
55
- };
56
-
57
- /**
58
- * 改
59
- * @param {Object} param
60
- */
61
- Index.prototype.set_main = function(param) {
62
- this.list.del({}, param);
63
- };
64
-
65
- /**
66
- * 查
67
- * @param {Object} param
68
- */
69
- Index.prototype.get_main = function(param) {
70
-
71
- };
72
-
73
- /**
74
- * 更新
75
- * @param {Object} param
76
- */
77
- Index.prototype.update_main = function(param) {
78
-
79
- };
80
-
81
- /**
82
- * 加载
83
- * @param {Object} param
84
- */
85
- Index.prototype.load_main = function(param) {
86
-
87
- };
88
-
89
- /**
90
- * 保存
91
- * @param {Object} param
92
- */
93
- Index.prototype.save_main = function(param) {
94
-
95
- };
96
-
97
- /**
98
- * 排序
99
- * @param {Object} param
100
- */
101
- Index.prototype.sort_main = function(param) {
102
-
103
- };
104
-
105
- /**
106
- * 运行
107
- * @param {Object} param
108
- */
109
- Index.prototype.run_main = function(param) {
110
-
111
- };
112
-
113
- module.exports = list;
14
+ });
15
+ }
package/package.json CHANGED
@@ -1,11 +1,28 @@
1
1
  {
2
- "name": "mm_config",
3
- "version": "1.0.0",
4
- "description": "这是用来读写*.json配置文件的模块,可以在读写变量的同时保存到*.json文件",
5
- "main": "base.js",
6
- "scripts": {
7
- "test": "node test.js"
8
- },
9
- "author": "邱文武",
10
- "license": "ISC"
11
- }
2
+ "name": "mm_config",
3
+ "version": "1.0.1",
4
+ "description": "这是超级美眉配置同步器,用于更改配置同步保存为JSON文件",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "test": "node test.js"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/qiuwenwu/mm_config.git"
12
+ },
13
+ "keywords": [
14
+ "config",
15
+ "JSON",
16
+ "file",
17
+ "sync"
18
+ ],
19
+ "author": "邱文武",
20
+ "license": "ISC",
21
+ "bugs": {
22
+ "url": "https://github.com/qiuwenwu/mm_config/issues"
23
+ },
24
+ "homepage": "https://github.com/qiuwenwu/mm_config#readme",
25
+ "dependencies": {
26
+ "mm_expand": "^1.5.1"
27
+ }
28
+ }
package/test.js ADDED
@@ -0,0 +1,11 @@
1
+ var conf = require('./index.js');
2
+
3
+ async function test(){
4
+ var config = conf({
5
+ name: "demo",
6
+ state: 1
7
+ }, "./config.json");
8
+ config.name = "test";
9
+ config.sort = 1;
10
+ }
11
+ test();
package/base.js DELETED
@@ -1,190 +0,0 @@
1
- /**
2
- * @description 构造基础
3
- * @class
4
- */
5
- class Base {
6
- /**
7
- * @description 构造函数
8
- * @param {String} dir
9
- */
10
- constructor() {}
11
- }
12
-
13
- /**
14
- * 回调函数
15
- * @param {String} name 函数名
16
- * @param {Object} param 参数1
17
- * @param {Object} paramB 参数2
18
- * @param {Object} paramC 参数3
19
- * @return {Object} 返回执行结果
20
- */
21
- Base.prototype.func = function(name, paramA, paramB, paramC) {
22
- var func = this[name];
23
- if (func) {
24
- if (paramC) {
25
- return func(paramA, paramB, paramC);
26
- } else if (paramB) {
27
- return func(paramA, paramB, paramC);
28
- } else {
29
- return func(paramA);
30
- }
31
- } else {
32
- return undefined
33
- }
34
- };
35
-
36
- /**
37
- * 事件驱动函数
38
- * @param {String} name
39
- * @param {Object} param
40
- */
41
- Base.prototype.events = function(name, param) {
42
- var func = this[name];
43
- if (func) {
44
- return func(param);
45
- } else {
46
- return undefined
47
- }
48
- };
49
-
50
- /**
51
- * 增
52
- * @param {Object} param
53
- */
54
- Base.prototype.add = function(param) {
55
- var pm = this.events('add_before', param) || param;
56
- var msg = this.events('add_check', pm);
57
- var ret;
58
- if (!msg) {
59
- ret = this.events('add_main', pm);
60
- }
61
- return this.events('add_after', pm, ret) || ret;
62
- };
63
-
64
- /**
65
- * 删
66
- * @param {Object} param
67
- */
68
- Base.prototype.del = function(param) {
69
- var pm = this.events('del_before', param) || param;
70
- var msg = this.events('del_check', pm);
71
- var ret;
72
- if (!msg) {
73
- ret = this.events('del_main', pm);
74
- }
75
- return this.events('del_after', pm, ret) || ret;
76
- };
77
-
78
- /**
79
- * 改
80
- * @param {Object} param
81
- */
82
- Base.prototype.set = function(param) {
83
- var pm = this.events('set_before', param) || param;
84
- var msg = this.events('set_check', pm);
85
- var ret;
86
- if (!msg) {
87
- ret = this.events('set_main', pm);
88
- }
89
- return this.events('set_after', pm, ret) || ret;
90
- };
91
-
92
- /**
93
- * 查
94
- * @param {Object} param
95
- */
96
- Base.prototype.get = function(param) {
97
- var pm = this.events('get_before', param) || param;
98
- var msg = this.events('get_check', pm);
99
- var ret;
100
- if (!msg) {
101
- ret = this.events('get_main', pm);
102
- }
103
- return this.events('get_after', pm, ret) || ret;
104
- };
105
-
106
- /**
107
- * 更新
108
- * @param {Object} param
109
- */
110
- Base.prototype.update = function(param) {
111
- var pm = this.events('update_before', param) || param;
112
- var msg = this.events('update_check', pm);
113
- var ret;
114
- if (!msg) {
115
- ret = this.events('update_main', pm);
116
- }
117
- return this.events('update_after', pm, ret) || ret;
118
- };
119
-
120
- /**
121
- * 加载
122
- * @param {Object} param
123
- */
124
- Base.prototype.load = function(param) {
125
- var pm = this.events('load_before', param) || param;
126
- var msg = this.events('load_check', pm);
127
- var ret;
128
- if (!msg) {
129
- ret = this.events('load_main', pm);
130
- }
131
- return this.events('load_after', pm, ret) || ret;
132
- };
133
-
134
- /**
135
- * 保存
136
- * @param {Object} param
137
- */
138
- Base.prototype.save = function(param) {
139
- var pm = this.events('save_before', param) || param;
140
- var msg = this.events('save_check', pm);
141
- var ret;
142
- if (!msg) {
143
- ret = this.events('save_main', pm);
144
- }
145
- return this.events('save_after', pm, ret) || ret;
146
- };
147
-
148
- /**
149
- * 排序
150
- * @param {Object} param
151
- */
152
- Base.prototype.sort = function(param) {
153
- var pm = this.events('sort_before', param) || param;
154
- var msg = this.events('sort_check', pm);
155
- var ret;
156
- if (!msg) {
157
- ret = this.events('sort_main', pm);
158
- }
159
- return this.events('sort_after', pm, ret) || ret;
160
- };
161
-
162
- /**
163
- * 运行
164
- * @param {Object} param
165
- */
166
- Base.prototype.run = function(param) {
167
- var pm = this.events('run_before', param) || param;
168
- var msg = this.events('run_check', pm);
169
- var ret;
170
- if (!msg) {
171
- ret = this.events('run_main', pm);
172
- }
173
- return this.events('run_after', pm, ret) || ret;
174
- };
175
-
176
- /**
177
- * 初始化
178
- * @param {Object} param
179
- */
180
- Base.prototype.init = function(param) {
181
- var pm = this.events('init_before', param) || param;
182
- var msg = this.events('init_check', pm);
183
- var ret;
184
- if (!msg) {
185
- ret = this.events('init_main', pm);
186
- }
187
- return this.events('init_after', pm, ret) || ret;
188
- };
189
-
190
- module.exports = Base;
package/item.js DELETED
@@ -1,209 +0,0 @@
1
- const Base = require('./Base');
2
-
3
-
4
- /**
5
- * @description 项目
6
- * @class
7
- */
8
- class Item extends Base {
9
- /**
10
- * @description 构造函数
11
- * @param {String} filename 文件名
12
- */
13
- constructor(filename) {
14
- // 是否同步
15
- this.sync = false;
16
- // 文件路径
17
- this.filename = filename;
18
- // 配置
19
- this.config = {
20
- /**
21
- * 名称, 由中英文和下“_”组成, 用于卸载接口 例如: demo
22
- */
23
- "name": "",
24
- /**
25
- * 标题, 介绍作用
26
- */
27
- "title": "",
28
- /**
29
- * 描述, 用于描述该有什么用的
30
- */
31
- "description": "",
32
- /**
33
- * 文件路径, 当调用函数不存在时,会先从文件中加载
34
- */
35
- "func_file": "./index.js",
36
- /**
37
- * 回调函数名 用于决定调用脚本的哪个函数
38
- */
39
- "func_name": "",
40
- /**
41
- * 排序
42
- */
43
- "sort": 10,
44
- /**
45
- * 开关, true表示开启,false表示关闭
46
- */
47
- "switch": true
48
- };
49
- }
50
- }
51
-
52
- /**
53
- * 模型
54
- * @param {Object} param
55
- */
56
- Item.prototype.model = function(param) {
57
- var m = {
58
- name: "",
59
- title: "",
60
- description: ""
61
- };
62
- if (param) {
63
- return Object.assign(m, param);
64
- } else {
65
- return m;
66
- }
67
- };
68
-
69
- /**
70
- * 增
71
- * @param {Object} param
72
- */
73
- Item.prototype.add_main = function(param) {
74
- $.push(this.config, param, true);
75
- };
76
-
77
- /**
78
- * 删
79
- * @param {Object} param
80
- */
81
- Item.prototype.del_main = function(param) {
82
- for (var k in param) {
83
- if (typeof(param[k])) {
84
-
85
- }
86
- }
87
- };
88
-
89
- /**
90
- * 改
91
- * @param {Object} param
92
- */
93
- Item.prototype.set_main = function(param) {
94
- $.push(this.config, param);
95
- };
96
-
97
- /**
98
- * 查
99
- * @param {Object} param
100
- */
101
- Item.prototype.get_main = function(param) {
102
-
103
- };
104
-
105
- /**
106
- * 更新
107
- * @param {Object} param
108
- */
109
- Item.prototype.update_main = function(param) {
110
- this.config = {};
111
- this.load();
112
- this.sort();
113
- };
114
-
115
- /**
116
- * 加载
117
- * @param {Object} param
118
- */
119
- Item.prototype.load_main = function(param) {
120
- if (typeof(param) == "object") {
121
-
122
- }
123
- var file = this.fullname.loadText();
124
- var config = file;
125
- $.push(this.config, param);
126
- };
127
-
128
- /**
129
- * 保存
130
- * @param {Object} param
131
- */
132
- Item.prototype.save_main = function(param) {
133
- this.fullname.save($.toJson(this.config, true));
134
- };
135
-
136
- /**
137
- * @description 加载配置对象
138
- * @param {Object} cg 配置对象
139
- */
140
- Item.prototype.loadObj = function(cg) {
141
- $.push(this.config, cg, true);
142
- var f = this.config.func_file;
143
- if (f) {
144
- var file = f.fullname(this.dir);
145
- if (file.hasFile()) {
146
- this.remove_module(file);
147
- var cs = require(file);
148
- if (cs) {
149
- var name = this.config.func_name;
150
- if (name) {
151
- this.main = cs[name];
152
- } else {
153
- $.push(this, cs, true);
154
- }
155
- }
156
- } else {
157
- this.new_script(file);
158
- }
159
- }
160
- };
161
-
162
- /**
163
- * @description 加载配置文件
164
- * @return {Object} 配置对象
165
- */
166
- Item.prototype.loadFile = function(file) {
167
- var obj;
168
- var f = file.fullname();
169
- this.filename = f;
170
- var text = f.loadText();
171
- if (text) {
172
- obj = text.toJson();
173
- } else {
174
- this.new_config(f);
175
- }
176
- return obj;
177
- };
178
-
179
-
180
- /**
181
- * @description 新建配置
182
- * @param {String} file
183
- */
184
- Item.prototype.new_config = function(file) {
185
- var fl = this.dir_base + "/config.tpl.json";
186
- fl.copyFile(file);
187
- };
188
-
189
- /**
190
- * @description 新建脚本
191
- * @param {String} file
192
- */
193
- Item.prototype.new_script = function(file) {
194
- var fl = this.dir_base + "/script.js";
195
- if (fl.hasFile()) {
196
- fl.copyFile(file);
197
- }
198
- };
199
-
200
- /**
201
- * @description 移除模块
202
- * @param {Object} module
203
- */
204
- Item.prototype.remove_module = function(module) {
205
- var path = require.resolve(module);
206
- delete require.cache[path];
207
- };
208
-
209
- module.exports = Item;