diff options
author | 2023-04-01 21:13:27 -0700 | |
---|---|---|
committer | 2023-04-01 21:13:27 -0700 | |
commit | fcd8b828644cc3cf2bd46bbfc0f6b90789d5dba2 (patch) | |
tree | 075ad9fc3375a56b71da4ce6625419e5dd10cdba /src/bun.js/cluster.exports.js | |
parent | 63d138b0466765e012aaa216ab684b2d39888e64 (diff) | |
download | bun-fcd8b828644cc3cf2bd46bbfc0f6b90789d5dba2.tar.gz bun-fcd8b828644cc3cf2bd46bbfc0f6b90789d5dba2.tar.zst bun-fcd8b828644cc3cf2bd46bbfc0f6b90789d5dba2.zip |
Add stubs for missing node builtins (#2534)
* Stub `node:v8`
* Stub `node:trace_events`
* Stub `node:repl`
* Stub `node:inspector`
* Stub `node:http2`
* Stub `node:diagnostics_channel`
* Stub `node:dgram`
* Stub `node:cluster`
* Link stubs
* cleanup
* Clean up the test
* Implement `node:vm` stub
* Cleanup `v8` module stub
* Add missing `promises` export to node:stream
* Implement `node:stream/promise`
* Implement `node:assert/strict`
* cleanup
* better errors
* Increaase timeout
* Update inspector.exports.js
* Make the version consistent
* Implement `process.binding("constants")`
* Update runner.node.mjs
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Diffstat (limited to 'src/bun.js/cluster.exports.js')
-rw-r--r-- | src/bun.js/cluster.exports.js | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/bun.js/cluster.exports.js b/src/bun.js/cluster.exports.js new file mode 100644 index 000000000..201310dd5 --- /dev/null +++ b/src/bun.js/cluster.exports.js @@ -0,0 +1,57 @@ +// This is a stub +// We leave it in here to provide a better error message +// TODO: implement node cluster +const { EventEmitter } = import.meta.require("node:events"); +class TODO extends Error { + constructor( + message = "node:cluster is not implemented yet in Bun. Track the status: https://github.com/oven-sh/bun/issues/2428", + ) { + super(message); + this.name = "TODO"; + } +} + +export var SCHED_NONE = 0, + SCHED_RR = 1, + Worker, + schedulingPolicy = 2, + isWorker = false, + isPrimary = true, + isMaster = true, + cluster; + +Worker = function Worker() { + throw new TODO("Worker is not implemented yet in Bun"); +}; + +// TODO: is it okay for this to be a class? +class Cluster extends EventEmitter { + static isWorker = false; + static isPrimary = true; + static isMaster = true; + + static Worker = Worker; + + fork() { + throw new TODO(); + } + + disconnect() { + throw new TODO(); + } + + setupMaster() { + throw new TODO(); + } + + settings = {}; + workers = {}; + SCHED_NONE = 0; + SCHED_RR = 1; + schedulingPolicy = 2; + [Symbol.for("CommonJS")] = 0; +} + +cluster = new Cluster(); + +export { cluster as default }; |