Release 0.1.0
0.1.0 (2024-08-01)
💨 Performance Improvements
- Also cache
getPropertyNames
(eddad79) - Make all
JSIConverter
callsinline
(b5d832c) - Pass function to Promise and JSIConverter as move (04f9e94)
- Speed up Dispatcher get calls (a6b69b3)
- Use
contains
instead ofcount
(756cd90) - Use
get
(assert) instead ofas
for faster perf! (0da06a7) - Use hashing functions for literal types (ab08c97)
✨ Features
- Add
ArrayBuffer
support (44608b8) - Add
hashString
with compile time length (1cc33e0) - Add
kind
(84ff92a) - Add
logLevel
and parse properly (74076e7) - Add
memorySize
to HybridObjects (47800ec) - Add
name
andequals
methods toHybridObject
(4262b79) - Add
override
prop (d524536) - Add
saveToFile(path)
(d784f1d) - Add fbjni, RN and Nitro as core libs (107bbe2)
- Add Kotlin (e2636b7)
- Add tuple support to
JSIConverter
(f96df1d) - Allow optional (c3d16ed)
- Allow passing in path to script (f93b63e)
- Also create Test obj on Android!! :))))) (23ecec0)
- Also log total alive instances (5c50d02)
- Always create C++ code (0e39f2a)
- Always write trailing newline (b3dbb0f)
- Android builds! (1a037c0)
- Build C++ libs ourselves instead of CodeGen (e2cd332)
- call into java (9c66382)
- Convert structs to and from JSI (a7eb13a)
- Create
AnyMap
(c043b61) - Create
Data
based ArrayBuffer for Swift (b310478) - Create
ForeignArrayBuffer
(cf2eb19) - Create
getHybridPart
to move this logic (eec426e) - Create
JSICacheReference
for safer cache access (3e0279a) - Create
OwningLock
to lock mutex (fc4eb15) - Create
react-native-nitro-image
(24167c3) - Create
RuntimeError
(23c4cbd) - Create fbjni C++ object (76bc9f1)
- Create fibonacci for 80 (613f288)
- Create files in
nitrogen/generated
(9e34873) - Create initializer and registry on Android (4115045)
- Create Kotlin code! (c22acb6)
- Create Kotlin structs (data classes) (952147a)
- Don't expose header, fix cycle (ec2be05)
- Drop the Swift stuff again (1380e3e)
- Forward declare structs and enums as well :) (d97d0d3)
- Generate
NitroImage+autolinking.rb
(b137a0f) - Generate all Swift result types in a single file (a071e17)
- Generate CMake autolinking setup as well (e9dda33)
- Generate gradle file as well (0eec2bd)
- Generate Swift protocol BASE (9e14e67)
- Generate to platform subfolders (7119d8f)
- Group files by platform, to prettify logging (99ac21d)
- Implement
==
forOwningReference
(803c7bf) - Implement a bunch of Swift types (8673069)
- Implement enum Java <-> C++ parsers (952730a)
- Implement HybridTestObject (04f4fe0)
- Implement Method, Parameter and Property for Kotlin (ff0c102)
- Inform JS GC about memory pressure if it is a HybridObject (2e503ab)
- It works! (f89a5f4)
- Load C++ library from Java (717f466)
- Log runtime thread ID (f6853f7)
- Log when files changed! (560e333)
- Make single required constructor for structs (83bd6f7)
- Map roundtrip (JS -> C++) (18d509c)
- Move
Hash.hpp
into core codebase (1186148) - Namespaces! (fb3317c)
- Non-duplicate forward declarations (066469b)
- Owning array buffer (9d301cc)
- Parse
nitro.json
file with Zod (dd3e559) - Prettify a few edge cases in
getFriendlyTypename()
:) (a104481) - Properly check variant type at runtime (f0844b0)
- Properly escape JS names (2a34f53)
- Provide object and method name when throwing errors (1eda72a)
- Put files into Android namespace directory (c9fcad7)
- Remove duplicates from includes (95eef98)
- Resolve JNI imports (7f1bfa3)
- Rewrite
NativeNitroModules
to a bare (non-codegen'd) TurboModule to get Android to build (26743e4) - Set JS Context in Swift (8240a03)
- Something... parse SwiftCxx (8899897)
- Support
constructor
(ab15592) - Support
Promise
(0e118f0) - Support
Record<K, V>
(cf91908) - Support
std::function
(e004bed) - Support
variant
in JSIConverter (07204a1) - Support arrays (7dbc8ed)
- Support enums (50b7dd6)
- Support functions! (7c7c5ac)
- Support generating variants (980ecda)
- Support intersection unions (44ebf85)
- Support JS -> C++ variant parsing (37fe1a8)
- Support Record variant (6c1232a)
- Support string callback (4f90447)
- Support Tuple<...> in Nitrogen (c731f05)
- Test returning same type (3e755c7)
- Throw Error if native nitro modules cannot be found (f219e21)
- Try load Nitro TurboModule on Android (428a176)
- Try to cache
jsi::Object
s forHybridObject
s (0c0de8c) - Try using
Logger
(e26832f) - Use
CONFIG
fromNitroConfig
(3be6545) - Use
OwningLock<T>
in function callbacks (45d5342) - Use Async API and file glob (70c5c6e)
- Write files in parallel (393df26)
🐛 Bug Fixes
- Add ImageSize again (093627e)
- Add import (daa8c00)
- Add required -Swift headers (d0e042c)
- Allow virtual destructor (535905a)
- Don't include android sources (10f598a)
- Don't include C++ HybridObject size in memory size (it's already included) (565f613)
- Fix
= 0;
generation (cbdf54d) - Fix
toString()
space (82925db) - Fix
tsconfig
I think (9bb91f9) - Fix all wrong names (95d8414)
- Fix Android Example app setup (7eed717)
- Fix const (37c2030)
- Fix cyclic Swift build (152d643)
- Fix dealloc crash by not making it optional (2bce625)
- Fix deleting directory after every file lol (9685dfe)
- Fix destructor never deleting weak ref due to < 0 (ba5d17e)
- Fix dispatcher lambda not mutable on promise (2ee6e14)
- Fix enum names (uppercase for C++/Kotlin, lowercase for Swift) (778c7ed)
- Fix func passing (92bd1fc)
- Fix imports (50507b6)
- Fix includes and indents (58613bb)
- Fix includes order (c0180f5)
- Fix indentation (0459605)
- Fix Java descriptors (2399c01)
- Fix JS callbacks not using Dispatcher!!!!! (e6f84be)
- Fix Logger (3fe9d78)
- Fix missing namespace in fbjni bridge (2b14925)
- Fix package.json includes (f05bcd7)
- Fix parsing relative directory when executed from different pwd (c70f1df)
- Fix podspec (7b9501f)
- Fix ref counting being smaller than 0 (bb67b6a)
- Fix relative imports by setting module to
NodeNext
(a6456ba) - Fix Spec rename (a51dd2e)
- Fix struct parser (ae635f3)
- Fix stupid fucking idiotic dumb error (8e4f784)
- Fix TypeScript setup (b8eefd2)
- Fix void comparison (fff6204)
- Fix wrong language (c05be0e)
- Forward-decl (51a5632)
- Generate fbjni classes as well (b262434)
- Generate types for each value (071d11c)
- Hide Kotlin constructor (c5c495a)
- Implement
Image
more (b3c1701) - Include referenced types (1d15772)
- IT BUILDS! 🎉 (846ac29)
- Kinda builds? (404b125)
- Let codegen CMake build NitroImage (183c827)
- lock
_mutex
whenlock()
ing or comparing OwningReference (ee41df2) - Make
_mutex
a unique ptr so it can be accessed from Swift (19d3e84) - Make
~HybridObject
virtual (68c7c2b) - Make all headers public (7075d72)
- Make it compile (but not yet link) (7aacc94)
- Move into cxx namespace (c9e33f2)
- Move to namespace
margelo::nitro
(7bc2767) - No need to wrap structs (f2c289c)
- Ok we need to do it manually... (f789063)
- Only expose some headers (4e1a258)
- Only parse
HybridObject
(0d1f8e4) - Properly configure projects (+ kotlin) (4c71e3f)
- Properly escape string variable names (41eb40b)
- Properly forward-declare with namespace (52f2a9c)
- Properly get memory size including own cache map size (a0c7caa)
- Properly mark enums as final (8bd13f8)
- Properly namespace
HybridObjectType
(6de2dab) - Publish proper files to npm (209a73f)
- Remove ForeignArrayBuffer (cbfba72)
- Remove unused
createHybridObjectName
(66d4710) - Rename
nitro-codegen
tonitrogen
(2181cb5) - Rename to
JHybridT
(0ff5e11) - Run (0e1e5af)
- Throw
mutex
on all pointer operations (705efdc) - Throw on single string literal (d2b0ded)
- Try fixing runAsyncAwaitable (039f745)
- Try strong typed (535c53e)
- Try to make promise func JSIConverter (504b07d)
- Unify error catching in createMethod (49ed078)
- Update map copy (62bb220)
- Use
atomic_size_t
to prevent race conditions inOwningReference
(c66064a) - Use alias_ref (4b61f5b)
- Use double again (6812c9b)
- Use safer
ts-morph
APIs (3a89b26) - Use shared
NitroDefines
(786f2e9)