diff options
author | 2023-08-02 16:27:36 -0700 | |
---|---|---|
committer | 2023-08-02 16:27:36 -0700 | |
commit | c2a77cf7ec9de9eadf938046bdf78e58561c8a6d (patch) | |
tree | 0f90f1b323061455875333c9f40592b303585973 /src/js/internal/shared.ts | |
parent | 7656b4b17e91f15b58eeab8f45b78c416ec6a045 (diff) | |
download | bun-c2a77cf7ec9de9eadf938046bdf78e58561c8a6d.tar.gz bun-c2a77cf7ec9de9eadf938046bdf78e58561c8a6d.tar.zst bun-c2a77cf7ec9de9eadf938046bdf78e58561c8a6d.zip |
Rewrite built-in modules to use CommonJS over ESM (#3814)
* stfdsafsd
sadffdsa
stuff
finish commonjs stuff
asdf
not done but work
not done but work
not done yet but this is how far i am
remove files
lol
update built files
uncomment everything in events lol
export default
stuff
* afdsafsd
* its not perfect but almost done
* okay
* cool
* remove temp file
* finish rebase
* revert settings.json
* a
* ch-ch-ch-ch-changes
* okay
* remove this check in release for now
* sxdcfghnjm,
* lkjhgf
* fmt
* filename can be null
* Update NodeModuleModule.h
* weee
* fmt
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Diffstat (limited to 'src/js/internal/shared.ts')
-rw-r--r-- | src/js/internal/shared.ts | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/js/internal/shared.ts b/src/js/internal/shared.ts new file mode 100644 index 000000000..98a5b0a71 --- /dev/null +++ b/src/js/internal/shared.ts @@ -0,0 +1,36 @@ +class NotImplementedError extends Error { + code: string; + constructor(feature: string, issue?: number) { + super( + feature + + " is not yet implemented in Bun." + + (issue ? " Track the status & thumbs up the issue: https://github.com/oven-sh/bun/issues/" + issue : ""), + ); + this.name = "NotImplementedError"; + this.code = "ERR_NOT_IMPLEMENTED"; + + // in the definition so that it isn't bundled unless used + hideFromStack(NotImplementedError); + } +} + +function throwNotImplemented(feature: string, issue?: number): never { + // in the definition so that it isn't bundled unless used + hideFromStack(throwNotImplemented); + + throw new NotImplementedError(feature, issue); +} + +function hideFromStack(...fns) { + for (const fn of fns) { + Object.defineProperty(fn, "name", { + value: "::bunternal::", + }); + } +} + +export default { + NotImplementedError, + throwNotImplemented, + hideFromStack, +}; |