@kiosinc/commons-rn 0.1.75 → 0.1.76
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.
- package/lib/commonjs/helpers/AssetManager.js +15 -1
- package/lib/commonjs/helpers/AssetManager.js.map +1 -1
- package/lib/module/helpers/AssetManager.js +15 -1
- package/lib/module/helpers/AssetManager.js.map +1 -1
- package/lib/typescript/src/helpers/AssetManager.d.ts +1 -0
- package/lib/typescript/src/helpers/AssetManager.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/helpers/AssetManager.ts +17 -2
|
@@ -7,9 +7,23 @@ exports.AssetManager = void 0;
|
|
|
7
7
|
var _reactNativeFastImage = _interopRequireDefault(require("react-native-fast-image"));
|
|
8
8
|
var _storage = _interopRequireDefault(require("@react-native-firebase/storage"));
|
|
9
9
|
var _reactNativeBlobUtil = _interopRequireDefault(require("react-native-blob-util"));
|
|
10
|
+
var _reactNative = require("react-native");
|
|
10
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
12
|
class AssetManager {
|
|
12
13
|
static assetCache = {};
|
|
14
|
+
static detectTypeFromPath(path) {
|
|
15
|
+
const fileExtension = path.split('.')?.pop()?.toLowerCase() ?? '';
|
|
16
|
+
const videoExtensions = ['mp4', 'avi', 'mov', 'mkv', 'wmv', 'flv', 'webm'];
|
|
17
|
+
const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp'];
|
|
18
|
+
if (videoExtensions.includes(fileExtension)) {
|
|
19
|
+
return 'video';
|
|
20
|
+
}
|
|
21
|
+
if (imageExtensions.includes(fileExtension)) {
|
|
22
|
+
return 'image';
|
|
23
|
+
}
|
|
24
|
+
_reactNative.Alert.alert(`Unsupported default asset ${path}`);
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
13
27
|
static async clearCache() {
|
|
14
28
|
await _reactNativeFastImage.default.clearDiskCache();
|
|
15
29
|
await _reactNativeFastImage.default.clearMemoryCache();
|
|
@@ -87,7 +101,7 @@ class AssetManager {
|
|
|
87
101
|
// If not cached, fetch from storage and cache the result
|
|
88
102
|
const downloadURL = await (0, _storage.default)().refFromURL(path).getDownloadURL();
|
|
89
103
|
const metaData = await (0, _storage.default)().refFromURL(path).getMetadata();
|
|
90
|
-
const type = metaData?.customMetadata?.type ??
|
|
104
|
+
const type = metaData?.customMetadata?.type ?? AssetManager.detectTypeFromPath(path);
|
|
91
105
|
const assetDetails = {
|
|
92
106
|
uri: downloadURL,
|
|
93
107
|
type
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeFastImage","_interopRequireDefault","require","_storage","_reactNativeBlobUtil","obj","__esModule","default","AssetManager","assetCache","clearCache","FastImage","clearDiskCache","clearMemoryCache","uploadImage","uri","base64","
|
|
1
|
+
{"version":3,"names":["_reactNativeFastImage","_interopRequireDefault","require","_storage","_reactNativeBlobUtil","_reactNative","obj","__esModule","default","AssetManager","assetCache","detectTypeFromPath","path","fileExtension","split","pop","toLowerCase","videoExtensions","imageExtensions","includes","Alert","alert","clearCache","FastImage","clearDiskCache","clearMemoryCache","uploadImage","uri","base64","type","setProgress","reference","storage","ref","task","putString","StringFormat","BASE64","cacheControl","putFile","previousTime","Date","now","previousBytesTransferred","speed","on","taskSnapshot","currentTime","currentBytesTransferred","bytesTransferred","timeDifference","bytesDifference","uploadSpeedMegabytesPerSecond","toFixed","percentage","Math","ceil","totalBytes","updateMetadata","customMetadata","url","toString","downloadImage","dirs","ReactNativeBlobUtil","fs","res","config","DocumentDir","fetch","fileExists","documentDir","exists","getBase64","readFile","getAssetURL","downloadURL","refFromURL","getDownloadURL","metaData","getMetadata","assetDetails","e","exports"],"sourceRoot":"../../../src","sources":["helpers/AssetManager.ts"],"mappings":"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"}
|
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
import FastImage from 'react-native-fast-image';
|
|
2
2
|
import storage from '@react-native-firebase/storage';
|
|
3
3
|
import ReactNativeBlobUtil from 'react-native-blob-util';
|
|
4
|
+
import { Alert } from 'react-native';
|
|
4
5
|
export class AssetManager {
|
|
5
6
|
static assetCache = {};
|
|
7
|
+
static detectTypeFromPath(path) {
|
|
8
|
+
const fileExtension = path.split('.')?.pop()?.toLowerCase() ?? '';
|
|
9
|
+
const videoExtensions = ['mp4', 'avi', 'mov', 'mkv', 'wmv', 'flv', 'webm'];
|
|
10
|
+
const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp'];
|
|
11
|
+
if (videoExtensions.includes(fileExtension)) {
|
|
12
|
+
return 'video';
|
|
13
|
+
}
|
|
14
|
+
if (imageExtensions.includes(fileExtension)) {
|
|
15
|
+
return 'image';
|
|
16
|
+
}
|
|
17
|
+
Alert.alert(`Unsupported default asset ${path}`);
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
6
20
|
static async clearCache() {
|
|
7
21
|
await FastImage.clearDiskCache();
|
|
8
22
|
await FastImage.clearMemoryCache();
|
|
@@ -80,7 +94,7 @@ export class AssetManager {
|
|
|
80
94
|
// If not cached, fetch from storage and cache the result
|
|
81
95
|
const downloadURL = await storage().refFromURL(path).getDownloadURL();
|
|
82
96
|
const metaData = await storage().refFromURL(path).getMetadata();
|
|
83
|
-
const type = metaData?.customMetadata?.type ??
|
|
97
|
+
const type = metaData?.customMetadata?.type ?? AssetManager.detectTypeFromPath(path);
|
|
84
98
|
const assetDetails = {
|
|
85
99
|
uri: downloadURL,
|
|
86
100
|
type
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FastImage","storage","ReactNativeBlobUtil","AssetManager","assetCache","clearCache","clearDiskCache","clearMemoryCache","uploadImage","uri","base64","
|
|
1
|
+
{"version":3,"names":["FastImage","storage","ReactNativeBlobUtil","Alert","AssetManager","assetCache","detectTypeFromPath","path","fileExtension","split","pop","toLowerCase","videoExtensions","imageExtensions","includes","alert","clearCache","clearDiskCache","clearMemoryCache","uploadImage","uri","base64","type","setProgress","reference","ref","task","putString","StringFormat","BASE64","cacheControl","putFile","previousTime","Date","now","previousBytesTransferred","speed","on","taskSnapshot","currentTime","currentBytesTransferred","bytesTransferred","timeDifference","bytesDifference","uploadSpeedMegabytesPerSecond","toFixed","percentage","Math","ceil","totalBytes","updateMetadata","customMetadata","url","toString","downloadImage","dirs","fs","res","config","DocumentDir","fetch","fileExists","documentDir","exists","getBase64","readFile","getAssetURL","downloadURL","refFromURL","getDownloadURL","metaData","getMetadata","assetDetails","e"],"sourceRoot":"../../../src","sources":["helpers/AssetManager.ts"],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { FirebaseStorageTypes } from '@react-native-firebase/storage';
|
|
|
3
3
|
type TaskSnapshot = FirebaseStorageTypes.TaskSnapshot;
|
|
4
4
|
export declare class AssetManager {
|
|
5
5
|
private static assetCache;
|
|
6
|
+
static detectTypeFromPath(path: string): "video" | "image" | null;
|
|
6
7
|
static clearCache(): Promise<void>;
|
|
7
8
|
static uploadImage({ uri, base64, path, type, setProgress, }: {
|
|
8
9
|
uri: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetManager.d.ts","sourceRoot":"","sources":["../../../../src/helpers/AssetManager.ts"],"names":[],"mappings":";AACA,OAAgB,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"AssetManager.d.ts","sourceRoot":"","sources":["../../../../src/helpers/AssetManager.ts"],"names":[],"mappings":";AACA,OAAgB,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAI/E,KAAK,YAAY,GAAG,oBAAoB,CAAC,YAAY,CAAC;AACtD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,UAAU,CAKlB;IAEP,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM;WAczB,UAAU;WAKV,WAAW,CAAC,EACvB,GAAG,EACH,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,WAAW,GACZ,EAAE;QACD,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;QACxB,WAAW,EAAE,KAAK,CAAC,QAAQ,CACzB,KAAK,CAAC,cAAc,CAAC;YACnB,UAAU,EAAE,MAAM,CAAC;YACnB,KAAK,EAAE,MAAM,CAAC;SACf,CAAC,CACH,CAAC;KACH,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,YAAY,CAAC;QAC3B,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;WAyDW,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAQzD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAK1C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAKxC,WAAW,CAAC,IAAI,EAAE,MAAM;;;;CAwBtC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import FastImage from 'react-native-fast-image';
|
|
2
2
|
import storage, { FirebaseStorageTypes } from '@react-native-firebase/storage';
|
|
3
3
|
import ReactNativeBlobUtil from 'react-native-blob-util';
|
|
4
|
+
import { Alert } from 'react-native';
|
|
4
5
|
|
|
5
6
|
type TaskSnapshot = FirebaseStorageTypes.TaskSnapshot;
|
|
6
|
-
|
|
7
7
|
export class AssetManager {
|
|
8
8
|
private static assetCache: {
|
|
9
9
|
[path: string]: {
|
|
@@ -12,6 +12,20 @@ export class AssetManager {
|
|
|
12
12
|
};
|
|
13
13
|
} = {};
|
|
14
14
|
|
|
15
|
+
static detectTypeFromPath(path: string) {
|
|
16
|
+
const fileExtension = path.split('.')?.pop()?.toLowerCase() ?? '';
|
|
17
|
+
const videoExtensions = ['mp4', 'avi', 'mov', 'mkv', 'wmv', 'flv', 'webm'];
|
|
18
|
+
const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp'];
|
|
19
|
+
if (videoExtensions.includes(fileExtension)) {
|
|
20
|
+
return 'video';
|
|
21
|
+
}
|
|
22
|
+
if (imageExtensions.includes(fileExtension)) {
|
|
23
|
+
return 'image';
|
|
24
|
+
}
|
|
25
|
+
Alert.alert(`Unsupported default asset ${path}`);
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
|
|
15
29
|
static async clearCache() {
|
|
16
30
|
await FastImage.clearDiskCache();
|
|
17
31
|
await FastImage.clearMemoryCache();
|
|
@@ -122,7 +136,8 @@ export class AssetManager {
|
|
|
122
136
|
// If not cached, fetch from storage and cache the result
|
|
123
137
|
const downloadURL = await storage().refFromURL(path).getDownloadURL();
|
|
124
138
|
const metaData = await storage().refFromURL(path).getMetadata();
|
|
125
|
-
const type = (metaData?.customMetadata?.type ??
|
|
139
|
+
const type = (metaData?.customMetadata?.type ??
|
|
140
|
+
AssetManager.detectTypeFromPath(path)) as string;
|
|
126
141
|
const assetDetails = {
|
|
127
142
|
uri: downloadURL,
|
|
128
143
|
type,
|