react-native-nitro-web-image 0.5.0-beta.5

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 (68) hide show
  1. package/NitroWebImage.podspec +33 -0
  2. package/android/CMakeLists.txt +31 -0
  3. package/android/build.gradle +145 -0
  4. package/android/gradle.properties +5 -0
  5. package/android/src/main/AndroidManifest.xml +2 -0
  6. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  7. package/android/src/main/java/com/margelo/nitro/web/image/AsyncImagePriority+toCoroutineContext.kt +15 -0
  8. package/android/src/main/java/com/margelo/nitro/web/image/HybridWebImageFactory.kt +32 -0
  9. package/android/src/main/java/com/margelo/nitro/web/image/HybridWebImageLoader.kt +32 -0
  10. package/android/src/main/java/com/margelo/nitro/web/image/ImageLoader+loadImageAsync.kt +37 -0
  11. package/android/src/main/java/com/margelo/nitro/web/image/ImageRequestBuilder+applyOptions.kt +58 -0
  12. package/android/src/main/java/com/margelo/nitro/web/image/NitroWebImagePackage.java +44 -0
  13. package/ios/AsyncImageLoadOptions+toSDWebImageOptions.swift +66 -0
  14. package/ios/Bridge.h +8 -0
  15. package/ios/HybridWebImageFactory.swift +32 -0
  16. package/ios/HybridWebImageLoader.swift +54 -0
  17. package/ios/SDWebImageManager+loadImage.swift +30 -0
  18. package/lib/commonjs/index.js +9 -0
  19. package/lib/commonjs/index.js.map +1 -0
  20. package/lib/commonjs/package.json +1 -0
  21. package/lib/commonjs/specs/WebImageFactory.nitro.js +6 -0
  22. package/lib/commonjs/specs/WebImageFactory.nitro.js.map +1 -0
  23. package/lib/module/index.js +5 -0
  24. package/lib/module/index.js.map +1 -0
  25. package/lib/module/package.json +1 -0
  26. package/lib/module/specs/WebImageFactory.nitro.js +4 -0
  27. package/lib/module/specs/WebImageFactory.nitro.js.map +1 -0
  28. package/lib/tsconfig.build.tsbuildinfo +1 -0
  29. package/lib/typescript/index.d.ts +3 -0
  30. package/lib/typescript/index.d.ts.map +1 -0
  31. package/lib/typescript/specs/WebImageFactory.nitro.d.ts +63 -0
  32. package/lib/typescript/specs/WebImageFactory.nitro.d.ts.map +1 -0
  33. package/nitro.json +18 -0
  34. package/nitrogen/generated/.gitattributes +1 -0
  35. package/nitrogen/generated/android/NitroWebImage+autolinking.cmake +78 -0
  36. package/nitrogen/generated/android/NitroWebImage+autolinking.gradle +27 -0
  37. package/nitrogen/generated/android/NitroWebImageOnLoad.cpp +46 -0
  38. package/nitrogen/generated/android/NitroWebImageOnLoad.hpp +25 -0
  39. package/nitrogen/generated/android/c++/JAsyncImageLoadOptions.hpp +88 -0
  40. package/nitrogen/generated/android/c++/JAsyncImagePriority.hpp +62 -0
  41. package/nitrogen/generated/android/c++/JHybridWebImageFactorySpec.cpp +82 -0
  42. package/nitrogen/generated/android/c++/JHybridWebImageFactorySpec.hpp +64 -0
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/web/image/AsyncImageLoadOptions.kt +35 -0
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/web/image/AsyncImagePriority.kt +26 -0
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/web/image/HybridWebImageFactorySpec.kt +58 -0
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/web/image/NitroWebImageOnLoad.kt +35 -0
  47. package/nitrogen/generated/ios/NitroWebImage+autolinking.rb +60 -0
  48. package/nitrogen/generated/ios/NitroWebImage-Swift-Cxx-Bridge.cpp +65 -0
  49. package/nitrogen/generated/ios/NitroWebImage-Swift-Cxx-Bridge.hpp +197 -0
  50. package/nitrogen/generated/ios/NitroWebImage-Swift-Cxx-Umbrella.hpp +62 -0
  51. package/nitrogen/generated/ios/NitroWebImageAutolinking.mm +33 -0
  52. package/nitrogen/generated/ios/NitroWebImageAutolinking.swift +25 -0
  53. package/nitrogen/generated/ios/c++/HybridWebImageFactorySpecSwift.cpp +11 -0
  54. package/nitrogen/generated/ios/c++/HybridWebImageFactorySpecSwift.hpp +95 -0
  55. package/nitrogen/generated/ios/swift/AsyncImageLoadOptions.swift +237 -0
  56. package/nitrogen/generated/ios/swift/AsyncImagePriority.swift +44 -0
  57. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
  58. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_margelo__nitro__image__HybridImageSpec_.swift +51 -0
  59. package/nitrogen/generated/ios/swift/HybridWebImageFactorySpec.swift +51 -0
  60. package/nitrogen/generated/ios/swift/HybridWebImageFactorySpec_cxx.swift +161 -0
  61. package/nitrogen/generated/shared/c++/AsyncImageLoadOptions.hpp +104 -0
  62. package/nitrogen/generated/shared/c++/AsyncImagePriority.hpp +82 -0
  63. package/nitrogen/generated/shared/c++/HybridWebImageFactorySpec.cpp +22 -0
  64. package/nitrogen/generated/shared/c++/HybridWebImageFactorySpec.hpp +74 -0
  65. package/package.json +113 -0
  66. package/react-native.config.js +16 -0
  67. package/src/index.ts +5 -0
  68. package/src/specs/WebImageFactory.nitro.ts +76 -0
package/package.json ADDED
@@ -0,0 +1,113 @@
1
+ {
2
+ "name": "react-native-nitro-web-image",
3
+ "version": "0.5.0-beta.5",
4
+ "description": "react-native-nitro-web-image",
5
+ "main": "lib/commonjs/index",
6
+ "module": "lib/module/index",
7
+ "types": "lib/typescript/index.d.ts",
8
+ "react-native": "src/index",
9
+ "source": "src/index",
10
+ "workspaces": [
11
+ "example"
12
+ ],
13
+ "files": [
14
+ "src",
15
+ "react-native.config.js",
16
+ "lib",
17
+ "nitrogen",
18
+ "android/build.gradle",
19
+ "android/gradle.properties",
20
+ "android/CMakeLists.txt",
21
+ "android/src",
22
+ "ios/**/*.h",
23
+ "ios/**/*.m",
24
+ "ios/**/*.mm",
25
+ "ios/**/*.cpp",
26
+ "ios/**/*.swift",
27
+ "app.plugin.js",
28
+ "nitro.json",
29
+ "*.podspec",
30
+ "README.md"
31
+ ],
32
+ "scripts": {
33
+ "build": "rm -rf lib && bun typecheck && bob build",
34
+ "postinstall": "tsc || exit 0;",
35
+ "typecheck": "tsc --noEmit",
36
+ "clean": "rm -rf android/build node_modules/**/android/build lib",
37
+ "lint": "biome check . --fix",
38
+ "lint-ci": "biome check .",
39
+ "release": "release-it",
40
+ "typescript": "tsc",
41
+ "specs": "tsc && nitro-codegen --logLevel=\"debug\""
42
+ },
43
+ "keywords": [
44
+ "react-native",
45
+ "nitro"
46
+ ],
47
+ "repository": {
48
+ "type": "git",
49
+ "url": "git+https://github.com/mrousavy/react-native-nitro-web-image.git"
50
+ },
51
+ "author": "Marc Rousavy <me@mrousavy.com> (https://github.com/mrousavy)",
52
+ "license": "MIT",
53
+ "bugs": {
54
+ "url": "https://github.com/mrousavy/react-native-nitro-web-image/issues"
55
+ },
56
+ "homepage": "https://github.com/mrousavy/react-native-nitro-web-image#readme",
57
+ "publishConfig": {
58
+ "registry": "https://registry.npmjs.org/"
59
+ },
60
+ "devDependencies": {
61
+ "@biomejs/biome": "2.1.1",
62
+ "@release-it/conventional-changelog": "^8.0.2",
63
+ "@types/react": "^19.0.6",
64
+ "nitro-codegen": "^0.27.2",
65
+ "react": "19.1.0",
66
+ "react-native": "0.80.2",
67
+ "react-native-nitro-modules": "^0.27.2",
68
+ "react-native-nitro-image": "../react-native-nitro-image",
69
+ "release-it": "^17.10.0",
70
+ "typescript": "^5.5.4"
71
+ },
72
+ "peerDependencies": {
73
+ "react": "*",
74
+ "react-native": "*",
75
+ "react-native-nitro-modules": "*",
76
+ "react-native-nitro-image": "*"
77
+ },
78
+ "prettier": {
79
+ "quoteProps": "consistent",
80
+ "singleQuote": true,
81
+ "tabWidth": 2,
82
+ "trailingComma": "es5",
83
+ "useTabs": false,
84
+ "semi": false
85
+ },
86
+ "react-native-builder-bob": {
87
+ "source": "src",
88
+ "output": "lib",
89
+ "targets": [
90
+ "commonjs",
91
+ "module",
92
+ [
93
+ "typescript",
94
+ {
95
+ "project": "tsconfig.build.json"
96
+ }
97
+ ]
98
+ ]
99
+ },
100
+ "release-it": {
101
+ "npm": {
102
+ "publish": true
103
+ },
104
+ "git": false,
105
+ "github": {
106
+ "release": false
107
+ },
108
+ "hooks": {
109
+ "before:init": "bun typecheck && bun lint",
110
+ "after:bump": "bun run build"
111
+ }
112
+ }
113
+ }
@@ -0,0 +1,16 @@
1
+ // https://github.com/react-native-community/cli/blob/main/docs/dependencies.md
2
+
3
+ module.exports = {
4
+ dependency: {
5
+ platforms: {
6
+ /**
7
+ * @type {import('@react-native-community/cli-types').IOSDependencyParams}
8
+ */
9
+ ios: {},
10
+ /**
11
+ * @type {import('@react-native-community/cli-types').AndroidDependencyParams}
12
+ */
13
+ android: {},
14
+ },
15
+ },
16
+ };
package/src/index.ts ADDED
@@ -0,0 +1,5 @@
1
+ import { NitroModules } from "react-native-nitro-modules";
2
+ import type { WebImageFactory } from "./specs/WebImageFactory.nitro";
3
+
4
+ export const WebImages =
5
+ NitroModules.createHybridObject<WebImageFactory>("WebImageFactory");
@@ -0,0 +1,76 @@
1
+ import type { Image, ImageLoader } from "react-native-nitro-image";
2
+ import type { HybridObject } from "react-native-nitro-modules";
3
+
4
+ export type AsyncImagePriority = "low" | "default" | "high";
5
+
6
+ export interface AsyncImageLoadOptions {
7
+ /**
8
+ * Specifies the priority of the image download.
9
+ * @default 'default'
10
+ */
11
+ priority?: AsyncImagePriority;
12
+
13
+ /**
14
+ * Forces a cache refresh even if the URL is changed.
15
+ * Use this if you cannot make your URLs static.
16
+ * @default false
17
+ */
18
+ forceRefresh?: boolean;
19
+
20
+ /**
21
+ * A custom cache key to use for the image. By default, the URL is used as a cache key.
22
+ * For customized access control/caching, provide a custom cache key.
23
+ * @default The URL of the image.
24
+ */
25
+ cacheKey?: string;
26
+
27
+ /**
28
+ * Allows the Image download to continue even when the app is backgrounded.
29
+ * @default false
30
+ */
31
+ continueInBackground?: boolean;
32
+
33
+ /**
34
+ * Enable to allow untrusted SSL certificates.
35
+ * @default false
36
+ */
37
+ allowInvalidSSLCertificates?: boolean;
38
+
39
+ /**
40
+ * Scales down larger images to respect the device's memory constraints (max. 60 MB, or 4096x4096)
41
+ * @default false
42
+ */
43
+ scaleDownLargeImages?: boolean;
44
+
45
+ /**
46
+ * By default, cached images are queried from memory **asynchronously** to avoid UI lag.
47
+ * If this flag is enabled, images are queried **synchronously** from memory.
48
+ * @default false
49
+ */
50
+ queryMemoryDataSync?: boolean;
51
+ /**
52
+ * By default, cached images are queried from disk **asynchronously** to avoid UI lag.
53
+ * If this flag is enabled, images are queried **synchronously** from disk.
54
+ * @default false
55
+ */
56
+ queryDiskDataSync?: boolean;
57
+
58
+ /**
59
+ * By default, images are decoded from binary data to actual image representations.
60
+ * Disabling this might speed up downloads, but could increase memory usage.
61
+ * @default true
62
+ */
63
+ decodeImage?: boolean;
64
+ }
65
+
66
+ export interface WebImageFactory
67
+ extends HybridObject<{ ios: "swift"; android: "kotlin" }> {
68
+ createWebImageLoader(
69
+ url: string,
70
+ options?: AsyncImageLoadOptions,
71
+ ): ImageLoader;
72
+ loadFromURLAsync(
73
+ url: string,
74
+ options?: AsyncImageLoadOptions,
75
+ ): Promise<Image>;
76
+ }