From 34a93fe75e872635b6973c53551efb15b825d822 Mon Sep 17 00:00:00 2001 From: uki00a Date: Sat, 7 Aug 2021 20:41:26 +0900 Subject: [PATCH] fix(node): assert/strict, fs/promises, perf_hooks modules could not be required --- node/module.ts | 15 +++++++++++++++ node/module_test.ts | 6 ++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/node/module.ts b/node/module.ts index d6a9354a8085..aba119c687d7 100644 --- a/node/module.ts +++ b/node/module.ts @@ -22,6 +22,7 @@ import "./global.ts"; import nodeAssert from "./assert.ts"; +import nodeAssertStrict from "./assert/strict.ts"; import nodeBuffer from "./buffer.ts"; import nodeCrypto from "./crypto.ts"; import nodeConsole from "./console.ts"; @@ -29,8 +30,10 @@ import nodeConstants from "./constants.ts"; import nodeChildProcess from "./child_process.ts"; import nodeEvents from "./events.ts"; import nodeFS from "./fs.ts"; +import nodeFSPromises from "./fs/promises.ts"; import nodeOs from "./os.ts"; import nodePath from "./path.ts"; +import nodePerfHooks from "./perf_hooks.ts"; import nodeQueryString from "./querystring.ts"; import nodeStream from "./stream.ts"; import nodeStringDecoder from "./string_decoder.ts"; @@ -618,6 +621,10 @@ function createNativeModule(id: string, exports: any): Module { } nativeModulePolyfill.set("assert", createNativeModule("assert", nodeAssert)); +nativeModulePolyfill.set( + "assert/strict", + createNativeModule("assert/strict", nodeAssertStrict), +); nativeModulePolyfill.set("buffer", createNativeModule("buffer", nodeBuffer)); nativeModulePolyfill.set( "constants", @@ -633,9 +640,17 @@ nativeModulePolyfill.set( createNativeModule("events", nodeEvents), ); nativeModulePolyfill.set("fs", createNativeModule("fs", nodeFS)); +nativeModulePolyfill.set( + "fs/promises", + createNativeModule("fs/promises", nodeFSPromises), +); nativeModulePolyfill.set("module", createNativeModule("module", Module)); nativeModulePolyfill.set("os", createNativeModule("os", nodeOs)); nativeModulePolyfill.set("path", createNativeModule("path", nodePath)); +nativeModulePolyfill.set( + "perf_hooks", + createNativeModule("perf_hooks", nodePerfHooks), +); nativeModulePolyfill.set( "querystring", createNativeModule("querystring", nodeQueryString), diff --git a/node/module_test.ts b/node/module_test.ts index e1f7e25c981c..69b9fd461d67 100644 --- a/node/module_test.ts +++ b/node/module_test.ts @@ -86,15 +86,19 @@ Deno.test("requireModuleWithConditionalExports", () => { Deno.test("requireNodeJsNativeModules", () => { // Checks these exist and don't throw. require("assert"); + require("assert/strict"); require("buffer"); require("child_process"); + require("console"); require("constants"); require("crypto"); require("events"); require("fs"); + require("fs/promises"); require("module"); require("os"); require("path"); + require("perf_hooks"); require("querystring"); require("stream"); require("string_decoder"); @@ -105,14 +109,12 @@ Deno.test("requireNodeJsNativeModules", () => { // TODO(kt3k): add these modules when implemented // require("cluster"); - // require("console"); // require("dgram"); // require("dns"); // require("http"); // require("http2"); // require("https"); // require("net"); - // require("perf_hooks"); // require("readline"); // require("repl"); // require("sys");