Releases: mrousavy/nitro
Releases · mrousavy/nitro
Release 0.18.0
0.18.0 (2024-11-27)
✨ Features
🐛 Bug Fixes
- Add
react-native-nitro-modules
peerDependency to template (12276b8) - Catch cases where a
Promise<T>
could potentially be rseolved twice (#362) (ed24de6) - Fix moving
sharedFunction
after first callback call (d0052ec) - Fix Promise rejections not having a message by using
std::exception_ptr
to avoid C++ object slicing (#369) (b069fb6) - Fix ref counting with recursive mutex (#368) (0747e09)
- Generate a shadow
ordinal
field for Kotlin Enums (#360) (7a32224)
Release 0.17.0
0.17.0 (2024-11-19)
As promised, this release is all about Promises! 🪄✨
❗️ Breaking
- For C++ Hybrid Objects:
std::future<T>
is nowPromise<T>
!
✨ Features
- Allow
ThreadPool
to grow dynamically (#345) (f94cfbc) - Enable ProGuard for release builds in Nitro Example (#342) (9f7728a)
- Add new
Promise<T>
implementation for C++ (#343) (8832bc5) - Use new, faster, simpler
Promise<T>
in Nitrogen (#349) (110dcbf) - Allow awaiting JS
Promise
in C++ (#354) (b6277ea) - Support awaiting JS
Promise
in Kotlin and Swift (#355) (6da4f98)
💨 Performance Improvements
🐛 Bug Fixes
- Fix Promise calls being stuck in rare cases when scheduling a lot of promises at once (#345) (f94cfbc)
- Make
Promise
catch anyThrowable
instead ofError
subclass (#337) (d76d0c0) - Fix Variants being stripped in release (#352) (8c09f6d)
- Fix "legacy"
enum
s breaking Swift compiler (#346) (cb9cf99) - Don't test
bounceChild(Base)
in release because that is optimized away (#353) (3626cb3) - Fix
Promise::awaitFuture
actually locking threads (#347) (8cd7a29) - Fix
Promise<void>
generation on Android (#357) (023c1ab)
📚 Documentation
- Add "Events" info to Callbacks docs page (ce4c415)
- Add
TestObject.nitro.ts
to example playground (b824959) - Add latest release to docs (728ea5c)
- Add Vercel analytics to docs (#332) (834a2ff)
- Clean up unused images (#334) (e461b17)
- Update docs to use new
Promise<T>
type instead ofstd::future<T>
(#348) (e931834)
Release 0.16.2
Release 0.16.1
Release 0.16.0
0.16.0 (2024-11-12)
✨ Features
- Add visionOS support (#323) (328a6e1)
- Explicitly catch
ClassNotFound
andNoSuchMethod
errors (#318) (e37d261), closes #319
🐛 Bug Fixes
- Add
@DoNotStrip
/@Keep
annotations to example hybrid objects (#317) (1a313c5) - Fix
HybridObjectRegistry
not being found with JNI in release (#316) (1f3a004) - Include
nitrogen/
folder intemplate/
(#315) (3992b6f) - Perform safer checks for
toContain(..)
in example, and addNitroModules.hasNativeState(value)
(#324) (c491d39)
📚 Documentation
Release 0.15.0
Release 0.14.1
Release 0.14.0
0.14.0 (2024-10-30)
Fixes a few issues, and adds a new JS-only function getHybridObjectConstructor(...)
which allows you to use new
and instanceof
with HybridObject
s:
// uses NitroModules.createHybridObject<Image>('Image') under the hood
const HybridImage = getHybridObjectConstructor<Image>('Image')
const image1 = new HybridImage()
const image2 = new HybridImage()
const isImage = image1 instanceof HybridImage
✨ Features
🐛 Bug Fixes
- Fix
NONNULL
function pointers (#250) (7afac07) - Fix jboolean parse in Structs (#260) (5cc2337)
- Pre-allocate
defaultValue
for funcs (#255) (25b1917)
📚 Documentation
Release 0.13.0
Release 0.12.0
0.12.0 (2024-10-17)
✨ Features
- Move
HybridObject
Swift -> C++ bridge to Swift and call safely (nowHybridObject?
/[HybridObject]
works!) (#232) (a624a0a), closes #237 - Prettify Prototype names (#229) (2f24d28)
- Use more precise C++ std errors (e.g.
invalid_argument
) (#179) (5f4d61e)
💨 Performance Improvements
🐛 Bug Fixes
- Add
_Nonnull
modifier tovoid*
types for Swift (#231) (6803be8) - Add
packagingOptions.excludes
to template (c0ae25b) - Add more guards to nitrogen (#208) (c44c2c1)
- Add nullability modifier for Closure (ef135f2)
- Allow functions as properties again (#228) (9e70d3f)
- Also prefix
i
with__
(#207) (0d77241) - Also run bridge conversion in
std::optional
type helper (#230) (26de266) - Enable
DEFINES_MODULE
for stricter modular headers (#235) (b9bfb24) - Fix
sed
command on CI on Linux (c712fb7) - Fix Array of enums not properly using
.rawValue
(#209) (7218700) - Fix custom
hermesCommand
location for monorepo setup for release builds (#223) (f2e86d3) - Make
ArrayBufferHolder
accept a_Nonnull
pointer (660de52) - Make Nitro core compile on non-react-native environments (#195) (57e7f26)
- Prefix all nitrogenerated variable names with
__
(#205) (668245e) - Properly deal with non-arrays in
podspec
(#234) (96c8a32) - Regenerate nitro specs (4f1bf61)
- Use
any
for protocol conformance in Swift (#206) (ec81637) - Wrap
any TSpec
in braces in Swift to allow for optionals in future (c1bcb46)
📚 Documentation
- Add minimum requirements (08f4935)
- Create robots.txt (6a8b4c6)
- Create Troubleshooting guide (#220) (4dd2669)
- Explain Inheritance in Hybrid Object docs (#183) (95553fe)
- Explain that you need an example app for the library template (#201) (3eb39b8)
- Fix
/nitro/
baseUrl replacement for Algolia (56ad78c) - Fix brief 404 page flashing in docs (#194) (2bf4e61)
- Fix broken link in markdown table (c101fb2)
- Fix favicon? kinda (35ddd6e)
- More precise base methosd (2b5899f)
- Update comparison.md fixing a broken link (#198) (b730a9a)
- Update Inheritance docs to be easier to follow (#216) (3a8ea7c)
- Update meta tags (97a6dd8)
- Update minimum requirements (f6785e1)