Skip to content

Commit 21ad429

Browse files
committed
Lint
1 parent d09c816 commit 21ad429

File tree

13 files changed

+911
-70
lines changed

13 files changed

+911
-70
lines changed

package-lock.json

Lines changed: 847 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"cors": "^2.3.0",
1616
"errorhandler": "^1.2.0",
1717
"express": "^4.9.5",
18+
"is-utf8": "^0.2.1",
1819
"json-parse-helpfulerror": "^1.0.3",
1920
"lodash": "^4.11.2",
2021
"lodash-id": "^0.13.0",
@@ -34,20 +35,24 @@
3435
"babel-preset-env": "^1.3.2",
3536
"babel-register": "^6.16.3",
3637
"cross-env": "^2.0.1",
38+
"eslint-config-prettier": "^2.2.0",
39+
"eslint-plugin-prettier": "^2.1.2",
3740
"husky": "^0.14.1",
3841
"markdown-toc": "^0.13.0",
3942
"mkdirp": "^0.5.1",
4043
"mocha": "^3.2.0",
4144
"os-tmpdir": "^1.0.1",
4245
"pkg-ok": "^1.0.1",
46+
"prettier": "^1.5.2",
4347
"rimraf": "^2.5.2",
4448
"server-ready": "^0.3.1",
4549
"standard": "^8.3.0",
4650
"supertest": "^3.0.0",
47-
"temp-write": "^2.1.0"
51+
"temp-write": "^2.1.0",
52+
"xo": "^0.18.2"
4853
},
4954
"scripts": {
50-
"test": "npm run test:cli && npm run test:server && standard",
55+
"test": "xo && npm run test:cli && npm run test:server && standard",
5156
"test:cli": "npm run build && cross-env NODE_ENV=test mocha test/cli/*.js",
5257
"test:server": "cross-env NODE_ENV=test mocha test/server/*.js",
5358
"start": "babel-node src/cli/bin",
@@ -90,5 +95,15 @@
9095
},
9196
"engines": {
9297
"node": ">= 4"
98+
},
99+
"xo": {
100+
"semicolon": false,
101+
"space": true,
102+
"extend": "prettier",
103+
"plugin": "prettier",
104+
"envs": [
105+
"node",
106+
"mocha"
107+
]
93108
}
94109
}

