flinfo/dc-App/unpackage/cache/app-android/uts/uni_modules/lime-file-utils/index.kt.map

1 line
11 KiB
Plaintext
Raw Normal View History

2025-03-01 10:26:49 +08:00
{"version":3,"sources":["uni_modules/lime-file-utils/utssdk/app-android/index.uts","uni_modules/lime-file-utils/utssdk/interface.uts"],"sourcesContent":["import Base64 from \"android.util.Base64\";\r\nimport MimeTypeMap from \"android.webkit.MimeTypeMap\";\r\nimport ByteArrayOutputStream from 'java.io.ByteArrayOutputStream';\r\n\r\nimport File from \"java.io.File\";\r\nimport FileInputStream from \"java.io.FileInputStream\";\r\nimport FileOutputStream from \"java.io.FileOutputStream\";\r\nimport InputStream from 'java.io.InputStream';\r\n\r\n// import IOException from \"java.io.IOException\";\r\nimport { ProcessFileOptions, NullableString } from '../interface'\r\ntype NullByteArray = ByteArray | null\r\n\r\nfunction inputStreamToArray(inputStream : InputStream) : NullByteArray {\r\n\ttry {\r\n\t\tlet bos : ByteArrayOutputStream = new ByteArrayOutputStream()\r\n\t\tlet bytes : ByteArray = new ByteArray(1024)\r\n\r\n\t\tdo {\r\n\t\t\tlet length = inputStream.read(bytes)\r\n\t\t\tif (length != -1) {\r\n\t\t\t\tbos.write(bytes, 0, length)\r\n\t\t\t} else {\r\n\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t} while (true)\r\n\t\tbos.close()\r\n\t\treturn bos.toByteArray()\r\n\t} catch (e : Throwable) {\r\n\t\treturn null;\r\n\t}\r\n}\r\n\r\nfunction getMimeType(filePath : string) : NullableString {\r\n\tconst extension = MimeTypeMap.getFileExtensionFromUrl(filePath);\r\n\tif (extension == null) return null\r\n\treturn MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);\r\n}\r\n\r\nexport function getResourcePath(path : string) : string | null {\r\n\tlet uri = path\r\n\tif (uri.startsWith(\"http\") || uri.startsWith(\"<svg\") || uri.startsWith(\"data:image/\")) {\r\n\t\treturn uri\r\n\t}\r\n\tif (uri.startsWith(\"file://\")) {\r\n\t\turi = uri.substring(\"file://\".length)\r\n\t} else if (uri.startsWith(\"unifile://\")) {\r\n\t\turi = UTSAndroid.convert2AbsFullPath(uri)\r\n\t} else {\r\n\t\turi = UTSAndroid.convert2AbsFullPath(uri)\r\n\t\tif (uri.startsWith(\"/android_asset/\")) {\r\n\t\t\ttry {\r\n\t\t\t\tconst context = UTSAndroid.getUniActivity()!;\r\n\t\t\t\tconst inputStream = context.getResources()!.getAssets().open(path.replace('/android_asset/', ''))\r\n\t\t\t\tinputStream.close();\r\n\t\t\t\treturn uri\r\n\t\t\t} catch (e) {\r\n\t\t\t\treturn null\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tconst file = new File(uri)\r\n\tif (file.exists()) {\r\n\t\treturn uri\r\n\t}\r\n\treturn null\r\n}\r\n\r\nexport function fileToBase64(filePath : string) : NullableString {\r\n\ttry {\r\n\t\tconst context = UTSAndroid.getUniActivity()!;\r\n\t\tlet path = filePath;\r\n\t\tlet imageBytes : NullByteArray = null\r\n\r\n\t\tif (path.startsWith(\"file://\")) {\r\n\t\t\tpath = path.replace(\"file://\", \"\")\r\n\t\t} else {\r\n\t\t\t// if(!path.startsWith(\"/storage\") && !path.startsWith(\"/android_asset/\"))\r\n\t\t\t// path = UTSAndroid.getResourcePath(path)\r\n\t\t\tpath = UTSAndroid.convert2AbsFullPath(path)\r\n\t\t}\r\n\r\n\t\tif (path.startsWith(\"/android_asset/\")) {\r\n\t\t\timageBytes = inputStreamToArray(context.getResources()!.getAssets().open(path.replace('/android_asset/', '')))\r\n\t\t} else {\r\n\t\t\tconst file = new File(path)\r\n\t\t\tif (file.exists()) {\r\n\t\t\t\tlet fis : FileInputStream = new FileInputStream(file);\r\n\t\t\t\timageBytes = inputStreamToArray(fis);\r\n\t\t\t\tfis.close();\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (imageBytes == null) return null\r\n\t\treturn Base64.encodeToString(imageBytes, Base64.DEFAULT)\r\n\t} catch (e) {\r\n\t\treturn null\r\n\t}\r\n}\r\nexport function fileToDataURL(filePath : string) : NullableString {\r\n\tconst base64 = fileToBase64(filePath)\r\n\tconst mimeType = getMimeType(filePath);\r\n\tif (base64 == null || mimeType == null) return null;\r\n\treturn \"data:\" + mimeType + \";base64,\" + base64;\r\n}\r\n\r\n\r\nfunction getFileExtensionFromDataURL(dataURL : string) : string {\r\n\tconst commaIndex = dataURL.indexOf(\",\");\r\n\tconst mimeType = dataURL.substring(0, commaIndex).replace(\"data:\", \"\").replace(\";base64\", \"\");\r\n\tconst mimeTypeParts = mimeType.split(\"/\");\r\n\treturn mim