Socket
Socket
Sign inDemoInstall

json-server

Package Overview
Dependencies
Maintainers
1
Versions
154
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

json-server - npm Package Compare versions

Comparing version 0.7.2 to 0.7.3

4

package.json
{
"name": "json-server",
"version": "0.7.2",
"version": "0.7.3",
"description": "Serves JSON files through REST routes.",

@@ -21,4 +21,2 @@ "main": "./src/index.js",

"node-uuid": "^1.4.2",
"serve-static": "^1.6.1",
"superagent": "^0.15.7",
"underscore": "^1.5.2",

@@ -25,0 +23,0 @@ "underscore-db": "^0.8.0",

@@ -53,7 +53,8 @@ # JSON Server [![](https://travis-ci.org/typicode/json-server.svg)](https://travis-ci.org/typicode/json-server) [![](https://badge.fury.io/js/json-server.svg)](http://badge.fury.io/js/json-server)

To slice resources, add `_start` and `_end`. An `X-Total-Count` header is included in the response.
To slice resources, add `_start` and `_end` or `_limit`. An `X-Total-Count` header is included in the response.
```
GET /posts?_start=0&_end=10
GET /posts/1/comments?_start=0&_end=10
GET /posts?_start=20&_end=30
GET /posts?_start=20&_limit=10
GET /posts/1/comments?_start=20&_end=30
```

@@ -60,0 +61,0 @@

var fs = require('fs')
var express = require('express')
var logger = require('morgan')
var cors = require('cors')
var serveStatic = require('serve-static')
var errorhandler = require('errorhandler')

@@ -16,5 +16,5 @@

if (fs.existsSync(process.cwd() + '/public')) {
arr.push(serveStatic(process.cwd() + '/public'));
arr.push(express.static(process.cwd() + '/public'));
} else {
arr.push(serveStatic(__dirname + '/public'));
arr.push(express.static(__dirname + '/public'));
}

@@ -21,0 +21,0 @@

@@ -10,3 +10,3 @@ var express = require('express')

low.mixin(require('underscore.inflections'))
low.mixin({ createId: utils.createId })
low.mixin({createId: utils.createId})

@@ -19,3 +19,3 @@ module.exports = function(source) {

router.use(bodyParser.json({limit: '10mb'}))
router.use(bodyParser.urlencoded({ extended: false }))
router.use(bodyParser.urlencoded({extended: false}))
router.use(methodOverride())

@@ -57,3 +57,3 @@

// Remove _start and _end from req.query to avoid filtering using those
// Remove _start, _end and _limit from req.query to avoid filtering using those
// parameters

@@ -64,3 +64,3 @@ var _start = req.query._start

var _order = req.query._order
var _limit = req.query._limit
delete req.query._start

@@ -70,2 +70,3 @@ delete req.query._end

delete req.query._order
delete req.query._limit

@@ -90,3 +91,3 @@ if (req.query.q) {

if (req.params.parent) {
filters[req.params.parent.slice(0, - 1) + 'Id'] = +req.params.parentId
filters[req.params.parent.slice(0, -1) + 'Id'] = +req.params.parentId
}

@@ -113,3 +114,3 @@

// Sort
if(_sort) {
if (_sort) {
_order = _order || 'ASC'

@@ -127,9 +128,14 @@

// Slice result
if (_end) {
if (_end || _limit) {
res.setHeader('X-Total-Count', array.length)
res.setHeader('Access-Control-Expose-Headers', 'X-Total-Count')
}
_start = _start || 0
_start = parseInt(_start) || 0
array = array.slice(_start, _end)
if (_end) {
array = array.slice(_start, parseInt(_end))
} else if (_limit) {
// Convert strings to int and sum to get end value
array = array.slice(_start, parseInt(_start) + parseInt(_limit))
}

@@ -136,0 +142,0 @@

@@ -52,3 +52,3 @@ var _ = require('underscore')

if (/Id$/.test(key)) {
var refName = _.pluralize(key.slice(0, - 2))
var refName = _.pluralize(key.slice(0, -2))
// Test if table exists

@@ -59,3 +59,3 @@ if (db[refName]) {

if (_.isUndefined(ref)) {
removable.push({ name: collName, id: doc.id })
removable.push({name: collName, id: doc.id})
}

@@ -62,0 +62,0 @@ }

var request = require('supertest')
var assert = require('assert')
var jsonServer = require('../src/')
var assert = require('assert')
var jsonServer = require('../src/')
var utils = require('../src/utils')
describe('Server', function() {

@@ -26,7 +26,7 @@

db.comments = [
{id: 1, published: true, postId: 1},
{id: 1, published: true, postId: 1},
{id: 2, published: false, postId: 1},
{id: 3, published: false, postId: 2},
{id: 4, published: false, postId: 2},
{id: 5, published: false, postId: 2},
{id: 5, published: false, postId: 2}
]

@@ -93,7 +93,7 @@

it('should return an empty array when nothing is matched', function(done) {
request(server)
.get('/tags?q=nope')
.expect('Content-Type', /json/)
.expect([])
.expect(200, done)
request(server)
.get('/tags?q=nope')
.expect('Content-Type', /json/)
.expect([])
.expect(200, done)
})

@@ -115,25 +115,25 @@ })

describe('GET /:resource?sort=', function() {
it('should respond with json and sort on a field', function(done) {
request(server)
.get('/tags?_sort=body')
.expect('Content-Type', /json/)
.expect([db.tags[1], db.tags[0], db.tags[2]])
.expect(200, done)
})
it('should respond with json and sort on a field', function(done) {
request(server)
.get('/tags?_sort=body')
.expect('Content-Type', /json/)
.expect([db.tags[1], db.tags[0], db.tags[2]])
.expect(200, done)
})
it('should reverse sorting with _order=DESC', function(done) {
request(server)
.get('/tags?_sort=body&_order=DESC')
.expect('Content-Type', /json/)
.expect([db.tags[2], db.tags[0], db.tags[1]])
.expect(200, done)
})
it('should reverse sorting with _order=DESC', function(done) {
request(server)
.get('/tags?_sort=body&_order=DESC')
.expect('Content-Type', /json/)
.expect([db.tags[2], db.tags[0], db.tags[1]])
.expect(200, done)
})
it('should sort on numerical field', function(done) {
request(server)
.get('/posts?_sort=id&_order=DESC')
.expect('Content-Type', /json/)
.expect(db.posts.reverse())
.expect(200, done)
})
it('should sort on numerical field', function(done) {
request(server)
.get('/posts?_sort=id&_order=DESC')
.expect('Content-Type', /json/)
.expect(db.posts.reverse())
.expect(200, done)
})
})

@@ -153,2 +153,14 @@

describe('GET /:resource?_start=&_limit=', function() {
it('should respond with a limited array', function(done) {
request(server)
.get('/comments?_start=1&_limit=1')
.expect('Content-Type', /json/)
.expect('x-total-count', db.comments.length.toString())
.expect('Access-Control-Expose-Headers', 'X-Total-Count')
.expect(db.comments.slice(1, 2))
.expect(200, done)
})
})
describe('GET /:parent/:parentId/:resource', function() {

@@ -161,3 +173,4 @@ it('should respond with json and corresponding nested resources', function(done) {

db.comments[0],
db.comments[1]
db.comments[1],
])

@@ -204,3 +217,3 @@ .expect(200, done)

.expect(200)
.end(function(err, res){
.end(function(err, res) {
if (err) return done(err)

@@ -219,3 +232,3 @@ assert.equal(db.posts.length, 3)

.expect(200)
.end(function(err, res){
.end(function(err, res) {
if (err) return done(err)

@@ -236,3 +249,3 @@ assert.equal(db.refs.length, 2)

.expect(200)
.end(function(err, res){
.end(function(err, res) {
if (err) return done(err)

@@ -263,3 +276,3 @@ // assert it was created in database too

.expect(200)
.end(function(err, res){
.end(function(err, res) {
if (err) return done(err)

@@ -288,3 +301,3 @@ // assert it was created in database too

.expect(200)
.end(function(err, res){
.end(function(err, res) {
if (err) return done(err)

@@ -291,0 +304,0 @@ assert.equal(db.posts.length, 1)

var assert = require('assert')
var utils = require('../src/utils')
var utils = require('../src/utils')

@@ -23,4 +23,4 @@ describe('utils', function() {

var expected = [
{ name: 'comments', id: 2 },
{ name: 'comments', id: 3 }
{name: 'comments', id: 2},
{name: 'comments', id: 3}
]

@@ -27,0 +27,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc