Skip to content

Instantly share code, notes, and snippets.

@ArtemAvramenko
Last active December 30, 2024 14:39
Show Gist options
  • Save ArtemAvramenko/aafa156df5a2f8956245 to your computer and use it in GitHub Desktop.
Save ArtemAvramenko/aafa156df5a2f8956245 to your computer and use it in GitHub Desktop.
Shams CommonJS modules
// https://stackoverflow.com/a/31930918/5171110
var module: { exports: any };
var exports = {
sham: (() => {
var sham = ((moduleName: string) => {
exports = { sham };
module = sham.modules[moduleName] = { exports };
}) as {
(moduleName: string): void;
modules: { [moduleName: string]: { exports: any } };
};
sham.modules = {};
return sham;
})()
};
var require = function (oldRequire: (moduleName: string) => any) {
return (moduleName: string) =>
exports.sham.modules[moduleName].exports || oldRequire(moduleName);
} (require!);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment