New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

route-cache

Package Overview
Dependencies
Maintainers
1
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

route-cache - npm Package Compare versions

Comparing version 0.4.1 to 0.4.2

.nvmrc

36

index.js
'use strict'
var LRU = require('lru-cache')
const LRU = require('lru-cache')
const debug = require('debug')('route-cache')
const queues = Object.create(null)
var queues = {}
var defaults = {
const defaults = {
max: 64 * 1000000, // ~64mb

@@ -15,3 +16,3 @@ length: function (n, key) {

}
var cacheStore = new LRU(defaults)
let cacheStore = new LRU(defaults)

@@ -27,4 +28,5 @@ module.exports.config = function (opts) {

function drainQueue (key) {
var subscriber = null
while (queues[key].length > 0) {
debug('drain!', key)
let subscriber = null
while (queues[key] && queues[key].length > 0) {
subscriber = queues[key].shift()

@@ -37,3 +39,3 @@ process.nextTick(subscriber)

module.exports.cacheSeconds = function (secondsTTL, cacheKey) {
var ttl = secondsTTL * 1000
const ttl = secondsTTL * 1000
return function (req, res, next) {

@@ -49,3 +51,3 @@ var key = req.originalUrl // default cache key

var redirectKey = cacheStore.get('redirect:' + key)
const redirectKey = cacheStore.get('redirect:' + key)
if (redirectKey) {

@@ -55,5 +57,6 @@ return res.redirect(redirectKey.status, redirectKey.url)

var value = cacheStore.get(key)
const value = cacheStore.get(key)
if (value) {
// returns the value immediately
debug('hit!!', key)
if (value.isJson) {

@@ -78,2 +81,3 @@ res.json(value.body)

function rawSend (data, isJson) {
debug('rawSend', typeof data, data.length)
// pass-through for Buffer - not supported

@@ -97,4 +101,6 @@ if (typeof data === 'object') {

if (isJson) {
debug('res.original_json')
res.original_json(body)
} else {
debug('res.original_send')
res.original_send(body)

@@ -106,2 +112,3 @@ }

if (queues[key].length === 0) {
debug('miss:', key)
queues[key].push(function noop () {})

@@ -112,2 +119,3 @@

res.send = function (data) {
// debug('res.send() >>', data.length)
if (didHandle) {

@@ -126,4 +134,4 @@ res.original_send(data)

res.redirect = function (url) {
var address = url
var status = 302
let address = url
let status = 302

@@ -149,4 +157,5 @@ // allow statusCode for 301 redirect. See: https://github.com/expressjs/express/blob/master/lib/response.js#L857

} else {
debug(key, '>> has queue.length:', queues[key].length)
queues[key].push(function () {
var redirectKey = cacheStore.get('redirect:' + key)
const redirectKey = cacheStore.get('redirect:' + key)
if (redirectKey) {

@@ -156,3 +165,4 @@ return res.redirect(redirectKey.status, redirectKey.url)

var value = cacheStore.get(key) || {}
const value = cacheStore.get(key) || {}
debug('>> queued hit:', key, value.length)
if (value.isJson) {

@@ -159,0 +169,0 @@ res.json(value.body)

{
"name": "route-cache",
"version": "0.4.1",
"version": "0.4.2",
"description": "express middleware for caching your routes",
"main": "index.js",
"scripts": {
"test": "standard && mocha -R spec test"
"test": "standard && DEBUG=route-cache mocha -R spec test"
},

@@ -22,2 +22,3 @@ "repository": {

"dependencies": {
"debug": "3.0.1",
"lru-cache": "4.0.1"

@@ -24,0 +25,0 @@ },

@@ -0,12 +1,13 @@

/* globals decribe */
'use strict'
var request = require('supertest'),
routeCache = require('../index'),
express = require('express')
const request = require('supertest')
const routeCache = require('../index')
const express = require('express')
var testindex = 0
var paramTestindex = 0
var testindexRemove = 0
let testindex = 0
let paramTestindex = 0
let testindexRemove = 0
describe('# RouteCache middleware test', function () {
var app = express()
const app = express()

@@ -51,3 +52,3 @@ app.get('/hello', routeCache.cacheSeconds(1), function (req, res) {

var agent = request.agent(app)
const agent = request.agent(app)

@@ -133,3 +134,3 @@ it('1st Hello', function (done) {

it("Error states don't get cached", function (done) {
var message
let message

@@ -136,0 +137,0 @@ agent.get('/500').expect(500).end(function (req, res) {

Sorry, the diff of this file is not supported yet

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