🚀. Socket Launch Week Day 2:Introducing Manifest Alerts.Learn more
Sign In

@hono/node-server

Package Overview
Dependencies
Maintainers
1
Versions
91
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hono/node-server - npm Package Compare versions

Comparing version
2.0.1
to
2.0.2
+65
dist/utils/stream.cjs
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
let node_stream = require("node:stream");
let node_process = require("node:process");
//#region src/utils/stream.ts
const pr54206Applied = () => {
const [major, minor] = node_process.versions.node.split(".").map((component) => parseInt(component));
return major >= 23 || major === 22 && minor >= 7 || major === 20 && minor >= 18;
};
const useReadableToWeb = pr54206Applied();
const createStreamBody = (stream, useNativeReadableToWeb = useReadableToWeb) => {
if (useNativeReadableToWeb) return node_stream.Readable.toWeb(stream);
let controller;
let settled = false;
const cleanup = () => {
stream.off("data", onData);
stream.off("error", onError);
stream.off("end", onTerminate);
stream.off("close", onTerminate);
};
const settle = (callback) => {
if (settled) return;
settled = true;
cleanup();
callback?.();
};
const onData = (chunk) => {
if (settled || !controller) return;
controller.enqueue(chunk);
if ((controller.desiredSize ?? 0) <= 0) stream.pause();
};
const onError = (error) => {
settle(() => {
controller?.error(error);
});
};
const onTerminate = () => {
settle(() => {
controller?.close();
});
};
return new ReadableStream({
start(streamController) {
controller = streamController;
stream.on("data", onData);
stream.on("error", onError);
stream.on("end", onTerminate);
stream.on("close", onTerminate);
stream.pause();
},
pull() {
if (!settled) stream.resume();
},
cancel() {
settle();
const ignoreError = () => {};
stream.on("error", ignoreError);
stream.once("close", () => stream.off("error", ignoreError));
stream.destroy();
}
});
};
//#endregion
exports.createStreamBody = createStreamBody;
import { ReadStream } from "node:fs";
//#region src/utils/stream.d.ts
declare const createStreamBody: (stream: ReadStream, useNativeReadableToWeb?: boolean) => ReadableStream<Uint8Array>;
//#endregion
export { createStreamBody };
import { ReadStream } from "node:fs";
//#region src/utils/stream.d.ts
declare const createStreamBody: (stream: ReadStream, useNativeReadableToWeb?: boolean) => ReadableStream<Uint8Array>;
//#endregion
export { createStreamBody };
import { Readable } from "node:stream";
import { versions } from "node:process";
//#region src/utils/stream.ts
const pr54206Applied = () => {
const [major, minor] = versions.node.split(".").map((component) => parseInt(component));
return major >= 23 || major === 22 && minor >= 7 || major === 20 && minor >= 18;
};
const useReadableToWeb = pr54206Applied();
const createStreamBody = (stream, useNativeReadableToWeb = useReadableToWeb) => {
if (useNativeReadableToWeb) return Readable.toWeb(stream);
let controller;
let settled = false;
const cleanup = () => {
stream.off("data", onData);
stream.off("error", onError);
stream.off("end", onTerminate);
stream.off("close", onTerminate);
};
const settle = (callback) => {
if (settled) return;
settled = true;
cleanup();
callback?.();
};
const onData = (chunk) => {
if (settled || !controller) return;
controller.enqueue(chunk);
if ((controller.desiredSize ?? 0) <= 0) stream.pause();
};
const onError = (error) => {
settle(() => {
controller?.error(error);
});
};
const onTerminate = () => {
settle(() => {
controller?.close();
});
};
return new ReadableStream({
start(streamController) {
controller = streamController;
stream.on("data", onData);
stream.on("error", onError);
stream.on("end", onTerminate);
stream.on("close", onTerminate);
stream.pause();
},
pull() {
if (!settled) stream.resume();
},
cancel() {
settle();
const ignoreError = () => {};
stream.on("error", ignoreError);
stream.once("close", () => stream.off("error", ignoreError));
stream.destroy();
}
});
};
//#endregion
export { createStreamBody };
+4
-29
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
let node_stream = require("node:stream");
const require_utils_stream = require('./utils/stream.cjs');
let hono_utils_mime = require("hono/utils/mime");
let node_fs = require("node:fs");
let node_path = require("node:path");
let node_process = require("node:process");

