diff --git a/doc/object.md b/doc/object.md index c92165aeb..32401cad1 100644 --- a/doc/object.md +++ b/doc/object.md @@ -76,6 +76,33 @@ Napi::Object Napi::Object::New(napi_env env); Creates a new `Napi::Object` value. +### New() + +```cpp +Napi::Object Napi::Object::New(napi_env env, + const std::initializer_list &properties); +``` + +- `[in] env`: The `napi_env` environment in which to construct the `Napi::Value` object. +- `[in] properties`: Initializer list of `Napi::PropertyDescriptor` describing +properties for the object. See: [Property and descriptor](property_descriptor.md). + +Creates a new `Napi::Object` value. + +### New() + +```cpp +Napi::Object Napi::Object::New(napi_env env, + const std::vector &properties); +``` + +- `[in] env`: The `napi_env` environment in which to construct the `Napi::Value` object. +- `[in] properties`: Vector of `Napi::PropertyDescriptor` describing properties +for the object. See: [Property and descriptor](property_descriptor.md). + +Creates a new `Napi::Object` value. + + ### Set() ```cpp diff --git a/napi-inl.h b/napi-inl.h index e8196a4d5..836065552 100644 --- a/napi-inl.h +++ b/napi-inl.h @@ -971,6 +971,18 @@ inline Object Object::New(napi_env env) { return Object(env, value); } +inline Object Object::New(napi_env env, const std::initializer_list &properties) { + Object obj = Object::New(env); + obj.DefineProperties(properties); + return obj; +} + +inline Object Object::New(napi_env env, const std::vector &properties) { + Object obj = Object::New(env); + obj.DefineProperties(properties); + return obj; +} + inline Object::Object() : Value() { } diff --git a/napi.h b/napi.h index f770641af..12545b68b 100644 --- a/napi.h +++ b/napi.h @@ -526,6 +526,16 @@ namespace Napi { napi_env env ///< N-API environment ); + static Object New( + napi_env env, ///< N-API environment + const std::initializer_list &properties ///< initial prperties + ); + + static Object New( + napi_env env, ///< N-API environment + const std::vector &properties ///< initial prperties + ); + Object(); ///< Creates a new _empty_ Object instance. Object(napi_env env, napi_value value); ///< Wraps a N-API value primitive.