aboutsummaryrefslogtreecommitdiff
path: root/test/js/node/module/modulePrototypeOverwrite.cjs
blob: 4e84026a6a9eb9e1519a20025742202e3dd84189 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// This behavior is required for Next.js to work
const eql = require("assert").deepStrictEqual;
const Module = require("module");

const old = Module.prototype.require;
Module.prototype.require = function (str) {
  if (str === "hook") return "winner";
  return {
    wrap: old.call(this, str),
  };
};

// this context has the new require
const result = require("./modulePrototypeOverwrite-fixture.cjs");
eql(result, { wrap: "winner" });

console.log("--pass--");