fkg 1.1.1 → 1.1.2

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 (3) hide show
  1. package/README.md +15 -25
  2. package/lib/index.js +100 -84
  3. package/package.json +6 -2
package/README.md CHANGED
@@ -15,52 +15,42 @@ npm install fkg
15
15
 
16
16
  ```javascript
17
17
  const fkg = require('fkg');
18
- const dir = 'C:\\work'; //数据储存位置,为空时不进行本地存储
19
- const key = 'f31d0353cdf'; //key不为空时,数据会被加密储存
20
- // const db = new fkg();
21
- // const db = new fkg(dir);
22
- const db = new fkg({dir,key});
23
- const user = db.io('user');
18
+ const db = fkg({
19
+ dir:'D:\\work', //数据储存位置,为空时不进行存储
20
+ key:'exgeg2233', //key不为空时,储存的数据会被加密
21
+ db:['user','name'] //db必须存在,且必须为数组
22
+ });
24
23
  ```
25
24
 
26
- **3. Add user data**
27
-
25
+ **3. Create user data**
28
26
  ```javascript
29
- uset.add('id_1',{account:"wabngwu",password:"******"}); //数据储存在本地
30
- user.set('id_2',{account:"zhangsan",password:"******"}); //数据储存在缓存
27
+ const data = {name:'xxx'};
28
+ db.user.add('id_1',data); //数据储存在本地
29
+ db.user.set('id_2',data); //数据储存在缓存
31
30
  ```
32
31
 
33
32
  **5. Get user data**
34
33
 
35
34
  ```javascript
36
- user.list(); //获取本地和缓存数据键值
35
+ db.user.list(); //获取user表缓存和本地数据键值
37
36
  ```
38
37
 
39
38
  **6. Get list data**
40
39
 
41
40
  ```javascript
42
- user.get('id_1');
43
- user.get('id_2');
41
+ db.user.get('id_1'); //获取user表中指定缓存
42
+ db.user.get('id_2'); //获取不到缓存,会获取本地数据
44
43
  ```
45
44
 
46
45
  **7. Delete user data**
47
46
 
48
47
  ```javascript
49
- user.del('id_1');
50
- user.del('id_2');
48
+ db.user.clear(); //清空user表中所有的缓存
49
+ db.user.kill(); //清空user表中所有的本地数据
50
+ db.user.del('id_1'); //删除user表中指定缓存和本地数据
51
51
  ```
52
52
 
53
- **8. Clear Data Table**
54
-
55
- ```javascript
56
- user.clear();
57
- ```
58
53
 
59
- **9. Close server**
60
-
61
- ```javascript
62
- db.close();
63
- ```
64
54
 
65
55
 
66
56
 
package/lib/index.js CHANGED
@@ -1,92 +1,108 @@
1
1
  'use strict';
