#pragma once

#include "node_api.h"

#if defined(USE_WEAK_SUFFIX_NAPI)
#include "weak_napi_defines.h"
#endif

#ifndef NAPI_USE
#define NAPI_USE(modname)                                                 \
  EXTERN_C_START                                                          \
  extern void _napi_register_xx_##modname(void);                          \
  __attribute__((used)) static void* _napi_module_##modname##_p =         \
      (void*)&_napi_register_xx_##modname;                                 \
  EXTERN_C_END
#endif

NAPI_USE(__NODE_API_ADDON_NAME__)

#if defined(USE_WEAK_SUFFIX_NAPI)
#include "weak_napi_undefs.h"
#endif