@@ -16,26 +15,2 @@ //#region src/serve-static.ts

const ENCODINGS_ORDERED_KEYS = Object.keys(ENCODINGS);
const pr54206Applied = () => {
const [major, minor] = node_process.versions.node.split(".").map((component) => parseInt(component));
return major >= 23 || major === 22 && minor >= 7 || major === 20 && minor >= 18;
};
const useReadableToWeb = pr54206Applied();
const createStreamBody = (stream) => {
if (useReadableToWeb) return node_stream.Readable.toWeb(stream);
return new ReadableStream({
start(controller) {
stream.on("data", (chunk) => {
controller.enqueue(chunk);
});
stream.on("error", (err) => {
controller.error(err);
});
stream.on("end", () => {
controller.close();
});
},
cancel() {
stream.destroy();
}
});
};
const getStats = (path) => {

@@ -107,2 +82,3 @@ let stats;

const range = c.req.header("range") || "";
c.header("Last-Modified", stats.mtime.toUTCString());
if (c.req.method == "HEAD" || c.req.method == "OPTIONS") {

@@ -114,6 +90,5 @@ c.header("Content-Length", size.toString());

c.header("Content-Length", size.toString());
result = c.body(createStreamBody((0, node_fs.createReadStream)(path)), 200);
result = c.body(require_utils_stream.createStreamBody((0, node_fs.createReadStream)(path)), 200);
} else {
c.header("Accept-Ranges", "bytes");
c.header("Date", stats.birthtime.toUTCString());
const parts = range.replace(/bytes=/, "").split("-", 2);

@@ -130,3 +105,3 @@ const start = parseInt(parts[0], 10) || 0;

c.header("Content-Range", `bytes ${start}-${end}/${stats.size}`);
result = c.body(createStreamBody(stream), 206);
result = c.body(require_utils_stream.createStreamBody(stream), 206);
}

@@ -133,0 +108,0 @@ await options.onFound?.(path, c);

@@ -1,6 +0,5 @@

import { Readable } from "node:stream";
import { createStreamBody } from "./utils/stream.mjs";
import { getMimeType } from "hono/utils/mime";
import { createReadStream, existsSync, statSync } from "node:fs";
import { join } from "node:path";
import { versions } from "node:process";

@@ -15,26 +14,2 @@ //#region src/serve-static.ts

const ENCODINGS_ORDERED_KEYS = Object.keys(ENCODINGS);
const pr54206Applied = () => {
const [major, minor] = versions.node.split(".").map((component) => parseInt(component));
return major >= 23 || major === 22 && minor >= 7 || major === 20 && minor >= 18;
};
const useReadableToWeb = pr54206Applied();
const createStreamBody = (stream) => {
if (useReadableToWeb) return Readable.toWeb(stream);
return new ReadableStream({
start(controller) {
stream.on("data", (chunk) => {
controller.enqueue(chunk);
});
stream.on("error", (err) => {
controller.error(err);
});
stream.on("end", () => {
controller.close();
});
},
cancel() {
stream.destroy();
}
});
};
const getStats = (path) => {

@@ -106,2 +81,3 @@ let stats;

const range = c.req.header("range") || "";
c.header("Last-Modified", stats.mtime.toUTCString());
if (c.req.method == "HEAD" || c.req.method == "OPTIONS") {

@@ -116,3 +92,2 @@ c.header("Content-Length", size.toString());

c.header("Accept-Ranges", "bytes");
c.header("Date", stats.birthtime.toUTCString());
const parts = range.replace(/bytes=/, "").split("-", 2);

@@ -119,0 +94,0 @@ const start = parseInt(parts[0], 10) || 0;

{
"name": "@hono/node-server",
"version": "2.0.1",
"version": "2.0.2",
"description": "Node.js Adapter for Hono",

@@ -5,0 +5,0 @@ "main": "dist/index.mjs",