src/cli/run.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ function prettyPrint (argv, object, rules) {
1717

1818
console.log()
1919
console.log(chalk.bold(' Resources'))
20-
for (let prop in object) {
20+
for (const prop in object) {
2121
console.log(' ' + root + '/' + prop)
2222
}
2323

2424
if (rules) {
2525
console.log()
2626
console.log(chalk.bold(' Other routes'))
27-
for (var rule in rules) {
27+
for (const rule in rules) {
2828
console.log(' ' + rule + ' -> ' + rules[rule])
2929
}
3030
}
@@ -96,7 +96,7 @@ module.exports = function (argv) {
9696
process.exit(1)
9797
}
9898

99-
// noop log fn
99+
// Noop log fn
100100
if (argv.quiet) {
101101
console.log = () => {}
102102
}
@@ -131,7 +131,7 @@ module.exports = function (argv) {
131131
// Load middlewares
132132
let middlewares
133133
if (argv.middlewares) {
134-
middlewares = argv.middlewares.map(function (m) {
134+
middlewares = argv.middlewares.map((m) => {
135135
console.log(chalk.gray(' Loading', m))
136136
return require(path.resolve(m))
137137
})

src/cli/utils/load.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ module.exports = function (source, cb) {
2323
const dataFn = require(filename)
2424

2525
if (typeof dataFn !== 'function') {
26-
throw new Error('The database is a JavaScript file but the export is not a function.')
26+
throw new TypeError('The database is a JavaScript file but the export is not a function.')
2727
}
2828

2929
// Run dataFn to generate data

src/server/defaults.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ module.exports = function (opts) {
4141
}
4242

4343
if (process.env.NODE_ENV === 'development') {
44-
// only use in development
44+
// Only use in development
4545
arr.push(errorhandler())
4646
}
4747

src/server/mixins.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,14 @@ function createId (coll) {
4242
const idProperty = _.__id()
4343
if (_.isEmpty(coll)) {
4444
return 1
45-
} else {
46-
let id = _(coll).maxBy(idProperty)[idProperty]
45+
}
46+
let id = _(coll).maxBy(idProperty)[idProperty]
4747

4848
// Increment integer id or generate string id
49-
return _.isFinite(id)
49+
return _.isFinite(id)
5050
? ++id
5151
: shortid.generate()
52-
}
52+
5353
}
5454

5555
function deepQuery (value, q) {
@@ -62,7 +62,7 @@ function deepQuery (value, q) {
6262
}
6363
}
6464
} else if (_.isObject(value) && !_.isArray(value)) {
65-
for (let k in value) {
65+
for (const k in value) {
6666
if (_.deepQuery(value[k], q)) {
6767
return true
6868
}

src/server/public/main.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
/* global m */
22

33
// Resource list
4-
var db = {}
4+
let db = {}
55

6-
m.request('db').then(function (data) {
6+
m.request('db').then((data) => {
77
db = data
88
})
99

1010
m.mount(
1111
document.getElementById('resources'),
1212
{
13-
view: function () {
14-
var keys = Object.keys(db)
15-
var resourceList = (
13+
view () {
14+
const keys = Object.keys(db)
15+
const resourceList = (
1616
m(
1717
'ul',
1818
keys
19-
.map(function (key) {
19+
.map((key) => {
2020
return m('li', [
2121
m('a', { href: key }, '/' + key),
2222
m('sup', Array.isArray(db[key])
@@ -43,21 +43,21 @@ m.mount(
4343
)
4444

4545
// Custom routes
46-
var customRoutes = {}
46+
let customRoutes = {}
4747

48-
m.request('__rules').then(function (data) {
48+
m.request('__rules').then((data) => {
4949
customRoutes = data
5050
})
5151

5252
m.mount(
5353
document.getElementById('custom-routes'),
5454
{
55-
view: function () {
56-
var rules = Object.keys(customRoutes)
55+
view () {
56+
const rules = Object.keys(customRoutes)
5757
if (rules.length) {
5858
return [
5959
m('h4', 'Custom routes'),
60-
m('table', rules.map(function (rule) {
60+
m('table', rules.map((rule) => {
6161
return m('tr', [
6262
m('td', rule),
6363
m('td', '⇢ ' + customRoutes[rule])

src/server/rewriter.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const express = require('express')
22
const url = require('url')
33
const _ = require('lodash')
4+
45
function updateQueryString (target, sourceUrl) {
56
return ~sourceUrl.indexOf('?') ? _.assign(target, url.parse(sourceUrl, true).query) : {}
67
}
@@ -16,7 +17,7 @@ module.exports = (routes) => {
1617
router.all(route, (req, res, next) => {
1718
// Rewrite target url using params
1819
let target = routes[route]
19-
for (let param in req.params) {
20+
for (const param in req.params) {
2021
target = target.replace(':' + param, req.params[param])
2122
}
2223
req.url = target

src/server/router/plural.js

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ module.exports = (db, name, opts) => {
5050
let _start = req.query._start
5151
let _end = req.query._end
5252
let _page = req.query._page
53-
let _sort = req.query._sort
54-
let _order = req.query._order
53+
const _sort = req.query._sort
54+
const _order = req.query._order
5555
let _limit = req.query._limit
56-
let _embed = req.query._embed
57-
let _expand = req.query._expand
56+
const _embed = req.query._embed
57+
const _expand = req.query._expand
5858
delete req.query.q
5959
delete req.query._start
6060
delete req.query._end
@@ -68,7 +68,7 @@ module.exports = (db, name, opts) => {
6868
// in the database
6969
Object.keys(req.query).forEach((query) => {
7070
const arr = db.get(name).value()
71-
for (let i in arr) {
71+
for (const i in arr) {
7272
if (
7373
_.has(arr[i], query) ||
7474
query === 'callback' ||
@@ -91,7 +91,7 @@ module.exports = (db, name, opts) => {
9191
q = q.toLowerCase()
9292

9393
chain = chain.filter((obj) => {
94-
for (let key in obj) {
94+
for (const key in obj) {
9595
const value = obj[key]
9696
if (db._.deepQuery(value, q)) {
9797
return true
@@ -109,12 +109,12 @@ module.exports = (db, name, opts) => {
109109

110110
chain = chain.filter((element) => {
111111
return arr
112-
.map(function (value) {
112+
.map((value) => {
113113
const isDifferent = /_ne$/.test(key)
114114
const isRange = /_lte$/.test(key) || /_gte$/.test(key)
115115
const isLike = /_like$/.test(key)
116116
const path = key.replace(/(_lte|_gte|_ne|_like)$/, '')
117-
// get item value based on path
117+
// Get item value based on path
118118
// i.e post.title -> 'foo'
119119
const elementValue = _.get(element, path)
120120

@@ -133,9 +133,9 @@ module.exports = (db, name, opts) => {
133133
return value !== elementValue.toString()
134134
} else if (isLike) {
135135
return new RegExp(value, 'i').test(elementValue.toString())
136-
} else {
137-
return value === elementValue.toString()
138-
}
136+
}
137+
return value === elementValue.toString()
138+
139139
})
140140
.reduce((a, b) => a || b)
141141
})
@@ -191,10 +191,10 @@ module.exports = (db, name, opts) => {
191191
chain = chain.slice(_start, _start + _limit)
192192
}
193193

194-
// embed and expand
194+
// Embed and expand
195195
chain = chain
196196
.cloneDeep()
197-
.forEach(function (element) {
197+
.forEach((element) => {
198198
embed(element, _embed)
199199
expand(element, _expand)
200200
})

src/server/router/validate-data.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ module.exports = (obj) => {
1818
.keys(obj)
1919
.forEach(validateKey)
2020
} else {
21-
throw new Error(
21+
throw new TypeError(
2222
`Data must be an object. Found ${typeof obj}.` +
2323
'See https://github.com/typicode/json-server for example.'
2424
)

src/server/utils.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ module.exports = {
33
}
44

55
function getPage (array, page, perPage) {
6-
var obj = {}
7-
var start = (page - 1) * perPage
8-
var end = page * perPage
6+
const obj = {}
7+
const start = (page - 1) * perPage
8+
const end = page * perPage
99

1010
obj.items = array.slice(start, end)
1111
if (obj.items.length === 0) {

test/cli/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ describe('cli', () => {
164164

165165
it('should delay response', (done) => {
166166
const start = new Date()
167-
request.get('/posts').expect(200, function (err) {
167+
request.get('/posts').expect(200, (err) => {
168168
const end = new Date()
169169
done(
170170
end - start > 1000
@@ -232,7 +232,7 @@ describe('cli', () => {
232232
it('should not set Content-Encoding to gzip', (done) => {
233233
request.get('/posts')
234234
.expect(200)
235-
.end(function (err, res) {
235+
.end((err, res) => {
236236
if (err) {
237237
done(err)
238238
} else if ('content-encoding' in res.headers) {

test/server/plural.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,7 @@ describe('Server', () => {
553553
.type('form')
554554
.send({body: 'foo', booleanValue: true, integerValue: 1})
555555
.expect('Content-Type', /json/)
556-
// x-www-form-urlencoded will convert to string
556+
// X-www-form-urlencoded will convert to string
557557
.expect({id: 3, body: 'foo', booleanValue: 'true', integerValue: '1'})
558558
.expect(201)
559559
assert.equal(db.posts.length, 3)
@@ -586,15 +586,15 @@ describe('Server', () => {
586586
const res = await request(server)
587587
.put('/posts/1')
588588
.set('Accept', 'application/json')
589-
// body property omitted to test that the resource is replaced
589+
// Body property omitted to test that the resource is replaced
590590
.send(post)
591591
.expect('Content-Type', /json/)
592592
.expect(post)
593593
.expect(200)
594594
// TODO find a "supertest" way to test this
595595
// https://github.com/typicode/json-server/issues/396
596596
assert.deepStrictEqual(res.body, post)
597-
// assert it was created in database too
597+
// Assert it was created in database too
598598
assert.deepStrictEqual(db.posts[0], post)
599599
})
600600

@@ -619,7 +619,7 @@ describe('Server', () => {
619619
.expect(post)
620620
.expect(200)
621621
assert.deepStrictEqual(res.body, post)
622-
// assert it was created in database too
622+
// Assert it was created in database too
623623
assert.deepStrictEqual(db.posts[0], post)
624624
})
625625

0 commit comments

Comments
 (0)