From 2046aeed70efac1e17f1df8873da25e00bb4e2b2 Mon Sep 17 00:00:00 2001 From: lionel-rowe Date: Thu, 14 Sep 2023 13:06:58 +0800 Subject: feat(ext/web): Add name to Deno.customInspect of File objects (#20415) Fixes https://github.com/denoland/deno/issues/20414 --- cli/tests/unit/file_test.ts | 11 +++++++++++ ext/web/09_file.js | 12 ++++++++++++ 2 files changed, 23 insertions(+) diff --git a/cli/tests/unit/file_test.ts b/cli/tests/unit/file_test.ts index 23583ac2e..26ee110b6 100644 --- a/cli/tests/unit/file_test.ts +++ b/cli/tests/unit/file_test.ts @@ -99,3 +99,14 @@ Deno.test(function fileUsingNumberFileName() { Deno.test(function fileUsingEmptyStringFileName() { testSecondArgument("", ""); }); + +Deno.test(function inspectFile() { + assertEquals( + Deno.inspect(new File([], "file-name.txt")), + `File { name: "file-name.txt", size: 0, type: "" }`, + ); + assertEquals( + Deno.inspect(new File([], "file-name.txt", { type: "text/plain" })), + `File { name: "file-name.txt", size: 0, type: "text/plain" }`, + ); +}); diff --git a/ext/web/09_file.js b/ext/web/09_file.js index 94981a2f4..fd0451438 100644 --- a/ext/web/09_file.js +++ b/ext/web/09_file.js @@ -535,6 +535,18 @@ class File extends Blob { webidl.assertBranded(this, FilePrototype); return this[_LastModified]; } + + [SymbolFor("Deno.customInspect")](inspect) { + return inspect(createFilteredInspectProxy({ + object: this, + evaluate: ObjectPrototypeIsPrototypeOf(FilePrototype, this), + keys: [ + "name", + "size", + "type", + ], + })); + } } webidl.configurePrototype(File); -- cgit v1.2.3