Socket
Socket
Sign inDemoInstall

serve-handler

Package Overview
Dependencies
Maintainers
1
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

serve-handler - npm Package Compare versions

Comparing version 3.6.2 to 4.0.0

5

package.json
{
"name": "serve-handler",
"version": "3.6.2",
"version": "4.0.0",
"description": "The routing foundation of `serve` and static deployments on Now",

@@ -72,4 +72,5 @@ "main": "src/index.js",

"path-is-inside": "1.0.2",
"path-to-regexp": "2.2.1"
"path-to-regexp": "2.2.1",
"range-parser": "1.2.0"
}
}

4

README.md

@@ -268,3 +268,3 @@ # serve-handler

stat(path) {},
createReadStream(path) {},
createReadStream(path, config) {}
readdir(path) {},

@@ -275,2 +275,4 @@ sendError(absolutePath, response, acceptsJSON, root, handlers, config, error) {}

**NOTE:** It's important that – for native methods like `createReadStream` – all arguments are passed on to the native call.
## Use Cases

@@ -277,0 +279,0 @@

@@ -15,2 +15,3 @@ // Native

const isPathInside = require('path-is-inside');
const parseRange = require('range-parser');

@@ -208,3 +209,4 @@ // Other

type: 'inline'
})
}),
'Accept-Ranges': 'bytes'
};

@@ -649,5 +651,31 @@

const stream = await handlers.createReadStream(absolutePath);
const streamOpts = {};
// TODO ? if-range
if (request.headers.range) {
const range = parseRange(stats.size, request.headers.range);
if (typeof range === 'object' && range.type === 'bytes') {
const {start, end} = range[0];
streamOpts.start = start;
streamOpts.end = end;
response.statusCode = 206;
} else {
response.statusCode = 416;
response.setHeader('Content-Range', `bytes */${stats.size}`);
}
}
// TODO ? multiple ranges
const stream = await handlers.createReadStream(absolutePath, streamOpts);
const headers = await getHeaders(config.headers, current, absolutePath, stats);
// eslint-disable-next-line no-undefined
if (streamOpts.start !== undefined && streamOpts.end !== undefined) {
headers['Content-Range'] = `bytes ${streamOpts.start}-${streamOpts.end}/${stats.size}`;
headers['Content-Length'] = streamOpts.end - streamOpts.start + 1;
}
// We need to check for `headers.ETag` being truthy first, otherwise it will

@@ -654,0 +682,0 @@ // match `undefined` being equal to `undefined`, which is true.

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