aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-10-27 15:08:44 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-10-27 15:09:20 -0700
commit901c4f57aa1fd0914c5f153fe56768f23b7a6511 (patch)
treeeb4455537f8ee256c5ea9cd3ba71527610233046 /src
parent1c6da5934d31273da13dd66c03ef6eab5437f198 (diff)
downloadbun-901c4f57aa1fd0914c5f153fe56768f23b7a6511.tar.gz
bun-901c4f57aa1fd0914c5f153fe56768f23b7a6511.tar.zst
bun-901c4f57aa1fd0914c5f153fe56768f23b7a6511.zip
Implement `process.release`
Diffstat (limited to 'src')
-rw-r--r--src/bun.js/bindings/Process.cpp31
-rw-r--r--src/cli/upgrade_command.zig9
2 files changed, 40 insertions, 0 deletions
diff --git a/src/bun.js/bindings/Process.cpp b/src/bun.js/bindings/Process.cpp
index d9a908541..1cb61c3a6 100644
--- a/src/bun.js/bindings/Process.cpp
+++ b/src/bun.js/bindings/Process.cpp
@@ -272,6 +272,34 @@ static JSC_DEFINE_HOST_FUNCTION(Process_functionChdir,
return JSC::JSValue::encode(result);
}
+extern "C" const char* Bun__githubURL;
+
+JSC_DEFINE_CUSTOM_GETTER(Process_getterRelease, (JSGlobalObject * globalObject, EncodedJSValue thisValue, PropertyName))
+{
+ auto& vm = globalObject->vm();
+
+ auto* release = JSC::constructEmptyObject(globalObject);
+ release->putDirect(vm, Identifier::fromString(vm, "name"_s), jsString(vm, WTF::String("bun"_s)), 0);
+ release->putDirect(vm, Identifier::fromString(vm, "lts"_s), jsBoolean(false), 0);
+ release->putDirect(vm, Identifier::fromString(vm, "sourceUrl"_s), jsString(vm, WTF::String(Bun__githubURL, strlen(Bun__githubURL))), 0);
+ release->putDirect(vm, Identifier::fromString(vm, "headersUrl"_s), jsEmptyString(vm), 0);
+ release->putDirect(vm, Identifier::fromString(vm, "libUrl"_s), jsEmptyString(vm), 0);
+
+ return JSValue::encode(release);
+}
+
+JSC_DEFINE_CUSTOM_SETTER(Process_setterRelease,
+ (JSC::JSGlobalObject * globalObject, JSC::EncodedJSValue thisValue,
+ JSC::EncodedJSValue value, JSC::PropertyName))
+{
+ JSC::VM& vm = globalObject->vm();
+
+ JSC::JSObject* thisObject = JSC::jsDynamicCast<JSC::JSObject*>(JSValue::decode(thisValue));
+ thisObject->putDirect(vm, JSC::Identifier::fromString(vm, "release"_s), JSValue::decode(value), 0);
+
+ return true;
+}
+
void Process::finishCreation(JSC::VM& vm)
{
Base::finishCreation(vm);
@@ -368,6 +396,9 @@ void Process::finishCreation(JSC::VM& vm)
hrtime->putDirect(vm, JSC::Identifier::fromString(vm, "bigint"_s), hrtimeBigInt);
this->putDirect(this->vm(), JSC::Identifier::fromString(this->vm(), "hrtime"_s), hrtime);
+
+ this->putDirectCustomAccessor(vm, JSC::PropertyName(JSC::Identifier::fromString(vm, "release"_s)),
+ JSC::CustomGetterSetter::create(vm, Process_getterRelease, Process_setterRelease), 0);
}
const JSC::ClassInfo Process::s_info = { "Process"_s, &Base::s_info, nullptr, nullptr,
diff --git a/src/cli/upgrade_command.zig b/src/cli/upgrade_command.zig
index 05d8a9cd6..9aa20875b 100644
--- a/src/cli/upgrade_command.zig
+++ b/src/cli/upgrade_command.zig
@@ -92,9 +92,18 @@ pub const Version = struct {
const current_version: string = "bun-v" ++ Global.package_json_version;
+ pub export const Bun__githubURL: [*:0]const u8 = std.fmt.comptimePrint("https://github.com/oven-sh/bun/release/bun-v{s}/{s}", .{
+ Global.package_json_version,
+ zip_filename,
+ });
+
pub fn isCurrent(this: Version) bool {
return strings.eqlComptime(this.tag, current_version);
}
+
+ comptime {
+ _ = Bun__githubURL;
+ }
};
pub const UpgradeCheckerThread = struct {