Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit e9b4d24

Browse filesBrowse files
joyeecheungaddaleax
authored andcommitted
src: move arch, platform and release into node_metadata.cc
Move definitions of more metadata into node_metadata{.h, .cc} so the data can be reused and easily inspected in C++. PR-URL: #25293 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent 43535f5 commit e9b4d24
Copy full SHA for e9b4d24

File tree

Expand file treeCollapse file tree

3 files changed

+82
-48
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

3 files changed

+82
-48
lines changed
Open diff view settings
Collapse file

‎src/node.cc‎

Copy file name to clipboardExpand all lines: src/node.cc
+26-47Lines changed: 26 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,10 @@ class NodeTraceStateObserver :
170170
TRACE_EVENT_METADATA1("__metadata", "process_name",
171171
"name", TRACE_STR_COPY(name_buffer));
172172
}
173-
TRACE_EVENT_METADATA1("__metadata", "version",
174-
"node", NODE_VERSION_STRING);
173+
TRACE_EVENT_METADATA1("__metadata",
174+
"version",
175+
"node",
176+
per_process::metadata.versions.node.c_str());
175177
TRACE_EVENT_METADATA1("__metadata", "thread_name",
176178
"name", "JavaScriptMainThread");
177179

@@ -186,13 +188,15 @@ class NodeTraceStateObserver :
186188

187189
trace_process->EndDictionary();
188190

189-
trace_process->SetString("arch", NODE_ARCH);
190-
trace_process->SetString("platform", NODE_PLATFORM);
191+
trace_process->SetString("arch", per_process::metadata.arch.c_str());
192+
trace_process->SetString("platform",
193+
per_process::metadata.platform.c_str());
191194