2
- const {
3
- link,
4
- isDir,
5
- isFile,
6
- addDir,
7
- addJson,
8
- delFile,
9
- readJson,
10
- readdirSync
11
- } = require('./utils/fs');
12
- const {md5,ekey,dkey} = require('rrid');
13
- const {str,obj} = require('./utils/type');
14
- class fkg {
15
- constructor(arg) {
16
- this.close();
17
- if(arg) {
18
- if(str(arg)&&isDir(arg)) this.dir = link(arg,'./data');
19
- if(obj(arg)){
20
- if(arg.dir&&isDir(arg.dir)) this.dir = link(arg.dir,'./data');
21
- if(arg.key&&str(arg.key)) this.key = md5(arg.key+'fkg');
2
+ module.exports = (arg)=>{
3
+ const fs = require('./utils/fs');
4
+ const {md5,ekey,dkey} = require('rrid');
5
+ const {str,obj,arr} = require('./utils/type');
6
+ if(arg&&obj(arg)) {
7
+ let io = {};
8
+ let dirs = {};
9
+ let datas = {};
10
+ if(arg.dir&&fs.isDir(arg.dir)) {
11
+ arg.dir = fs.link(arg.dir,'./data');
12
+ if(!fs.isDir(arg.dir)) fs.addDir(arg.dir);
13
+ }else{
14
+ delete arg.dir;
15
+ }
16
+ if(arg.db&&arr(arg.db)){
17
+ if(arg.db.length>0){
18
+ for (let i = 0;i < arg.db.length;i++) {
19
+ const n = arg.db[i];
20
+ if(!str(n)){
21
+ console.log(`The db.${n} is not string`);
22
+ return;
23
+ }
24
+ if(arg.dir) {
25
+ dirs[n] = fs.link(arg.dir,'./'+n);
26
+ if(!fs.isDir(dirs[n])) fs.addDir(dirs[n]);
27
+ }
28
+ };
29
+ }else{
30
+ console.log("The length of 'db' is not 0");
31
+ return;
22
32
  }
23
- if(this.dir&&!isDir(this.dir)) addDir(this.dir);
33
+ }else{
34
+ console.log('The db is array');
35
+ return;
24
36
  }
25
- }
26
- close(){
27
- this.data = {};
28
- this.dirs = {};
29
- this.dir = null;
30
- }
31
- io(n) {
32
- const that = this;
33
- if(!n||!str(n)) return;
34
- if(!that.data[n]) that.data[n] = {};
35
- return {
36
- set(id,data){
37
- if(!id||!str(id)||!data) return false;
38
- that.data[n][id] = data;
39
- return true;
40
- },
41
- add(id,data){
42
- if(!id||!str(id)||!data||!that.dir) return false;
43
- if(!that.dirs[n]) {
44
- that.dirs[n] = link(that.dir,'./'+n);
45
- if(!isDir(that.dirs[n])) addDir(that.dirs[n]);
46
- }
47
- if(that.key) data = ekey(JSON.stringify(data),that.key+id);
48
- return addJson(link(that.dirs[n],'./'+id),data);
49
- },
50
- get(id){
51
- if(!id||!str(id)) return null;
52
- let ids = that.data[n][id];
53
- if(!ids&&that.dirs[n]){
54
- const url = link(that.dirs[n],'./'+id);
55
- if(isFile(url)){
56
- ids = readJson(url);
57
- if(ids&&that.key) ids = JSON.parse(dkey(ids,that.key+id));
37
+ if(arg.key&&str(arg.key)) {
38
+ arg.key = md5(arg.key+'fkg');
39
+ }else{
40
+ delete arg.key;
41
+ }
42
+ const def = (n) => {
43
+ return {
44
+ set(id,data){
45
+ if(!id||!str(id)||!data) return false;
46
+ datas[n][id] = data;
47
+ return true;
48
+ },
49
+ add(id,data){
50
+ if(!id||!str(id)||!data||!arg.dir) return false;
51
+ if(arg.key) data = ekey(JSON.stringify(data),arg.key+id);
52
+ return fs.addJson(fs.link(dirs[n],'./'+id),data);
53
+ },
54
+ get(id){
55
+ if(!id||!str(id)) return null;
56
+ let ids = datas[n][id];
57
+ if(!ids&&arg.dir){
58
+ const url = fs.link(dirs[n],'./'+id);
59
+ if(fs.isFile(url)){
60
+ ids = fs.readJson(url);
61
+ if(ids&&arg.key) ids = JSON.parse(dkey(ids,arg.key+id));
62
+ }
63
+ }
64
+ return ids;
65
+ },
66
+ list(){
67
+ let arr = Object.keys(datas[n]);
68
+ if(arg.dir) arr = [...arr,...fs.readdirSync(dirs[n])];
69
+ return arr;
70
+ },
71
+ del(id){
72
+ let res = true;
73
+ if(!id||!str(id)) return false;
74
+ if(datas[n][id]) delete datas[n][id];
75
+ if(arg.dir){
76
+ const url = fs.link(dirs[n],'./'+id);
77
+ if(fs.isFile(url)) res = fs.delFile(url);
78
+ if(!res) return res;
79
+ }
80
+ return res;
81
+ },
82
+ clear(){
83
+ datas[n] = {}
84
+ return true;
85
+ },
86
+ kill(){
87
+ if(arg.dir){
88
+ const list = fs.readdirSync(dirs[n]);
89
+ for (let i = 0;i < list.length;i++) {
90
+ fs.delFile(fs.link(dirs[n],'./'+list[i]));
91
+ };
92
+ return true;
93
+ }else{
94
+ return false;
58
95
  }
59
- }
60
- return ids;
61
- },
62
- list(){
63
- let arr = Object.keys(that.data[n]);
64
- if(that.dirs[n]) arr = [...arr,...readdirSync(that.dirs[n])];
65
- return arr;
66
- },
67
- del(id){
68
- if(!id||!str(id)) return false;
69
- let res = true;
70
- if(that.dirs[n]){
71
- const url = link(that.dirs[n],'./'+id);
72
- if(isFile(url)) res = delFile(url);
73
- if(!res) return res;
74
- }
75
- delete that.data[n][id];
76
- return res;
77
- },
78
- clear(){
79
- if(that.dirs[n]){
80
- let list = readdirSync(that.dirs[n]);
81
- for (let i = 0;i < list.length;i++) {
82
- delFile(link(that.dirs[n],'./'+list[i]));
83
- };
84
- list = null;
85
96
  }
86
- delete that.data[n];
87
- return true;
88
97
  }
89
98
  }
99
+ for (let i = 0;i < arg.db.length;i++) {
100
+ const n = arg.db[i];
101
+ datas[n] = {};
102
+ io[n] = def(n);
103
+ };
104
+ return io;
105
+ }else{
106
+ console.log('Missing parameters');
90
107
  }
91
- }
92
- module.exports = fkg;
108
+ }
package/package.json CHANGED
@@ -1,11 +1,15 @@
1
1
  {
2
2
  "name": "fkg",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "description": "Read and set memory key!",
5
5
  "main": "lib/index.js",
6
6
  "keywords": [
7
+ "db",
7
8
  "key",
8
- "cache"
9
+ "disk",
10
+ "data",
11
+ "cache",
12
+ "database"
9
13
  ],
10
14
  "author": "weduu",
11
15
  "license": "MIT",