Skip to content

Commit 5108c09

Browse files
test: debug
1 parent d754291 commit 5108c09

2 files changed

Lines changed: 70 additions & 61 deletions

File tree

src/index.js

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
const { Readable } = require("node:stream");
2+
13
const mime = require("mime-types");
24
const { validate } = require("schema-utils");
35

@@ -639,8 +641,39 @@ function honoWrapper(compiler, options = {}, usePlugin = false) {
639641
* @param {import("fs").ReadStream} stream readable stream
640642
*/
641643
res.stream = (stream) => {
642-
if (options.writeToDisk === true && options.debug) {
643-
console.error(stream);
644+
if (options.debug) {
645+
const patchController = () => {
646+
// @ts-expect-error for debug
647+
console.warn("[DEBUG] !!!", req.getURL());
648+
649+
const originalEmit = Readable.prototype.emit;
650+
const originalDestroy = Readable.prototype.destroy;
651+
652+
// @ts-expect-error for debug
653+
Readable.prototype.emit = function (event, ...args) {
654+
if (["close", "error", "end"].includes(event)) {
655+
console.warn(
656+
// @ts-expect-error for debug
657+
`[DEBUG] (${req.getURL()}) ${this.constructor.name} emit: "${event}"`,
658+
);
659+
}
660+
return originalEmit.apply(this, [event, ...args]);
661+
};
662+
663+
// @ts-expect-error for debug
664+
Readable.prototype.destroy = function (err) {
665+
console.warn(
666+
// @ts-expect-error for debug
667+
`[DEBUG] (${req.getURL()}) ${this.constructor.name}.destroy() call!`,
668+
);
669+
if (err) {
670+
console.error("error message:", err.message, err.stack);
671+
}
672+
return originalDestroy.call(this, err);
673+
};
674+
};
675+
676+
patchController();
644677
}
645678

646679
let isResolved = false;
@@ -649,10 +682,6 @@ function honoWrapper(compiler, options = {}, usePlugin = false) {
649682
* @param {Error=} err err
650683
*/
651684
const onEvent = (err) => {
652-
if (options.writeToDisk === true && options.debug) {
653-
console.error("onEvent", err);
654-
}
655-
656685
if (isResolved) return;
657686
isResolved = true;
658687

@@ -669,10 +698,6 @@ function honoWrapper(compiler, options = {}, usePlugin = false) {
669698
body = stream;
670699
isFinished = true;
671700

672-
if (options.writeToDisk === true && options.debug) {
673-
console.error("resolve", isFinished);
674-
}
675-
676701
resolve();
677702
};
678703

@@ -729,10 +754,6 @@ function honoWrapper(compiler, options = {}, usePlugin = false) {
729754
},
730755
);
731756
} catch (err) {
732-
if (options.writeToDisk === true && options.debug) {
733-
console.error("catch", err);
734-
}
735-
736757
if (options?.forwardError) {
737758
await next();
738759

@@ -744,18 +765,10 @@ function honoWrapper(compiler, options = {}, usePlugin = false) {
744765
return context.json({ message: /** @type {Error} */ (err).message });
745766
}
746767

747-
if (options.writeToDisk === true && options.debug) {
748-
console.error("body", body);
749-
}
750-
751768
if (typeof body !== "undefined") {
752769
return context.body(body, status);
753770
}
754771

755-
if (options.writeToDisk === true && options.debug) {
756-
console.error("next");
757-
}
758-
759772
await next();
760773
}
761774

test/middleware.test.js

Lines changed: 35 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4255,7 +4255,7 @@ describe.each([
42554255
name,
42564256
framework,
42574257
compiler,
4258-
{ writeToDisk: true, debug: true },
4258+
{ writeToDisk: true, debug: name === "hono" },
42594259
);
42604260
});
42614261

@@ -4283,22 +4283,20 @@ describe.each([
42834283
(hook) => hook.name === "DevMiddleware",
42844284
),
42854285
).toHaveLength(0);
4286-
expect(fs.existsSync(bundlePath)).toBe(true);
42874286

4288-
instance.invalidate();
4287+
expect(fs.existsSync(bundlePath)).toBe(true);
42894288

4290-
return compiler.hooks.done.tap(
4291-
"DevMiddlewareWriteToDiskTest",
4292-
() => {
4293-
expect(
4294-
compiler.hooks.assetEmitted.taps.filter(
4295-
(hook) => hook.name === "DevMiddleware",
4296-
),
4297-
).toHaveLength(0);
4289+
compiler.hooks.done.tap("DevMiddlewareWriteToDiskTest", () => {
4290+
expect(
4291+
compiler.hooks.assetEmitted.taps.filter(
4292+
(hook) => hook.name === "DevMiddleware",
4293+
),
4294+
).toHaveLength(0);
4295+
});
42984296

4299-
done();
4300-
},
4301-
);
4297+
instance.invalidate(() => {
4298+
done();
4299+
});
43024300
});
43034301
});
43044302

@@ -4380,20 +4378,19 @@ describe.each([
43804378
).toHaveLength(0);
43814379
expect(fs.existsSync(bundlePath)).toBe(true);
43824380

4383-
instance.invalidate();
4381+
compiler.hooks.done.tap("DevMiddlewareWriteToDiskTest", () => {
4382+
expect(
4383+
compiler.hooks.assetEmitted.taps.filter(
4384+
(hook) => hook.name === "DevMiddleware",
4385+
),
4386+
).toHaveLength(0);
43844387

4385-
return compiler.hooks.done.tap(
4386-
"DevMiddlewareWriteToDiskTest",
4387-
() => {
4388-
expect(
4389-
compiler.hooks.assetEmitted.taps.filter(
4390-
(hook) => hook.name === "DevMiddleware",
4391-
),
4392-
).toHaveLength(0);
4388+
done();
4389+
});
43934390

4394-
done();
4395-
},
4396-
);
4391+
instance.invalidate(() => {
4392+
done();
4393+
});
43974394
});
43984395
});
43994396
});
@@ -4440,20 +4437,19 @@ describe.each([
44404437
).toHaveLength(0);
44414438
expect(fs.existsSync(bundlePath)).toBe(false);
44424439

4443-
instance.invalidate();
4440+
compiler.hooks.done.tap("DevMiddlewareWriteToDiskTest", () => {
4441+
expect(
4442+
compiler.hooks.assetEmitted.taps.filter(
4443+
(hook) => hook.name === "DevMiddleware",
4444+
),
4445+
).toHaveLength(0);
44444446

4445-
return compiler.hooks.done.tap(
4446-
"DevMiddlewareWriteToDiskTest",
4447-
() => {
4448-
expect(
4449-
compiler.hooks.assetEmitted.taps.filter(
4450-
(hook) => hook.name === "DevMiddleware",
4451-
),
4452-
).toHaveLength(0);
4447+
done();
4448+
});
44534449

4454-
done();
4455-
},
4456-
);
4450+
instance.invalidate(() => {
4451+
done();
4452+
});
44574453
});
44584454
});
44594455
});
@@ -4641,7 +4637,7 @@ describe.each([
46414637
name,
46424638
framework,
46434639
compiler,
4644-
{ writeToDisk: true },
4640+
{ writeToDisk: true, debug: name === "hono" },
46454641
);
46464642
});
46474643

0 commit comments

Comments
 (0)