@@ -34,8 +34,12 @@ public final class ImageMarker: NSObject, RCTBridgeModule {
3434 continuation. resume ( throwing: error)
3535 }
3636 } else {
37- let request = RCTConvert . nsurlRequest ( img. src)
38- imageLoader. loadImage ( with: request!, size: CGSizeMake ( img. rnSrc. width, img. rnSrc. height) , scale: img. rnSrc. scale, clipped: false , resizeMode: RCTResizeMode . cover) { progress, total in
37+ guard let request = RCTConvert . nsurlRequest ( img. src) else {
38+ let error = NSError ( domain: ErrorDomainEnum . BASE. rawValue, code: 3 , userInfo: [ NSLocalizedDescriptionKey: " Failed to create URL request for image: \( img. uri) " ] )
39+ continuation. resume ( throwing: error)
40+ return
41+ }
42+ imageLoader. loadImage ( with: request, size: CGSizeMake ( img. rnSrc. width, img. rnSrc. height) , scale: img. rnSrc. scale, clipped: false , resizeMode: RCTResizeMode . cover) { progress, total in
3943 print ( " Loading image: \( img. uri) progress: \( progress) total \( total) " )
4044 } partialLoad: { loadedImage in
4145 //
@@ -383,15 +387,18 @@ public final class ImageMarker: NSObject, RCTBridgeModule {
383387
384388 @objc ( markWithText: resolver: rejecter: )
385389 func mark( withText opts: [ AnyHashable : Any ] , resolver: @escaping RCTPromiseResolveBlock , rejecter: @escaping RCTPromiseRejectBlock ) -> Void {
386- let markOpts = MarkTextOptions . checkTextParams ( opts, rejecter: rejecter)
387- if markOpts === nil {
390+ guard let markOpts = MarkTextOptions . checkTextParams ( opts, rejecter: rejecter) else {
388391 rejecter ( ErrorDomainEnum . PARAMS_INVALID. rawValue, " opts invalid " , nil )
392+ return
389393 }
390394 Task ( priority: . userInitiated) {
391395 do {
392- let images = try await loadImages ( with: [ ( markOpts? . backgroundImage) !] )
393- let scaledImage = self . markImgWithText ( images [ 0 ] , markOpts!)
394- let res = self . saveImageForMarker ( scaledImage!, with: markOpts!)
396+ let images = try await self . loadImages ( with: [ markOpts. backgroundImage] )
397+ guard let scaledImage = self . markImgWithText ( images [ 0 ] , markOpts) else {
398+ rejecter ( " error " , " Failed to render watermarked image " , nil )
399+ return
400+ }
401+ let res = self . saveImageForMarker ( scaledImage, with: markOpts)
395402 resolver ( res)
396403 print ( " Loaded images: \( images) " )
397404 } catch {
@@ -403,18 +410,21 @@ public final class ImageMarker: NSObject, RCTBridgeModule {
403410
404411 @objc ( markWithImage: resolver: rejecter: )
405412 func mark( withImage opts: [ AnyHashable : Any ] , resolver: @escaping RCTPromiseResolveBlock , rejecter: @escaping RCTPromiseRejectBlock ) -> Void {
406- let markOpts = MarkImageOptions . checkImageParams ( opts, rejecter: rejecter)
407- if markOpts === nil {
413+ guard let markOpts = MarkImageOptions . checkImageParams ( opts, rejecter: rejecter) else {
408414 rejecter ( ErrorDomainEnum . PARAMS_INVALID. rawValue, " opts invalid " , nil )
415+ return
409416 }
410417 Task ( priority: . userInitiated) {
411418 do {
412- let waterImages = markOpts? . watermarkImages. map { $0. imageOption }
413- var images = try await loadImages ( with: [ ( markOpts? . backgroundImage) !] + waterImages!)
414- let scaledImage = self . markImage ( with: images. remove ( at: 0 ) , waterImages: images, options: markOpts!)
415- let res = self . saveImageForMarker ( scaledImage!, with: markOpts!)
419+ let waterImages = markOpts. watermarkImages. map { $0. imageOption }
420+ var images = try await self . loadImages ( with: [ markOpts. backgroundImage] + waterImages)
421+ guard let scaledImage = self . markImage ( with: images. remove ( at: 0 ) , waterImages: images, options: markOpts) else {
422+ rejecter ( " error " , " Failed to render watermarked image " , nil )
423+ return
424+ }
425+ let res = self . saveImageForMarker ( scaledImage, with: markOpts)
416426 resolver ( res)
417- print ( " Loaded images: \( images) , waterImages: \( String ( describing : waterImages) ) " )
427+ print ( " Loaded images: \( images) , waterImages: \( waterImages) " )
418428 } catch {
419429 print ( " Failed to load images, error: \( error) . " )
420430 rejecter ( " error " , error. localizedDescription, error)
0 commit comments