diff options
Diffstat (limited to 'src/node_native_module_env.h')
-rw-r--r-- | src/node_native_module_env.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/node_native_module_env.h b/src/node_native_module_env.h new file mode 100644 index 0000000000..2b1fabf89b --- /dev/null +++ b/src/node_native_module_env.h @@ -0,0 +1,64 @@ +#ifndef SRC_NODE_NATIVE_MODULE_ENV_H_ +#define SRC_NODE_NATIVE_MODULE_ENV_H_ + +#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS + +#include "node_native_module.h" + +namespace node { +class Environment; + +namespace native_module { + +class NativeModuleEnv { + public: + static void Initialize(v8::Local<v8::Object> target, + v8::Local<v8::Value> unused, + v8::Local<v8::Context> context, + void* priv); + + static v8::MaybeLocal<v8::Function> LookupAndCompile( + v8::Local<v8::Context> context, + const char* id, + std::vector<v8::Local<v8::String>>* parameters, + Environment* optional_env); + + static v8::Local<v8::Object> GetSourceObject(v8::Local<v8::Context> context); + // Returns config.gypi as a JSON string + static v8::Local<v8::String> GetConfigString(v8::Isolate* isolate); + static bool Exists(const char* id); + + // Loads data into NativeModuleLoader::.instance.code_cache_ + // Generated by mkcodecache as node_code_cache.cc when + // the build is configured with --code-cache-path=.... They are noops + // in node_code_cache_stub.cc + static void InitializeCodeCache(); + + private: + static void RecordResult(const char* id, + NativeModuleLoader::Result result, + Environment* env); + static void GetModuleCategories( + v8::Local<v8::Name> property, + const v8::PropertyCallbackInfo<v8::Value>& info); + static void GetCacheUsage(const v8::FunctionCallbackInfo<v8::Value>& args); + // Passing ids of builtin module source code into JS land as + // internalBinding('native_module').moduleIds + static void ModuleIdsGetter(v8::Local<v8::Name> property, + const v8::PropertyCallbackInfo<v8::Value>& info); + // Passing config.gypi into JS land as internalBinding('native_module').config + static void ConfigStringGetter( + v8::Local<v8::Name> property, + const v8::PropertyCallbackInfo<v8::Value>& info); + // Compile a specific native module as a function + static void CompileFunction(const v8::FunctionCallbackInfo<v8::Value>& args); + static void GetCodeCache(const v8::FunctionCallbackInfo<v8::Value>& args); +}; + +} // namespace native_module + +} // namespace node + +#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS + +#endif // SRC_NODE_NATIVE_MODULE_ENV_H_ |