You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
761 B
JavaScript

"use strict";
const fixESM = require("..");
const clearModule = require("clear-module");
let pDefer;
function tryRegularImport() {
clearModule("p-defer");
try {
pDefer = require("p-defer").default;
throw new Error(`This point should not be reached!`);
} catch (error) {
if (error.code === "ERR_REQUIRE_ESM") {
console.log("It works!");
} else {
throw error;
}
}
}
function tryCustomImport() {
clearModule("p-defer");
pDefer = fixESM.require("p-defer").default;
let { resolve, promise } = pDefer();
promise.then(() => {
console.log("It works!");
});
resolve();
}
tryRegularImport();
tryCustomImport();
tryRegularImport(); // Once more, to ensure that the hook hasn't lingered
// This should print "It works!" three times!