192195
trace_process->BeginDictionary("release");
193-
trace_process->SetString("name", NODE_RELEASE);
196+
trace_process->SetString("name",
197+
per_process::metadata.release.name.c_str());
194198
#if NODE_VERSION_IS_LTS
195-
trace_process->SetString("lts", NODE_VERSION_LTS_CODENAME);
199+
trace_process->SetString("lts", per_process::metadata.release.lts.c_str());
196200
#endif
197201
trace_process->EndDictionary();
198202
TRACE_EVENT_METADATA1("__metadata", "node",
@@ -888,54 +892,29 @@ void SetupProcessObject(Environment* env,
888892
#undef V
889893

890894
// process.arch
891-
READONLY_PROPERTY(process, "arch", OneByteString(env->isolate(), NODE_ARCH));
895+
READONLY_STRING_PROPERTY(process, "arch", per_process::metadata.arch);
892896

893897
// process.platform
894-
READONLY_PROPERTY(process,
895-
"platform",
896-
OneByteString(env->isolate(), NODE_PLATFORM));
898+
READONLY_STRING_PROPERTY(process, "platform", per_process::metadata.platform);
897899

898900
// process.release
899901
Local<Object> release = Object::New(env->isolate());
900902
READONLY_PROPERTY(process, "release", release);
901-
READONLY_PROPERTY(release, "name",
902-
OneByteString(env->isolate(), NODE_RELEASE));
903-
903+
READONLY_STRING_PROPERTY(release, "name", per_process::metadata.release.name);
904904
#if NODE_VERSION_IS_LTS
905-
READONLY_PROPERTY(release, "lts",
906-
OneByteString(env->isolate(), NODE_VERSION_LTS_CODENAME));
907-
#endif
908-
909-
// if this is a release build and no explicit base has been set
910-
// substitute the standard release download URL
911-
#ifndef NODE_RELEASE_URLBASE
912-
# if NODE_VERSION_IS_RELEASE
913-
# define NODE_RELEASE_URLBASE "https://nodejs.org/download/release/"
914-
# endif
915-
#endif
916-
917-
#if defined(NODE_RELEASE_URLBASE)
918-
# define NODE_RELEASE_URLPFX NODE_RELEASE_URLBASE "v" NODE_VERSION_STRING "/"
919-
# define NODE_RELEASE_URLFPFX NODE_RELEASE_URLPFX "node-v" NODE_VERSION_STRING
920-
921-
READONLY_PROPERTY(release,
922-
"sourceUrl",
923-
OneByteString(env->isolate(),
924-
NODE_RELEASE_URLFPFX ".tar.gz"));
925-
READONLY_PROPERTY(release,
926-
"headersUrl",
927-
OneByteString(env->isolate(),
928-
NODE_RELEASE_URLFPFX "-headers.tar.gz"));
929-
# ifdef _WIN32
930-
READONLY_PROPERTY(release,
931-
"libUrl",
932-
OneByteString(env->isolate(),
933-
strcmp(NODE_ARCH, "ia32") ? NODE_RELEASE_URLPFX "win-"
934-
NODE_ARCH "/node.lib"
935-
: NODE_RELEASE_URLPFX
936-
"win-x86/node.lib"));
937-
# endif
938-
#endif
905+
READONLY_STRING_PROPERTY(release, "lts", per_process::metadata.release.lts);
906+
#endif // NODE_VERSION_IS_LTS
907+
908+
#ifdef NODE_HAS_RELEASE_URLS
909+
READONLY_STRING_PROPERTY(
910+
release, "sourceUrl", per_process::metadata.release.source_url);
911+
READONLY_STRING_PROPERTY(
912+
release, "headersUrl", per_process::metadata.release.headers_url);
913+
#ifdef _WIN32
914+
READONLY_STRING_PROPERTY(
915+
release, "libUrl", per_process::metadata.release.lib_url);
916+
#endif // _WIN32
917+
#endif // NODE_HAS_RELEASE_URLS
939918

940919
// process.argv
941920
process->Set(env->context(),
Collapse file

‎src/node_metadata.cc‎

Copy file name to clipboardExpand all lines: src/node_metadata.cc
+22Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,4 +90,26 @@ Metadata::Versions::Versions() {
9090
#endif // NODE_HAVE_I18N_SUPPORT
9191
}
9292

93+
Metadata::Release::Release() : name(NODE_RELEASE) {
94+
#if NODE_VERSION_IS_LTS
95+
lts = NODE_VERSION_LTS_CODENAME;
96+
#endif // NODE_VERSION_IS_LTS
97+
98+
#ifdef NODE_HAS_RELEASE_URLS
99+
#define NODE_RELEASE_URLPFX NODE_RELEASE_URLBASE "v" NODE_VERSION_STRING "/"
100+
#define NODE_RELEASE_URLFPFX NODE_RELEASE_URLPFX "node-v" NODE_VERSION_STRING
101+
102+
source_url = NODE_RELEASE_URLFPFX ".tar.gz";
103+
headers_url = NODE_RELEASE_URLFPFX "-headers.tar.gz";
104+
#ifdef _WIN32
105+
lib_url = strcmp(NODE_ARCH, "ia32") ? NODE_RELEASE_URLPFX "win-" NODE_ARCH
106+
"/node.lib"
107+
: NODE_RELEASE_URLPFX "win-x86/node.lib";
108+
#endif // _WIN32
109+
110+
#endif // NODE_HAS_RELEASE_URLS
111+
}
112+
113+
Metadata::Metadata() : arch(NODE_ARCH), platform(NODE_PLATFORM) {}
114+
93115
} // namespace node
Collapse file

‎src/node_metadata.h‎

Copy file name to clipboardExpand all lines: src/node_metadata.h
+34-1Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,22 @@
44
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
55

66
#include <string>
7+
#include "node_version.h"
78

89
namespace node {
910

11+
// if this is a release build and no explicit base has been set
12+
// substitute the standard release download URL
13+
#ifndef NODE_RELEASE_URLBASE
14+
#if NODE_VERSION_IS_RELEASE
15+
#define NODE_RELEASE_URLBASE "https://nodejs.org/download/release/"
16+
#endif // NODE_VERSION_IS_RELEASE
17+
#endif // NODE_RELEASE_URLBASE
18+
19+
#if defined(NODE_RELEASE_URLBASE)
20+
#define NODE_HAS_RELEASE_URLS
21+
#endif
22+
1023
#define NODE_VERSIONS_KEYS_BASE(V) \
1124
V(node) \
1225
V(v8) \
@@ -43,7 +56,7 @@ namespace node {
4356

4457
class Metadata {
4558
public:
46-
Metadata() = default;
59+
Metadata();
4760
Metadata(Metadata&) = delete;
4861
Metadata(Metadata&&) = delete;
4962
Metadata operator=(Metadata&) = delete;
@@ -63,7 +76,27 @@ class Metadata {
6376
#undef V
6477
};
6578

79+
struct Release {
80+
Release();
81+
82+
std::string name;
83+
#if NODE_VERSION_IS_LTS
84+
std::string lts;
85+
#endif // NODE_VERSION_IS_LTS
86+
87+
#ifdef NODE_HAS_RELEASE_URLS
88+
std::string source_url;
89+
std::string headers_url;
90+
#ifdef _WIN32
91+
std::string lib_url;
92+
#endif // _WIN32
93+
#endif // NODE_HAS_RELEASE_URLS
94+
};
95+
6696
Versions versions;
97+
const Release release;
98+
const std::string arch;
99+
const std::string platform;
67100
};
68101

69102
// Per-process global

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.