sharp.cc 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // Copyright 2013 Lovell Fuller and others.
  2. // SPDX-License-Identifier: Apache-2.0
  3. #include <mutex> // NOLINT(build/c++11)
  4. #include <napi.h>
  5. #include <vips/vips8>
  6. #include "common.h"
  7. #include "metadata.h"
  8. #include "pipeline.h"
  9. #include "utilities.h"
  10. #include "stats.h"
  11. Napi::Object init(Napi::Env env, Napi::Object exports) {
  12. static std::once_flag sharp_vips_init_once;
  13. std::call_once(sharp_vips_init_once, []() {
  14. vips_init("sharp");
  15. });
  16. g_log_set_handler("VIPS", static_cast<GLogLevelFlags>(G_LOG_LEVEL_WARNING),
  17. static_cast<GLogFunc>(sharp::VipsWarningCallback), nullptr);
  18. // Methods available to JavaScript
  19. exports.Set("metadata", Napi::Function::New(env, metadata));
  20. exports.Set("pipeline", Napi::Function::New(env, pipeline));
  21. exports.Set("cache", Napi::Function::New(env, cache));
  22. exports.Set("concurrency", Napi::Function::New(env, concurrency));
  23. exports.Set("counters", Napi::Function::New(env, counters));
  24. exports.Set("simd", Napi::Function::New(env, simd));
  25. exports.Set("libvipsVersion", Napi::Function::New(env, libvipsVersion));
  26. exports.Set("format", Napi::Function::New(env, format));
  27. exports.Set("block", Napi::Function::New(env, block));
  28. exports.Set("_maxColourDistance", Napi::Function::New(env, _maxColourDistance));
  29. exports.Set("_isUsingJemalloc", Napi::Function::New(env, _isUsingJemalloc));
  30. exports.Set("stats", Napi::Function::New(env, stats));
  31. return exports;
  32. }
  33. NODE_API_MODULE(sharp, init)