Closed nancywu1 closed 1 month ago
/canary
/canary
/canary
Attention: Patch coverage is 99.04762%
with 1 line
in your changes missing coverage. Please review.
Project coverage is 91.92%. Comparing base (
a363556
) to head (2633358
). Report is 1 commits behind head on main.
Files with missing lines | Patch % | Lines |
---|---|---|
ios/logger/Sources/TapableLogger.swift | 97.67% | 1 Missing :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
https://github.com/player-ui/player/issues/523
Change Type (required)
Indicate the type of change your pull request is:
patch
minor
major
Does your PR have any documentation updates?
📦 Published PR as canary version:
0.9.2--canary.524.17782
Try this version out locally by upgrading relevant packages to 0.9.2--canary.524.17782
Version
Published prerelease version:
0.10.0-next.0
Changelog
### Release Notes #### ios: enhance tapable logger to handle variadic args from the JS log ([#524](https://github.com/player-ui/player/pull/524)) Prefixing message with the format `[Player] [\(logLevel)]:` moved out of the Tapable logger and moved to PrintLoggerPlugin. Any consumers using their own LoggerPlugin will need to append the logLevel if they want to print it Before ```swift public class CustomLoggingPlugin: NativePlugin { public let pluginName = "CustomLoggingPlugin" public func apply(player: P) where P: HeadlessPlayer { guard let player = player as? SwiftUIPlayer else { return } player.logger.logLevel = .trace player.logger.hooks.trace.tap(name: pluginName, { print("Custom message")\(($0))" ) }) ... } ``` After ```swift public class CustomLoggingPlugin: NativePlugin { public let pluginName = "CustomLoggingPlugin" public func apply
(player: P) where P: HeadlessPlayer { guard let player = player as? SwiftUIPlayer else { return } player.logger.logLevel = .trace let prefixedMessage = "[Player] [trace]: " player.logger.hooks.trace.tap(name: pluginName, { print("\(prefixedMessage) Custom message \(($0))" ) }) ... } ``` ## Breaking Changes Any usage of the `player.logger.hooks` taps will have breaking changes in the callback because the calls have been changed to provide a `[Any]` type instead of `String` so it can be returned in the form of messages instead of a single message. Unless nothing is done in the callback to access the value but just to print it, there should be breaking changes Example: ```swift // this should be no breaking change player.logger.hooks.trace.tap(name: "log", { print("\(($0))" ) }) // if `values` should be accessed in anyway, i.e want the first value, or want to seperate the values player.logger.hooks.debug.tap(name: "log") { values in // values is of type [Any], if you want to print only the first value print("\((message as? [String])?.first))" ) } ``` --- #### 🚀 Enhancement - ios: enhance tapable logger to handle variadic args from the JS log [#524](https://github.com/player-ui/player/pull/524) ([@nancywu1](https://github.com/nancywu1)) #### 🐛 Bug Fix - Fix CJS support for React Player [#525](https://github.com/player-ui/player/pull/525) ([@KetanReddy](https://github.com/KetanReddy)) - iOS: Expand AnyType to handle deeply nested AnyType for beacon encoding [#519](https://github.com/player-ui/player/pull/519) ([@hborawski](https://github.com/hborawski)) #### 🏠 Internal - Fix circleci badge in README [#480](https://github.com/player-ui/player/pull/480) ([@adierkens](https://github.com/adierkens) [@KetanReddy](https://github.com/KetanReddy)) #### Authors: 4 - [@nancywu1](https://github.com/nancywu1) - Adam Dierkens ([@adierkens](https://github.com/adierkens)) - Harris Borawski ([@hborawski](https://github.com/hborawski)) - Ketan Reddy ([@KetanReddy](https://github.com/KetanReddy))