Skip to content

Commit d0e897d

Browse files
Brian DeteringBrian Detering
authored andcommitted
prettier code formatting
1 parent a179da7 commit d0e897d

File tree

3 files changed

+473
-394
lines changed

3 files changed

+473
-394
lines changed

.eslintrc

Lines changed: 48 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,50 @@
11
{
2-
"ecmaFeatures": {
3-
"jsx": true
4-
},
5-
"env": {
6-
"node": true,
7-
"mocha": true,
8-
"es6": true
9-
},
10-
"rules": {
11-
"semi": 2
12-
}
2+
"extends": [
3+
"prettier"
4+
],
5+
"env": {
6+
"node": true,
7+
"mocha": true,
8+
"es6": true,
9+
},
10+
"plugins": [
11+
"prettier"
12+
],
13+
"rules": {
14+
"prettier/prettier": ["error", {
15+
"singleQuote": true,
16+
"trailingComma": "es5"
17+
}],
18+
"no-dupe-keys": ["error"],
19+
"no-dupe-args": ["error"],
20+
"no-duplicate-case": ["error"],
21+
"no-empty": ["error"],
22+
"no-empty-character-class": ["error"],
23+
"no-extra-semi": ["error"],
24+
"no-func-assign": ["error"],
25+
"no-invalid-regexp": ["error"],
26+
"eqeqeq": ["error"],
27+
"no-fallthrough": ["error"],
28+
"no-floating-decimal": ["error"],
29+
"no-global-assign": ["error"],
30+
"no-lone-blocks": ["error"],
31+
"no-throw-literal": ["error"],
32+
"no-unused-expressions": ["warn"],
33+
"no-useless-escape": ["warn"],
34+
"no-useless-concat": ["error"],
35+
"vars-on-top": ["error"],
36+
"no-unused-vars": ["error"],
37+
"no-use-before-define": ["error"],
38+
"global-require": ["error"],
39+
"no-process-env": ["error"],
40+
"no-process-exit": ["error"],
41+
"no-const-assign": ["error"],
42+
"no-var": ["error"],
43+
"prefer-const": ["error"],
44+
"prefer-rest-params": ["error"],
45+
"prefer-spread": ["error"],
46+
"prefer-template": ["warn"],
47+
"no-multiple-empty-lines": ["error"],
48+
"func-style": ["error", "expression", { "allowArrowFunctions": true }]
49+
}
1350
}

index.js

Lines changed: 127 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -5,146 +5,146 @@ const Q = require('q');
55
const DataLoader = require('dataloader');
66

