Uploaded image for project: 'Realm JavaScript SDK'
  1. Realm JavaScript SDK
  2. RJS-400

Is node v12 Supported?

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Unknown Unknown
    • None
    • Affects Version/s: None
    • Component/s: None

      Is v12 supported yet or not? Sorry, I couldn't find anything definitive going through the comments here as I've seen some comments saying it is and some comments from December saying it is not and to use v10. I don't really want to downgrade to 10.

      Goals

      Trying to install realm-js

      Expected Results

      To be able to install

      Actual Results

      Fails with the following output;

      `
      ../src/node/node_types.hpp:52:42: error: no type named 'NamedPropertyGetterCallback' in namespace 'v8'; did you mean 'IndexPropertyGetterCallback'?
      using StringPropertyGetterCallback = v8::NamedPropertyGetterCallback;
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      IndexPropertyGetterCallback
      ../src/node/node_types.hpp:50:11: note: 'IndexPropertyGetterCallback' declared here
      using IndexPropertyGetterCallback = Nan::IndexGetterCallback;
      ^
      ../src/node/node_types.hpp:53:42: error: no type named 'NamedPropertySetterCallback' in namespace 'v8'; did you mean 'IndexPropertySetterCallback'?
      using StringPropertySetterCallback = v8::NamedPropertySetterCallback;
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      IndexPropertySetterCallback
      ../src/node/node_types.hpp:51:11: note: 'IndexPropertySetterCallback' declared here
      using IndexPropertySetterCallback = Nan::IndexSetterCallback;
      ^
      ../src/node/node_types.hpp:54:50: error: no type named 'NamedPropertyEnumeratorCallback' in namespace 'v8'; did you mean 'IndexedPropertyEnumeratorCallback'?
      using StringPropertyEnumeratorCallback = v8::NamedPropertyEnumeratorCallback;
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      IndexedPropertyEnumeratorCallback
      /Users/admin/Library/Caches/node-gyp/12.10.0/include/node/v8.h:5801:16: note: 'IndexedPropertyEnumeratorCallback' declared here
      typedef void (*IndexedPropertyEnumeratorCallback)(
      ^
      In file included from ../src/node/node_init.cpp:19:
      In file included from ../src/node/node_init.hpp:21:
      ../src/node/node_string.hpp:51:32: error: too few arguments to function call, single argument 'isolate' was not specified
      m_str.resize(s->Utf8Length());
      ~~~~~~~~~~~~~ ^
      /Users/admin/Library/Caches/node-gyp/12.10.0/include/node/v8.h:2691:3: note: 'Utf8Length' declared here
      int Utf8Length(Isolate* isolate) const;
      ^
      In file included from ../src/node/node_init.cpp:19:
      In file included from ../src/node/node_init.hpp:21:
      ../src/node/node_string.hpp:53:18: error: cannot initialize a parameter of type 'v8::Isolate *' with an rvalue of type 'std::*1::basic_string<char, std::*1::char_traits<char>,
      std::__1::allocator<char> >::value_type *' (aka 'char *')
      s->WriteUtf8(&m_str[0], m_str.size(), 0, flags);
      ^~~~~~~~~
      /Users/admin/Library/Caches/node-gyp/12.10.0/include/node/v8.h:2751:26: note: passing argument to parameter 'isolate' here
      int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
      ^
      In file included from ../src/node/node_init.cpp:19:
      In file included from ../src/node/node_init.hpp:24:
      ../src/node/node_object.hpp:33:57: error: no type named 'ExternalOneByteStringResourceImpl' in namespace 'v8'; did you mean 'Nan::ExternalOneByteStringResource'?
      node_key = v8::String::NewExternal(isolate, new v8::ExternalOneByteStringResourceImpl(key.data(), key.size()));
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      Nan::ExternalOneByteStringResource
      ../../nan/nan.h:191:5: note: 'Nan::ExternalOneByteStringResource' declared here
      ExternalOneByteStringResource;
      ^
      In file included from ../src/node/node_init.cpp:19:
      In file included from ../src/node/node_init.hpp:24:
      ../src/node/node_object.hpp:33:61: error: allocating an object of abstract class type 'Nan::ExternalOneByteStringResource' (aka 'v8::String::ExternalOneByteStringResource')
      node_key = v8::String::NewExternal(isolate, new v8::ExternalOneByteStringResourceImpl(key.data(), key.size()));
      ^
      /Users/admin/Library/Caches/node-gyp/12.10.0/include/node/v8.h:2867:25: note: unimplemented pure virtual method 'data' in 'ExternalOneByteStringResource'
      virtual const char* data() const = 0;
      ^
      /Users/admin/Library/Caches/node-gyp/12.10.0/include/node/v8.h:2869:20: note: unimplemented pure virtual method 'length' in 'ExternalOneByteStringResource'
      virtual size_t length() const = 0;
      ^
      In file included from ../src/node/node_init.cpp:19:
      In file included from ../src/node/node_init.hpp:24:
      ../src/node/node_object.hpp:108:40: error: no matching member function for call to 'ToString'
      names.push_back(array->Get->ToString());
      ~~~~~~~~~~~^~~~~~
      /Users/admin/Library/Caches/node-gyp/12.10.0/include/node/v8.h:2541:44: note: candidate function not viable: requires single argument 'context', but no arguments were provided
      V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
      ^
      /Users/admin/Library/Caches/node-gyp/12.10.0/include/node/v8.h:2557:31: note: candidate function not viable: requires single argument 'isolate', but no arguments were provided
      Local<String> ToString(Isolate* isolate) const);
      ^
      In file included from ../src/node/node_init.cpp:19:
      In file included from ../src/node/node_init.hpp:25:
      ../src/node/node_function.hpp:41:19: error: no member named 'GetCallingContext' in 'v8::Isolate'; did you mean 'GetCurrentContext'?
      if (!isolate->GetCallingContext().IsEmpty()) {
      ^~~~~~~~~~~~~~~~~
      GetCurrentContext
      /Users/admin/Library/Caches/node-gyp/12.10.0/include/node/v8.h:7963:18: note: 'GetCurrentContext' declared here
      Local<Context> GetCurrentContext();
      ^
      In file included from ../src/node/node_init.cpp:19:
      In file included from ../src/node/node_init.hpp:26:
      ../src/node/node_value.hpp:152:19: error: no matching member function for call to 'ToString'
      return value->ToString();
      ~~~^~~~~~
      /Users/admin/Library/Caches/node-gyp/12.10.0/include/node/v8.h:2541:44: note: candidate function not viable: requires single argument 'context', but no arguments were provided
      V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
      ^
      /Users/admin/Library/Caches/node-gyp/12.10.0/include/node/v8.h:2557:31: note: candidate function not viable: requires single argument 'isolate', but no arguments were provided
      Local<String> ToString(Isolate* isolate) const);
      ^
      In file included from ../src/node/node_init.cpp:19:
      In file included from ../src/node/node_init.hpp:29:
      ../src/node/node_class.hpp:191:23: error: no member named 'SetNamedPropertyHandler' in 'v8::ObjectTemplate'; did you mean 'SetIndexedPropertyHandler'?
      instance_tpl->SetNamedPropertyHandler(string_accessor.getter ? string_accessor.getter : get_nonexistent_property, set_property, 0, 0, string_accessor.enumerator);
      ^~~~~~~~~~~~~~~~~~~~~~~
      SetIndexedPropertyHandler
      /Users/admin/Library/Caches/node-gyp/12.10.0/include/node/v8.h:6336:8: note: 'SetIndexedPropertyHandler' declared here
      void SetIndexedPropertyHandler(
      ^
      In file included from ../src/node/node_init.cpp:19:
      In file included from ../src/node/node_init.hpp:29:
      In file included from ../src/node/node_class.hpp:23:
      ../src/js_class.hpp:92:17: error: no type named 'StringPropertyGetterCallback' in 'realm::node::Types'
      typename T::StringPropertyGetterCallback getter;
      ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
      ../src/node/node_class.hpp:368:16: note: in instantiation of template class 'realm::js::StringPropertyType<realm::node::Types>' requested here
      template<node::StringPropertyType::GetterType F>
      ^
      In file included from ../src/node/node_init.cpp:19:
      In file included from ../src/node/node_init.hpp:29:
      In file included from ../src/node/node_class.hpp:23:
      ../src/js_class.hpp:93:17: error: no type named 'StringPropertySetterCallback' in 'realm::node::Types'
      typename T::StringPropertySetterCallback setter;
      ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from ../src/node/node_init.cpp:19:
      In file included from ../src/node/node_init.hpp:29:
      ../src/node/node_class.hpp:373:10: error: called object type 'int' is not a function or function pointer
      F(isolate, info.This(), property, return_value);
      ~^
      14 errors generated.
      make: *** [Release/obj.target/realm/src/node/node_init.o] Error 1
      gyp ERR! build error
      gyp ERR! stack Error: make failed with exit code: 2
      gyp ERR! stack at ChildProcess.onExit (/Users/admin/.nvm/versions/node/v12.10.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:196:23)
      gyp ERR! stack at ChildProcess.emit (events.js:209:13)
      gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
      gyp ERR! System Darwin 19.2.0
      gyp ERR! command "/Users/admin/.nvm/versions/node/v12.10.0/bin/node" "/Users/admin/.nvm/versions/node/v12.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "-fallback-to-build" "module=/Users/admin/Sites/coolair/node_modules/realm/compiled/node-v72_darwin_x64/realm.node" "module_name=realm" "module_path=/Users/admin/Sites/coolair/node_modules/realm/compiled/node-v72_darwin_x64" "napi_version=4" "node_abi_napi=napi" "napi_build_version=0" "-node_napi_label=node-v72"
      gyp ERR! cwd /Users/admin/Sites/coolair/node_modules/realm
      gyp ERR! node -v v12.10.0
      gyp ERR! node-gyp -v v5.0.3
      gyp ERR! not ok
      node-pre-gyp ERR! build error
      node-pre-gyp ERR! stack Error: Failed to execute '/Users/admin/.nvm/versions/node/v12.10.0/bin/node /Users/admin/.nvm/versions/node/v12.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/admin/Sites/coolair/node_modules/realm/compiled/node-v72_darwin_x64/realm.node --module_name=realm --module_path=/Users/admin/Sites/coolair/node_modules/realm/compiled/node-v72_darwin_x64 --napi_version=4 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72' (1)
      node-pre-gyp ERR! stack at ChildProcess.<anonymous> (/Users/admin/Sites/coolair/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
      node-pre-gyp ERR! stack at ChildProcess.emit (events.js:209:13)
      node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:1021:16)
      node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
      node-pre-gyp ERR! System Darwin 19.2.0
      node-pre-gyp ERR! command "/Users/admin/.nvm/versions/node/v12.10.0/bin/node" "/Users/admin/Sites/coolair/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
      node-pre-gyp ERR! cwd /Users/admin/Sites/coolair/node_modules/realm
      node-pre-gyp ERR! node -v v12.10.0
      node-pre-gyp ERR! node-pre-gyp -v v0.13.0
      node-pre-gyp ERR! not ok
      Failed to execute '/Users/admin/.nvm/versions/node/v12.10.0/bin/node /Users/admin/.nvm/versions/node/v12.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/admin/Sites/coolair/node_modules/realm/compiled/node-v72_darwin_x64/realm.node --module_name=realm --module_path=/Users/admin/Sites/coolair/node_modules/realm/compiled/node-v72_darwin_x64 --napi_version=4 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72' (1)
      npm ERR! code ELIFECYCLE
      npm ERR! errno 1
      npm ERR! realm@4.0.0-beta.0 install: node-pre-gyp install --fallback-to-build
      npm ERR! Exit status 1
      npm ERR!
      npm ERR! Failed at the realm@4.0.0-beta.0 install script.
      npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
      `

      Steps to Reproduce

      npm install --save realm@4.0.0-beta.0

      Code Sample

      Version of Realm and Tooling

      • Realm JS SDK Version: 4.0.0-beta.0
      • Node or React Native: 0.61.5
      • Client OS & Version: Mac OS - 10.15.2 (19C57)
      • Which debugger for React Native: None

            Assignee:
            Unassigned Unassigned
            Reporter:
            unitosyncbot Unito Sync Bot
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: