react-native-compressor 1.19.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/android/CMakeLists.txt +27 -0
  2. package/android/build.gradle +56 -58
  3. package/android/gradle.properties +5 -5
  4. package/android/src/main/AndroidManifestNew.xml +3 -0
  5. package/android/src/main/cpp/cpp-adapter.cpp +8 -0
  6. package/android/src/main/java/com/margelo/nitro/compressor/HybridCompressor.kt +213 -0
  7. package/android/src/main/java/com/reactnativecompressor/NitroCompressorPackage.kt +30 -0
  8. package/android/src/main/java/com/reactnativecompressor/NitroPromiseAdapter.kt +55 -0
  9. package/android/src/main/java/com/reactnativecompressor/Utils/EventEmitterHandler.kt +49 -45
  10. package/android/src/main/java/com/reactnativecompressor/Utils/Utils.kt +1 -1
  11. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressor/compressor/Compressor.kt +13 -22
  12. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressor/utils/CompressorUtils.kt +72 -0
  13. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressorHelper.kt +4 -1
  14. package/ios/Audio/FormatConverter/FormatConverter+Compressed.swift +1 -1
  15. package/ios/Audio/FormatConverter/FormatConverter+Utilities.swift +1 -1
  16. package/ios/Audio/FormatConverter/FormatConverter.swift +5 -3
  17. package/ios/HybridCompressor.swift +247 -0
  18. package/ios/Image/ImageCompressor.swift +8 -2
  19. package/ios/Utils/EventEmitterHandler.swift +56 -34
  20. package/ios/Video/NextLevelSessionExporter.swift +43 -8
  21. package/ios/Video/VideoMain.swift +17 -3
  22. package/lib/commonjs/Audio/index.js +1 -1
  23. package/lib/commonjs/Audio/index.js.map +1 -1
  24. package/lib/commonjs/Image/index.js +2 -22
  25. package/lib/commonjs/Image/index.js.map +1 -1
  26. package/lib/commonjs/Main.js +8 -8
  27. package/lib/commonjs/Main.js.map +1 -1
  28. package/lib/commonjs/Video/index.js +25 -65
  29. package/lib/commonjs/Video/index.js.map +1 -1
  30. package/lib/commonjs/specs/Compressor.nitro.js +6 -0
  31. package/lib/commonjs/specs/Compressor.nitro.js.map +1 -0
  32. package/lib/commonjs/utils/Downloader.js +8 -24
  33. package/lib/commonjs/utils/Downloader.js.map +1 -1
  34. package/lib/commonjs/utils/Uploader.js +3 -18
  35. package/lib/commonjs/utils/Uploader.js.map +1 -1
  36. package/lib/commonjs/utils/helpers.js +18 -1
  37. package/lib/commonjs/utils/helpers.js.map +1 -1
  38. package/lib/commonjs/utils/index.js +13 -13
  39. package/lib/commonjs/utils/index.js.map +1 -1
  40. package/lib/module/Audio/index.js +2 -2
  41. package/lib/module/Audio/index.js.map +1 -1
  42. package/lib/module/Image/index.js +3 -23
  43. package/lib/module/Image/index.js.map +1 -1
  44. package/lib/module/Main.js +9 -9
  45. package/lib/module/Main.js.map +1 -1
  46. package/lib/module/Video/index.js +26 -66
  47. package/lib/module/Video/index.js.map +1 -1
  48. package/lib/module/specs/Compressor.nitro.js +4 -0
  49. package/lib/module/specs/Compressor.nitro.js.map +1 -0
  50. package/lib/module/utils/Downloader.js +10 -26
  51. package/lib/module/utils/Downloader.js.map +1 -1
  52. package/lib/module/utils/Uploader.js +5 -20
  53. package/lib/module/utils/Uploader.js.map +1 -1
  54. package/lib/module/utils/helpers.js +16 -0
  55. package/lib/module/utils/helpers.js.map +1 -1
  56. package/lib/module/utils/index.js +2 -1
  57. package/lib/module/utils/index.js.map +1 -1
  58. package/lib/typescript/src/Image/index.d.ts.map +1 -1
  59. package/lib/typescript/src/Main.d.ts +2 -1
  60. package/lib/typescript/src/Main.d.ts.map +1 -1
  61. package/lib/typescript/src/Video/index.d.ts +1 -1
  62. package/lib/typescript/src/Video/index.d.ts.map +1 -1
  63. package/lib/typescript/src/index.d.ts.map +1 -1
  64. package/lib/typescript/src/specs/Compressor.nitro.d.ts +44 -0
  65. package/lib/typescript/src/specs/Compressor.nitro.d.ts.map +1 -0
  66. package/lib/typescript/src/utils/Downloader.d.ts.map +1 -1
  67. package/lib/typescript/src/utils/Uploader.d.ts.map +1 -1
  68. package/lib/typescript/src/utils/helpers.d.ts +7 -0
  69. package/lib/typescript/src/utils/helpers.d.ts.map +1 -1
  70. package/lib/typescript/src/utils/index.d.ts.map +1 -1
  71. package/nitrogen/generated/android/NitroCompressor+autolinking.cmake +81 -0
  72. package/nitrogen/generated/android/NitroCompressor+autolinking.gradle +27 -0
  73. package/nitrogen/generated/android/NitroCompressorOnLoad.cpp +60 -0
  74. package/nitrogen/generated/android/NitroCompressorOnLoad.hpp +34 -0
  75. package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
  76. package/nitrogen/generated/android/c++/JFunc_void_double.hpp +75 -0
  77. package/nitrogen/generated/android/c++/JFunc_void_double_double.hpp +75 -0
  78. package/nitrogen/generated/android/c++/JHybridCompressorSpec.cpp +293 -0
  79. package/nitrogen/generated/android/c++/JHybridCompressorSpec.hpp +78 -0
  80. package/nitrogen/generated/android/c++/JVideoThumbnailResult.hpp +73 -0
  81. package/nitrogen/generated/android/kotlin/com/margelo/nitro/compressor/Func_void.kt +80 -0
  82. package/nitrogen/generated/android/kotlin/com/margelo/nitro/compressor/Func_void_double.kt +80 -0
  83. package/nitrogen/generated/android/kotlin/com/margelo/nitro/compressor/Func_void_double_double.kt +80 -0
  84. package/nitrogen/generated/android/kotlin/com/margelo/nitro/compressor/HybridCompressorSpec.kt +141 -0
  85. package/nitrogen/generated/android/kotlin/com/margelo/nitro/compressor/NitroCompressorOnLoad.kt +35 -0
  86. package/nitrogen/generated/android/kotlin/com/margelo/nitro/compressor/VideoThumbnailResult.kt +71 -0
  87. package/nitrogen/generated/ios/c++/HybridCompressorSpecSwift.cpp +11 -0
  88. package/nitrogen/generated/ios/c++/HybridCompressorSpecSwift.hpp +204 -0
  89. package/nitrogen/generated/ios/react_native_compressor+autolinking.rb +62 -0
  90. package/nitrogen/generated/ios/react_native_compressor-Swift-Cxx-Bridge.cpp +89 -0
  91. package/nitrogen/generated/ios/react_native_compressor-Swift-Cxx-Bridge.hpp +337 -0
  92. package/nitrogen/generated/ios/react_native_compressor-Swift-Cxx-Umbrella.hpp +51 -0
  93. package/nitrogen/generated/ios/react_native_compressorAutolinking.mm +33 -0
  94. package/nitrogen/generated/ios/react_native_compressorAutolinking.swift +26 -0
  95. package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
  96. package/nitrogen/generated/ios/swift/Func_void_VideoThumbnailResult.swift +46 -0
  97. package/nitrogen/generated/ios/swift/Func_void_double.swift +46 -0
  98. package/nitrogen/generated/ios/swift/Func_void_double_double.swift +46 -0
  99. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
  100. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_AnyMap_.swift +46 -0
  101. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
  102. package/nitrogen/generated/ios/swift/HybridCompressorSpec.swift +70 -0
  103. package/nitrogen/generated/ios/swift/HybridCompressorSpec_cxx.swift +493 -0
  104. package/nitrogen/generated/ios/swift/VideoThumbnailResult.swift +49 -0
  105. package/nitrogen/generated/shared/c++/HybridCompressorSpec.cpp +36 -0
  106. package/nitrogen/generated/shared/c++/HybridCompressorSpec.hpp +83 -0
  107. package/nitrogen/generated/shared/c++/VideoThumbnailResult.hpp +99 -0
  108. package/package.json +8 -12
  109. package/react-native-compressor.podspec +6 -24
  110. package/src/Audio/index.tsx +2 -2
  111. package/src/Image/index.tsx +3 -26
  112. package/src/Main.tsx +14 -16
  113. package/src/Video/index.tsx +25 -77
  114. package/src/specs/Compressor.nitro.ts +56 -0
  115. package/src/utils/Downloader.tsx +8 -27
  116. package/src/utils/Uploader.tsx +12 -24
  117. package/src/utils/helpers.ts +18 -0
  118. package/src/utils/index.tsx +3 -2
  119. package/android/src/main/java/com/reactnativecompressor/CompressorModule.kt +0 -180
  120. package/android/src/main/java/com/reactnativecompressor/CompressorPackage.kt +0 -34
  121. package/android/src/newarch/CompressorSpec.kt +0 -5
  122. package/android/src/oldarch/CompressorSpec.kt +0 -36
  123. package/ios/Compressor-Bridging-Header.h +0 -6
  124. package/ios/Compressor.h +0 -5
  125. package/ios/Compressor.mm +0 -82
  126. package/ios/CompressorManager.swift +0 -117
  127. package/lib/commonjs/Spec/NativeCompressor.js +0 -9
  128. package/lib/commonjs/Spec/NativeCompressor.js.map +0 -1
  129. package/lib/module/Spec/NativeCompressor.js +0 -5
  130. package/lib/module/Spec/NativeCompressor.js.map +0 -1
  131. package/lib/typescript/src/Spec/NativeCompressor.d.ts +0 -30
  132. package/lib/typescript/src/Spec/NativeCompressor.d.ts.map +0 -1
  133. package/src/Spec/NativeCompressor.ts +0 -41
@@ -1,180 +0,0 @@
1
- package com.reactnativecompressor
2
-
3
- import android.os.Build
4
- import androidx.annotation.RequiresApi
5
- import com.facebook.react.bridge.Promise
6
- import com.facebook.react.bridge.ReactApplicationContext
7
- import com.facebook.react.bridge.ReactMethod
8
- import com.facebook.react.bridge.ReadableMap
9
- import com.reactnativecompressor.Audio.AudioMain
10
- import com.reactnativecompressor.Image.ImageMain
11
- import com.reactnativecompressor.Utils.CreateVideoThumbnailClass
12
- import com.reactnativecompressor.Utils.Downloader
13
- import com.reactnativecompressor.Utils.EventEmitterHandler
14
- import com.reactnativecompressor.Utils.Uploader
15
- import com.reactnativecompressor.Utils.Utils
16
- import com.reactnativecompressor.Utils.Utils.generateCacheFilePath
17
- import com.reactnativecompressor.Utils.Utils.getRealPath
18
- import com.reactnativecompressor.Video.VideoMain
19
-
20
- class CompressorModule(private val reactContext: ReactApplicationContext) : CompressorSpec(reactContext) {
21
- private val imageMain: ImageMain = ImageMain(reactContext)
22
- private val videoMain: VideoMain = VideoMain(reactContext)
23
- private val audioMain: AudioMain = AudioMain(reactContext)
24
- private val uploader: Uploader = Uploader(reactContext)
25
- private val videoThumbnail: CreateVideoThumbnailClass = CreateVideoThumbnailClass(reactContext)
26
-
27
- override fun initialize() {
28
- super.initialize()
29
- EventEmitterHandler.reactContext=reactContext;
30
- }
31
-
32
-
33
- companion object {
34
- const val NAME = "Compressor"
35
- }
36
- override fun getName(): String {
37
- return NAME
38
- }
39
-
40
- //Image
41
- @ReactMethod
42
- override fun image_compress(
43
- imagePath: String,
44
- optionMap: ReadableMap,
45
- promise: Promise) {
46
- imageMain.image_compress(imagePath,optionMap,promise)
47
- }
48
-
49
- @ReactMethod
50
- override fun getImageMetaData(filePath: String, promise: Promise) {
51
- imageMain.getImageMetaData(filePath,promise)
52
- }
53
-
54
- // VIdeo
55
- @ReactMethod
56
- override fun compress(
57
- fileUrl: String,
58
- optionMap: ReadableMap,
59
- promise: Promise) {
60
- videoMain.compress(fileUrl,optionMap,promise)
61
- }
62
-
63
- @ReactMethod
64
- override fun cancelCompression(
65
- uuid: String) {
66
- videoMain.cancelCompression(uuid)
67
- }
68
-
69
- @ReactMethod
70
- override fun activateBackgroundTask(
71
- options: ReadableMap,
72
- promise: Promise) {
73
- videoMain.activateBackgroundTask(options,promise)
74
- }
75
-
76
- @ReactMethod
77
- override fun deactivateBackgroundTask(
78
- options: ReadableMap,
79
- promise: Promise) {
80
- videoMain.deactivateBackgroundTask(options,promise)
81
- }
82
-
83
- // Audio
84
- @ReactMethod
85
- @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
86
- override fun compress_audio(
87
- fileUrl: String,
88
- optionMap: ReadableMap,
89
- promise: Promise) {
90
- audioMain.compress_audio(fileUrl,optionMap,promise)
91
- }
92
-
93
- // Others
94
- @ReactMethod
95
- override fun generateFilePath(_extension: String, promise: Promise) {
96
- try {
97
- val outputUri = generateCacheFilePath(_extension, reactContext)
98
- promise.resolve(outputUri)
99
- } catch (e: Exception) {
100
- promise.reject(e)
101
- }
102
- }
103
-
104
- @ReactMethod
105
- override fun getRealPath(path: String, type: String, promise: Promise) {
106
- try {
107
- val realPath = getRealPath(path, reactContext)
108
- promise.resolve("file://$realPath")
109
- } catch (e: Exception) {
110
- promise.reject(e)
111
- }
112
- }
113
-
114
- @ReactMethod
115
- override fun getVideoMetaData(filePath: String, promise: Promise) {
116
- videoMain.getVideoMetaData(filePath,promise)
117
- }
118
-
119
- @ReactMethod
120
- override fun getFileSize(filePath: String, promise: Promise) {
121
- Utils.getFileSize(filePath,promise,reactContext)
122
- }
123
-
124
- @ReactMethod
125
- override fun upload(
126
- fileUrl: String,
127
- options: ReadableMap,
128
- promise: Promise) {
129
- uploader.upload(fileUrl, options, reactContext, promise)
130
- }
131
-
132
- @ReactMethod
133
- override fun cancelUpload(uuid: String,shouldCancelAll:Boolean) {
134
- uploader.cancelUpload(uuid,shouldCancelAll)
135
- }
136
-
137
- @ReactMethod
138
- override fun download(
139
- fileUrl: String,
140
- options: ReadableMap,
141
- promise: Promise) {
142
- var uuid: String = ""
143
- var progressDivider=0;
144
- if(options.hasKey("uuid"))
145
- {
146
- uuid= options.getString("uuid") as String
147
- }
148
- if(options.hasKey("progressDivider"))
149
- {
150
- progressDivider= options.getString("progressDivider") as Int
151
- }
152
- val downloadedFilePath:String?=Downloader.downloadMediaWithProgress(fileUrl, uuid,progressDivider,reactContext)
153
- if(downloadedFilePath!=null)
154
- {
155
- promise.resolve(downloadedFilePath)
156
- }
157
- else
158
- {
159
- promise.reject("Unable to download")
160
- }
161
- }
162
-
163
- @ReactMethod
164
- override fun createVideoThumbnail(fileUrl:String, options:ReadableMap, promise:Promise) {
165
- videoThumbnail.create(fileUrl,options,promise)
166
- }
167
-
168
- @ReactMethod
169
- override fun clearCache(cacheDir:String?, promise:Promise) {
170
- CreateVideoThumbnailClass.clearCache(cacheDir, promise, reactContext)
171
- }
172
-
173
- @ReactMethod
174
- override fun addListener(eventName: String) {
175
- }
176
-
177
- @ReactMethod
178
- override fun removeListeners(count: Double) {
179
- }
180
- }
@@ -1,34 +0,0 @@
1
- package com.reactnativecompressor
2
-
3
- import com.facebook.react.TurboReactPackage
4
- import com.facebook.react.bridge.NativeModule
5
- import com.facebook.react.bridge.ReactApplicationContext
6
- import com.facebook.react.module.model.ReactModuleInfo
7
- import com.facebook.react.module.model.ReactModuleInfoProvider
8
-
9
- class CompressorPackage : TurboReactPackage() {
10
- override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
11
- return if (name == CompressorModule.NAME) {
12
- CompressorModule(reactContext)
13
- } else {
14
- null
15
- }
16
- }
17
-
18
- override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
19
- return ReactModuleInfoProvider {
20
- val moduleInfos: MutableMap<String, ReactModuleInfo> = HashMap()
21
- val isTurboModule = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
22
- moduleInfos[CompressorModule.NAME] = ReactModuleInfo(
23
- CompressorModule.NAME,
24
- CompressorModule.NAME,
25
- false, // canOverrideExistingModule
26
- false, // needsEagerInit
27
- true, // hasConstants
28
- false, // isCxxModule
29
- isTurboModule // isTurboModule
30
- )
31
- moduleInfos
32
- }
33
- }
34
- }
@@ -1,5 +0,0 @@
1
- package com.reactnativecompressor
2
-
3
- import com.facebook.react.bridge.ReactApplicationContext
4
-
5
- abstract class CompressorSpec(context: ReactApplicationContext?) : NativeCompressorSpec(context)
@@ -1,36 +0,0 @@
1
- package com.reactnativecompressor
2
-
3
- import com.facebook.react.bridge.Promise
4
- import com.facebook.react.bridge.ReactApplicationContext
5
- import com.facebook.react.bridge.ReactContextBaseJavaModule
6
- import com.facebook.react.bridge.ReadableMap
7
-
8
- abstract class CompressorSpec(context: ReactApplicationContext?) : ReactContextBaseJavaModule(context) {
9
- abstract fun image_compress(
10
- imagePath: String,
11
- optionMap: ReadableMap,
12
- promise: Promise)
13
-
14
- abstract fun compress_audio(
15
- fileUrl: String,
16
- optionMap: ReadableMap,
17
- promise: Promise)
18
-
19
- abstract fun generateFilePath(_extension: String, promise: Promise)
20
- abstract fun getRealPath(path: String, type: String, promise: Promise)
21
- abstract fun getVideoMetaData(filePath: String, promise: Promise)
22
- abstract fun getImageMetaData(filePath: String, promise: Promise);
23
- abstract fun getFileSize(filePath: String, promise: Promise)
24
- abstract fun compress(fileUrl: String, optionMap: ReadableMap, promise: Promise)
25
- abstract fun cancelCompression(uuid: String)
26
- abstract fun upload(fileUrl: String, options: ReadableMap, promise: Promise)
27
- abstract fun cancelUpload(uuid: String, shouldCancelAll:Boolean)
28
-
29
- abstract fun download(fileUrl: String, options: ReadableMap, promise: Promise)
30
- abstract fun activateBackgroundTask(options: ReadableMap, promise: Promise)
31
- abstract fun deactivateBackgroundTask(options: ReadableMap, promise: Promise)
32
- abstract fun createVideoThumbnail(fileUrl: String, options: ReadableMap, promise: Promise)
33
- abstract fun clearCache(cacheDir: String?, promise: Promise)
34
- abstract fun addListener(eventName: String)
35
- abstract fun removeListeners(count: Double)
36
- }
@@ -1,6 +0,0 @@
1
- //
2
- // Use this file to import your target's public headers that you would like to expose to Swift.
3
- //
4
- #import <React/RCTBridgeModule.h>
5
- #import <React/RCTEventEmitter.h>
6
- #import <Foundation/Foundation.h>
package/ios/Compressor.h DELETED
@@ -1,5 +0,0 @@
1
- #import <React/RCTEventEmitter.h>
2
-
3
- #ifdef RCT_NEW_ARCH_ENABLED
4
- #import "RNCompressorSpec.h"
5
- #endif
package/ios/Compressor.mm DELETED
@@ -1,82 +0,0 @@
1
- #import "Compressor.h"
2
-
3
- @interface RCT_EXTERN_MODULE(Compressor, RCTEventEmitter)
4
-
5
- RCT_EXTERN_METHOD(image_compress: (NSString*) imagePath
6
- withOptions: (NSDictionary*) optionMap
7
- withResolver: (RCTPromiseResolveBlock) resolve
8
- withRejecter: (RCTPromiseRejectBlock) reject)
9
-
10
- RCT_EXTERN_METHOD(getImageMetaData: (NSString*) filePath
11
- withResolver: (RCTPromiseResolveBlock) resolve
12
- withRejecter: (RCTPromiseRejectBlock) reject)
13
-
14
- RCT_EXTERN_METHOD(compress_audio: (NSString*) filePath
15
- withOptions: (NSDictionary*) optionsDict
16
- withResolver: (RCTPromiseResolveBlock) resolve
17
- withRejecter: (RCTPromiseRejectBlock) reject)
18
-
19
- RCT_EXTERN_METHOD(generateFilePath: (NSString*) _extension
20
- withResolver: (RCTPromiseResolveBlock) resolve
21
- withRejecter: (RCTPromiseRejectBlock) reject)
22
-
23
- RCT_EXTERN_METHOD(getRealPath: (NSString*) path
24
- withType: (NSString*) type
25
- withResolver: (RCTPromiseResolveBlock) resolve
26
- withRejecter: (RCTPromiseRejectBlock) reject)
27
-
28
- RCT_EXTERN_METHOD(getFileSize: (NSString*) filePath
29
- withResolver: (RCTPromiseResolveBlock) resolve
30
- withRejecter: (RCTPromiseRejectBlock) reject)
31
-
32
- RCT_EXTERN_METHOD(getVideoMetaData: (NSString*) filePath
33
- withResolver: (RCTPromiseResolveBlock) resolve
34
- withRejecter: (RCTPromiseRejectBlock) reject)
35
-
36
- RCT_EXTERN_METHOD(compress:(NSString *)fileUrl
37
- withOptions:(NSDictionary *)options
38
- withResolver:(RCTPromiseResolveBlock)resolve
39
- withRejecter:(RCTPromiseRejectBlock)reject)
40
-
41
- RCT_EXTERN_METHOD(upload:(NSString *)fileUrl
42
- withOptions:(NSDictionary *)options
43
- withResolver:(RCTPromiseResolveBlock)resolve
44
- withRejecter:(RCTPromiseRejectBlock)reject)
45
-
46
- RCT_EXTERN_METHOD(cancelUpload:(NSString *)uuid
47
- withShouldCancelAll:(BOOL*)shouldCancelAll)
48
-
49
- RCT_EXTERN_METHOD(download:(NSString *)fileUrlu
50
- withOptions:(NSDictionary *)options
51
- withResolver:(RCTPromiseResolveBlock)resolve
52
- withRejecter:(RCTPromiseRejectBlock)reject)
53
-
54
- RCT_EXTERN_METHOD(activateBackgroundTask: (NSDictionary *)options
55
- withResolver:(RCTPromiseResolveBlock)resolve
56
- withRejecter:(RCTPromiseRejectBlock)reject)
57
-
58
- RCT_EXTERN_METHOD(deactivateBackgroundTask: (NSDictionary *)options
59
- withResolver:(RCTPromiseResolveBlock)resolve
60
- withRejecter:(RCTPromiseRejectBlock)reject)
61
-
62
- RCT_EXTERN_METHOD(createVideoThumbnail:(NSString *)fileUrl
63
- withOptions:(NSDictionary *)options
64
- withResolver:(RCTPromiseResolveBlock)resolve
65
- withRejecter:(RCTPromiseRejectBlock)reject)
66
-
67
- RCT_EXTERN_METHOD(clearCache:(NSString *)cacheDir
68
- withResolver:(RCTPromiseResolveBlock)resolve
69
- withRejecter:(RCTPromiseRejectBlock)reject)
70
-
71
- RCT_EXTERN_METHOD(cancelCompression:(NSString *)uuid)
72
-
73
- // Don't compile this code when we build for the old architecture.
74
- #ifdef RCT_NEW_ARCH_ENABLED
75
- - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
76
- (const facebook::react::ObjCTurboModule::InitParams &)params
77
- {
78
- return std::make_shared<facebook::react::NativeCompressorSpecJSI>(params);
79
- }
80
- #endif
81
-
82
- @end
@@ -1,117 +0,0 @@
1
- import Foundation
2
- import AVFoundation
3
-
4
- let videoCompressor = VideoCompressor()
5
- let uploader=Uploader()
6
- @objc(Compressor)
7
- class Compressor: RCTEventEmitter {
8
- override static func moduleName() -> String {
9
- return "Compressor"
10
- }
11
-
12
- override init() {
13
- super.init()
14
- EventEmitterHandler.initCompressorInstance(self)
15
- }
16
-
17
- override func stopObserving() -> Void {
18
- EventEmitterHandler.stopObserving()
19
- }
20
-
21
- override func startObserving() -> Void {
22
- EventEmitterHandler.startObserving()
23
- }
24
-
25
- override static func requiresMainQueueSetup() -> Bool {
26
- return false
27
- }
28
-
29
- override func supportedEvents() -> [String] {
30
- return ["downloadProgress", "videoCompressProgress", "uploadProgress", "backgroundTaskExpired"]
31
- }
32
-
33
- @objc(image_compress:withOptions:withResolver:withRejecter:)
34
- func image_compress(_ imagePath: String, optionMap: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
35
- ImageMain.image_compress(imagePath, optionMap: optionMap, resolve: resolve, reject: reject)
36
- }
37
-
38
- @objc(getImageMetaData:withResolver:withRejecter:)
39
- func getImageMetaData(_ filePath: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
40
- ImageMain.getImageMetaData(filePath,resolve: resolve,reject: reject)
41
- }
42
-
43
- @objc(compress_audio:withOptions:withResolver:withRejecter:)
44
- func compress_audio(_ fileUrl: String, optionMap: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
45
- AudioMain.compress_audio(fileUrl, optionMap: optionMap, resolve: resolve, reject: reject)
46
- }
47
-
48
- @objc(generateFilePath:withResolver:withRejecter:)
49
- func generateFilePath(_ _extension: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
50
- Utils.generateFilePath(_extension, resolve: resolve, reject: reject)
51
- }
52
-
53
- @objc(getRealPath:withType:withResolver:withRejecter:)
54
- func getRealPath(_ path: String, type: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
55
- Utils.getRealPath(path, type: type, resolve: resolve, reject: reject)
56
- }
57
-
58
- @objc(getFileSize:withResolver:withRejecter:)
59
- func getFileSize(_ filePath: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
60
- Utils.getFileSize(filePath, resolve: resolve, reject: reject)
61
- }
62
-
63
- @objc(getVideoMetaData:withResolver:withRejecter:)
64
- func getVideoMetaData(_ filePath: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
65
- videoCompressor.getVideoMetaData(filePath,resolve: resolve,reject: reject)
66
- }
67
-
68
-
69
- @objc(activateBackgroundTask:withResolver:withRejecter:)
70
- func activateBackgroundTask(options: [String: Any], resolve:@escaping RCTPromiseResolveBlock, reject:@escaping RCTPromiseRejectBlock) -> Void {
71
- videoCompressor.activateBackgroundTask(options: options,resolve: resolve,reject: reject)
72
- }
73
-
74
- @objc(deactivateBackgroundTask:withResolver:withRejecter:)
75
- func deactivateBackgroundTask(options: [String: Any], resolve:@escaping RCTPromiseResolveBlock, reject:@escaping RCTPromiseRejectBlock) -> Void {
76
- videoCompressor.deactivateBackgroundTask(options: options,resolve: resolve,reject: reject)
77
- }
78
-
79
- @objc(compress:withOptions:withResolver:withRejecter:)
80
- func compress(fileUrl: String, options: [String: Any], resolve:@escaping RCTPromiseResolveBlock, reject:@escaping RCTPromiseRejectBlock) -> Void {
81
- videoCompressor.compress(fileUrl: fileUrl, options: options, resolve: resolve, reject: reject)
82
- }
83
-
84
- @objc(cancelCompression:)
85
- func cancelCompression(uuid: String) -> Void {
86
- videoCompressor.cancelCompression(uuid: uuid)
87
- }
88
-
89
- @objc(upload:withOptions:withResolver:withRejecter:)
90
- func upload(filePath: String, options: [String: Any], resolve:@escaping RCTPromiseResolveBlock, reject:@escaping RCTPromiseRejectBlock) -> Void {
91
- uploader.upload(filePath: filePath, options: options, resolve: resolve, reject: reject)
92
- }
93
-
94
- @objc(cancelUpload:withShouldCancelAll:)
95
- func cancelUpload(uuid: String,shouldCancelAll:Bool) -> Void {
96
- uploader.cancelUpload(uuid: uuid,shouldCancelAll: shouldCancelAll)
97
- }
98
-
99
- @objc(download:withOptions:withResolver:withRejecter:)
100
- func download(filePath: String, options: [String: Any], resolve:@escaping RCTPromiseResolveBlock, reject:@escaping RCTPromiseRejectBlock) -> Void {
101
- Downloader.downloadFileAndSaveToCache(filePath, uuid: options["uuid"] as! String,progressDivider: options["progressDivider"] as? Int ?? 0) { downloadedPath in
102
- resolve(downloadedPath)
103
- }
104
- }
105
-
106
- @objc(createVideoThumbnail:withOptions:withResolver:withRejecter:)
107
- func createVideoThumbnail(fileUrl: String, options: NSDictionary, resolve:@escaping RCTPromiseResolveBlock, reject:@escaping RCTPromiseRejectBlock) -> Void {
108
- let videoThumbnail=CreateVideoThumbnail()
109
- videoThumbnail.create(fileUrl,options: options, resolve: resolve, rejecter: reject)
110
- }
111
-
112
- @objc(clearCache:withResolver:withRejecter:)
113
- func clearCache(cacheDir: String, resolve:@escaping RCTPromiseResolveBlock, reject:@escaping RCTPromiseRejectBlock) -> Void {
114
- CreateVideoThumbnail.cleanCacheDir(cacheDir: cacheDir,resolve: resolve,rejecter: reject)
115
- }
116
-
117
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _reactNative = require("react-native");
8
- var _default = exports.default = _reactNative.TurboModuleRegistry.getEnforcing('Compressor');
9
- //# sourceMappingURL=NativeCompressor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["Spec/NativeCompressor.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAuCpCC,gCAAmB,CAACC,YAAY,CAAO,YAAY,CAAC","ignoreList":[]}
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- import { TurboModuleRegistry } from 'react-native';
4
- export default TurboModuleRegistry.getEnforcing('Compressor');
5
- //# sourceMappingURL=NativeCompressor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["Spec/NativeCompressor.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAuClD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,YAAY,CAAC","ignoreList":[]}
@@ -1,30 +0,0 @@
1
- import type { TurboModule } from 'react-native';
2
- export interface Spec extends TurboModule {
3
- image_compress(imagePath: string, optionMap: Object): Promise<string>;
4
- getImageMetaData(filePath: string): Promise<string>;
5
- compress(fileUrl: string, optionMap: Object): Promise<string>;
6
- cancelCompression(uuid: string): void;
7
- getVideoMetaData(filePath: string): Promise<string>;
8
- activateBackgroundTask(options: Object): Promise<string>;
9
- deactivateBackgroundTask(options: Object): Promise<string>;
10
- compress_audio(fileUrl: string, optionMap: Object): Promise<string>;
11
- upload(fileUrl: string, options: Object): Promise<string>;
12
- cancelUpload(uuid: string, shouldCancelAll: boolean): void;
13
- download(fileUrl: string, options: Object): Promise<string>;
14
- generateFilePath(_extension: string): Promise<string>;
15
- getRealPath(path: string, type: string): Promise<string>;
16
- getFileSize(filePath: string): Promise<string>;
17
- addListener(eventName: string): void;
18
- removeListeners(count: number): void;
19
- createVideoThumbnail(fileUrl: string, options: Object): Promise<{
20
- path: string;
21
- size: number;
22
- mime: string;
23
- width: number;
24
- height: number;
25
- }>;
26
- clearCache(cacheDir: string | null): Promise<string>;
27
- }
28
- declare const _default: Spec;
29
- export default _default;
30
- //# sourceMappingURL=NativeCompressor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NativeCompressor.d.ts","sourceRoot":"","sources":["../../../../src/Spec/NativeCompressor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IAEvC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpD,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3D,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1D,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAE3D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5D,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,oBAAoB,CAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QACT,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACtD;;AAED,wBAAoE"}
@@ -1,41 +0,0 @@
1
- import type { TurboModule } from 'react-native';
2
- import { TurboModuleRegistry } from 'react-native';
3
-
4
- export interface Spec extends TurboModule {
5
- // Image
6
- image_compress(imagePath: string, optionMap: Object): Promise<string>;
7
- getImageMetaData(filePath: string): Promise<string>;
8
- // Video
9
- compress(fileUrl: string, optionMap: Object): Promise<string>;
10
- cancelCompression(uuid: string): void;
11
- getVideoMetaData(filePath: string): Promise<string>;
12
- activateBackgroundTask(options: Object): Promise<string>;
13
- deactivateBackgroundTask(options: Object): Promise<string>;
14
- //Audio
15
- compress_audio(fileUrl: string, optionMap: Object): Promise<string>;
16
- // Upload
17
- upload(fileUrl: string, options: Object): Promise<string>;
18
- // Cancel upload
19
- cancelUpload(uuid: string, shouldCancelAll: boolean): void;
20
- // Download
21
- download(fileUrl: string, options: Object): Promise<string>;
22
- // Others
23
- generateFilePath(_extension: string): Promise<string>;
24
- getRealPath(path: string, type: string): Promise<string>;
25
- getFileSize(filePath: string): Promise<string>;
26
- addListener(eventName: string): void;
27
- removeListeners(count: number): void;
28
- createVideoThumbnail(
29
- fileUrl: string,
30
- options: Object,
31
- ): Promise<{
32
- path: string;
33
- size: number;
34
- mime: string;
35
- width: number;
36
- height: number;
37
- }>;
38
- clearCache(cacheDir: string | null): Promise<string>;
39
- }
40
-
41
- export default TurboModuleRegistry.getEnforcing<Spec>('Compressor');