77
module.exports = fig => {
8-
const redis = fig.redis;
9-
10-
const parse = (resp, opt) => Q.Promise((resolve, reject) => {
11-
try {
12-
if(resp === '' || resp === null) {
13-
resolve(resp);
14-
}
15-
else if(opt.deserialize) {
16-
resolve(opt.deserialize(resp));
17-
}
18-
else {
19-
resolve(JSON.parse(resp));
20-
}
21-
}
22-
catch(err) {
23-
reject(err);
8+
const redis = fig.redis;
9+
10+
const parse = (resp, opt) =>
11+
Q.Promise((resolve, reject) => {
12+
try {
13+
if (resp === '' || resp === null) {
14+
resolve(resp);
15+
} else if (opt.deserialize) {
16+
resolve(opt.deserialize(resp));
17+
} else {
18+
resolve(JSON.parse(resp));
2419
}
20+
} catch (err) {
21+
reject(err);
22+
}
2523
});
2624

27-
const toString = (val, opt) => {
28-
if(val === null) {
29-
return Q('');
30-
}
31-
else if(opt.serialize) {
32-
return Q(opt.serialize(val));
33-
}
34-
else if(_.isObject(val)) {
35-
return Q(JSON.stringify(val));
36-
}
37-
else {
38-
return Q.reject(new Error('Must be Object or Null'));
39-
}
40-
};
41-
42-
const makeKey = (keySpace, key) => `${keySpace}:${key}`;
43-
44-
const rSetAndGet = (keySpace, key, rawVal, opt) => toString(rawVal, opt)
45-
.then(val => Q.Promise((resolve, reject) => {
25+
const toString = (val, opt) => {
26+
if (val === null) {
27+
return Q('');
28+
} else if (opt.serialize) {
29+
return Q(opt.serialize(val));
30+
} else if (_.isObject(val)) {
31+
return Q(JSON.stringify(val));
32+
} else {
33+
return Q.reject(new Error('Must be Object or Null'));
34+
}
35+
};
36+
37+
const makeKey = (keySpace, key) => `${keySpace}:${key}`;
38+
39+
const rSetAndGet = (keySpace, key, rawVal, opt) =>
40+
toString(rawVal, opt).then(val =>
41+
Q.Promise((resolve, reject) => {
4642
const fullKey = makeKey(keySpace, key);
4743
const multi = redis.multi();
4844
multi.set(fullKey, val);
49-
if(opt.expire) {
50-
multi.expire(fullKey, opt.expire);
45+
if (opt.expire) {
46+
multi.expire(fullKey, opt.expire);
5147
}
5248
multi.get(fullKey);
53-
multi.exec((err, replies) => err ?
54-
reject(err) : parse(_.last(replies), opt).then(resolve)
49+
multi.exec(
50+
(err, replies) =>
51+
err ? reject(err) : parse(_.last(replies), opt).then(resolve)
5552
);
56-
}));
57-
58-
const rGet = (keySpace, key, opt) => Q.Promise(
59-
(resolve, reject) => redis.get(
60-
makeKey(keySpace, key),
61-
(err, result) => err ? reject(err) : parse(result, opt).then(resolve)
62-
)
53+
})
6354
);
6455

65-
const rMGet = (keySpace, keys, opt) => Q.Promise(
66-
(resolve, reject) => redis.mget(
67-
_.map(keys, k => makeKey(keySpace, k)),
68-
(err, results) => err ?
69-
reject(err) :
70-
Q.all(_.map(results, r => parse(r, opt))).then(resolve)
71-
)
56+
const rGet = (keySpace, key, opt) =>
57+
Q.Promise((resolve, reject) =>
58+
redis.get(
59+
makeKey(keySpace, key),
60+
(err, result) => (err ? reject(err) : parse(result, opt).then(resolve))
61+
)
7262
);
7363

74-
const rDel = (keySpace, key) => Q.Promise((resolve, reject) => redis.del(
75-
makeKey(keySpace, key), (err, resp) => err ? reject(err) : resolve(resp)
76-
));
77-
78-
return class RedisDataLoader {
79-
constructor(ks, userLoader, opt) {
80-
const customOptions = ['expire', 'serialize', 'deserialize'];
81-
this.opt = _.pick(opt, customOptions) || {};
82-
this.keySpace = ks;
83-
this.loader = new DataLoader(
84-
keys => rMGet(this.keySpace, keys, this.opt)
85-
.then(results => Q.all(_.map(
86-
results,
87-
(v, i) => {
88-
if(v === '') {
89-
return Q(null);
90-
}
91-
else if(v === null) {
92-
return userLoader.load(keys[i])
93-
.then(resp => rSetAndGet(
94-
this.keySpace, keys[i], resp, this.opt
95-
))
96-
.then(r => r === '' ? null : r);
97-
}
98-
else {
99-
return Q(v);
100-
}
101-
}
102-
))),
103-
_.omit(opt, customOptions)
104-
);
105-
}
106-
107-
load(key) {
108-
return key ?
109-
Q(this.loader.load(key)) :
110-
Q.reject(new TypeError('key parameter is required'));
111-
}
112-
113-
loadMany(keys) {
114-
return keys ?
115-
Q(this.loader.loadMany(keys)) :
116-
Q.reject(new TypeError('keys parameter is required'));
117-
}
118-
119-
prime(key, val) {
120-
if(!key) {
121-
return Q.reject(new TypeError('key parameter is required'));
122-
}
123-
else if(val === undefined) {
124-
return Q.reject(new TypeError('value parameter is required'));
125-
}
126-
else {
127-
return rSetAndGet(this.keySpace, key, val, this.opt)
128-
.then(r => {
129-
this.loader.clear(key)
130-
.prime(key, r === '' ? null : r);
131-
});
132-
}
133-
}
134-
135-
clear(key) {
136-
return key ?
137-
rDel(this.keySpace, key).then(() => this.loader.clear(key)) :
138-
Q.reject(new TypeError('key parameter is required'));
139-
}
64+
const rMGet = (keySpace, keys, opt) =>
65+
Q.Promise((resolve, reject) =>
66+
redis.mget(
67+
_.map(keys, k => makeKey(keySpace, k)),
68+
(err, results) =>
69+
err
70+
? reject(err)
71+
: Q.all(_.map(results, r => parse(r, opt))).then(resolve)
72+
)
73+
);
14074

141-
clearAllLocal() {
142-
return Q(this.loader.clearAll());
143-
}
75+
const rDel = (keySpace, key) =>
76+
Q.Promise((resolve, reject) =>
77+
redis.del(
78+
makeKey(keySpace, key),
79+
(err, resp) => (err ? reject(err) : resolve(resp))
80+
)
81+
);
14482

145-
clearLocal(key) {
146-
return Q(this.loader.clear(key));
147-
}
148-
};
83+
return class RedisDataLoader {
84+
constructor(ks, userLoader, opt) {
85+
const customOptions = ['expire', 'serialize', 'deserialize'];
86+
this.opt = _.pick(opt, customOptions) || {};
87+
this.keySpace = ks;
88+
this.loader = new DataLoader(
89+
keys =>
90+
rMGet(this.keySpace, keys, this.opt).then(results =>
91+
Q.all(
92+
_.map(results, (v, i) => {
93+
if (v === '') {
94+
return Q(null);
95+
} else if (v === null) {
96+
return userLoader
97+
.load(keys[i])
98+
.then(resp =>
99+
rSetAndGet(this.keySpace, keys[i], resp, this.opt)
100+
)
101+
.then(r => (r === '' ? null : r));
102+
} else {
103+
return Q(v);
104+
}
105+
})
106+
)
107+
),
108+
_.omit(opt, customOptions)
109+
);
110+
}
111+
112+
load(key) {
113+
return key
114+
? Q(this.loader.load(key))
115+
: Q.reject(new TypeError('key parameter is required'));
116+
}
117+
118+
loadMany(keys) {
119+
return keys
120+
? Q(this.loader.loadMany(keys))
121+
: Q.reject(new TypeError('keys parameter is required'));
122+
}
123+
124+
prime(key, val) {
125+
if (!key) {
126+
return Q.reject(new TypeError('key parameter is required'));
127+
} else if (val === undefined) {
128+
return Q.reject(new TypeError('value parameter is required'));
129+
} else {
130+
return rSetAndGet(this.keySpace, key, val, this.opt).then(r => {
131+
this.loader.clear(key).prime(key, r === '' ? null : r);
132+
});
133+
}
134+
}
135+
136+
clear(key) {
137+
return key
138+
? rDel(this.keySpace, key).then(() => this.loader.clear(key))
139+
: Q.reject(new TypeError('key parameter is required'));
140+
}
141+
142+
clearAllLocal() {
143+
return Q(this.loader.clearAll());
144+
}
145+
146+
clearLocal(key) {
147+
return Q(this.loader.clear(key));
148+
}
149+
};
149150
};
150-

0 commit comments

Comments
 (0)