Add prettier

This commit is contained in:
typicode
2017-07-02 15:09:32 +02:00
parent 9fd9c3134a
commit 13a231d794
31 changed files with 1041 additions and 1206 deletions

View File

@ -10,26 +10,32 @@ module.exports = (db, name, opts) => {
const router = express.Router()
// Embed function used in GET /name and GET /name/id
function embed (resource, e) {
e && [].concat(e)
.forEach((externalResource) => {
function embed(resource, e) {
e &&
[].concat(e).forEach(externalResource => {
if (db.get(externalResource).value) {
const query = {}
const singularResource = pluralize.singular(name)
query[`${singularResource}${opts.foreignKeySuffix}`] = resource.id
resource[externalResource] = db.get(externalResource).filter(query).value()
resource[externalResource] = db
.get(externalResource)
.filter(query)
.value()
}
})
}
// Expand function used in GET /name and GET /name/id
function expand (resource, e) {
e && [].concat(e)
.forEach((innerResource) => {
function expand(resource, e) {
e &&
[].concat(e).forEach(innerResource => {
const plural = pluralize(innerResource)
if (db.get(plural).value()) {
const prop = `${innerResource}${opts.foreignKeySuffix}`
resource[innerResource] = db.get(plural).getById(resource[prop]).value()
resource[innerResource] = db
.get(plural)
.getById(resource[prop])
.value()
}
})
}
@ -40,7 +46,7 @@ module.exports = (db, name, opts) => {
// GET /name?_end=&
// GET /name?_start=&_end=&
// GET /name?_embed=&_expand=
function list (req, res, next) {
function list(req, res, next) {
// Resource chain
let chain = db.get(name)
@ -66,7 +72,7 @@ module.exports = (db, name, opts) => {
// Automatically delete query parameters that can't be found
// in the database
Object.keys(req.query).forEach((query) => {
Object.keys(req.query).forEach(query => {
const arr = db.get(name).value()
for (let i in arr) {
if (
@ -77,7 +83,8 @@ module.exports = (db, name, opts) => {
/_gte$/.test(query) ||
/_ne$/.test(query) ||
/_like$/.test(query)
) return
)
return
}
delete req.query[query]
})
@ -90,7 +97,7 @@ module.exports = (db, name, opts) => {
q = q.toLowerCase()
chain = chain.filter((obj) => {
chain = chain.filter(obj => {
for (let key in obj) {
const value = obj[key]
if (db._.deepQuery(value, q)) {
@ -100,16 +107,16 @@ module.exports = (db, name, opts) => {
})
}
Object.keys(req.query).forEach((key) => {
Object.keys(req.query).forEach(key => {
// Don't take into account JSONP query parameters
// jQuery adds a '_' query parameter too
if (key !== 'callback' && key !== '_') {
// Always use an array, in case req.query is an array
const arr = [].concat(req.query[key])
chain = chain.filter((element) => {
chain = chain.filter(element => {
return arr
.map(function (value) {
.map(function(value) {
const isDifferent = /_ne$/.test(key)
const isRange = /_lte$/.test(key) || /_gte$/.test(key)
const isLike = /_like$/.test(key)
@ -152,7 +159,10 @@ module.exports = (db, name, opts) => {
// Slice result
if (_end || _limit || _page) {
res.setHeader('X-Total-Count', chain.size())
res.setHeader('Access-Control-Expose-Headers', 'X-Total-Count' + (_page ? ', Link' : ''))
res.setHeader(
'Access-Control-Expose-Headers',
'X-Total-Count' + (_page ? ', Link' : '')
)
}
if (_page) {
@ -164,19 +174,31 @@ module.exports = (db, name, opts) => {
const fullURL = getFullURL(req)
if (page.first) {
links.first = fullURL.replace('page=' + page.current, 'page=' + page.first)
links.first = fullURL.replace(
'page=' + page.current,
'page=' + page.first
)
}
if (page.prev) {
links.prev = fullURL.replace('page=' + page.current, 'page=' + page.prev)
links.prev = fullURL.replace(
'page=' + page.current,
'page=' + page.prev
)
}
if (page.next) {
links.next = fullURL.replace('page=' + page.current, 'page=' + page.next)
links.next = fullURL.replace(
'page=' + page.current,
'page=' + page.next
)
}
if (page.last) {
links.last = fullURL.replace('page=' + page.current, 'page=' + page.last)
links.last = fullURL.replace(
'page=' + page.current,
'page=' + page.last
)
}
res.links(links)
@ -192,12 +214,10 @@ module.exports = (db, name, opts) => {
}
// embed and expand
chain = chain
.cloneDeep()
.forEach(function (element) {
embed(element, _embed)
expand(element, _expand)
})
chain = chain.cloneDeep().forEach(function(element) {
embed(element, _embed)
expand(element, _expand)
})
res.locals.data = chain.value()
next()
@ -205,12 +225,10 @@ module.exports = (db, name, opts) => {
// GET /name/:id
// GET /name/:id?_embed=&_expand
function show (req, res, next) {
function show(req, res, next) {
const _embed = req.query._embed
const _expand = req.query._expand
const resource = db.get(name)
.getById(req.params.id)
.value()
const resource = db.get(name).getById(req.params.id).value()
if (resource) {
// Clone resource to avoid making changes to the underlying object
@ -231,11 +249,8 @@ module.exports = (db, name, opts) => {
}
// POST /name
function create (req, res, next) {
const resource = db
.get(name)
.insert(req.body)
.value()
function create(req, res, next) {
const resource = db.get(name).insert(req.body).value()
res.setHeader('Access-Control-Expose-Headers', 'Location')
res.location(`${getFullURL(req)}/${resource.id}`)
@ -248,13 +263,14 @@ module.exports = (db, name, opts) => {
// PUT /name/:id
// PATCH /name/:id
function update (req, res, next) {
function update(req, res, next) {
const id = req.params.id
let chain = db.get(name)
chain = req.method === 'PATCH'
? chain.updateById(id, req.body)
: chain.replaceById(id, req.body)
chain =
req.method === 'PATCH'
? chain.updateById(id, req.body)
: chain.replaceById(id, req.body)
const resource = chain.value()
@ -266,19 +282,15 @@ module.exports = (db, name, opts) => {
}
// DELETE /name/:id
function destroy (req, res, next) {
const resource = db.get(name)
.removeById(req.params.id)
.value()
function destroy(req, res, next) {
const resource = db.get(name).removeById(req.params.id).value()
// Remove dependents documents
console.log({opts})
console.log({ opts })
const removable = db._.getRemovable(db.getState(), opts)
console.log(removable)
removable.forEach((item) => {
db.get(item.name)
.removeById(item.id)
.value()
removable.forEach(item => {
db.get(item.name).removeById(item.id).value()
})
if (resource) {
@ -290,11 +302,10 @@ module.exports = (db, name, opts) => {
const w = write(db)
router.route('/')
.get(list)
.post(create, w)
router.route('/').get(list).post(create, w)
router.route('/:id')
router
.route('/:id')
.get(show)
.put(update, w)
.patch(update, w)