@umituz/react-native-filesystem 1.5.0 → 2.1.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umituz/react-native-filesystem",
3
- "version": "1.5.0",
3
+ "version": "2.1.0",
4
4
  "description": "Domain-Driven Design filesystem utilities for React Native apps with build-time module loading and runtime file operations",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -3,15 +3,26 @@
3
3
  * Delegates to specialized services following SOLID principles
4
4
  */
5
5
 
6
- import { FileOperations } from "./FileOperations";
7
- import { FileManagement } from "./FileManagement";
8
- import { DirectoryOperations } from "./DirectoryOperations";
9
- import { FileInformation } from "./FileInformation";
10
- import { DownloadOperations } from "./DownloadOperations";
11
- import { CacheOperations } from "./CacheOperations";
12
- import { FilePathOperations } from "./FilePathOperations";
6
+ import { readFile, readFileAsBase64 } from "./file-reader.service";
7
+ import { writeFile } from "./file-writer.service";
8
+ import { deleteFile, copyFile, moveFile } from "./file-manager.service";
9
+ import {
10
+ createDirectory,
11
+ listDirectory,
12
+ getDirectoryPath,
13
+ getDocumentDirectory,
14
+ getCacheDirectory,
15
+ } from "./directory.service";
16
+ import { getFileInfo, fileExists, getFileSize } from "./file-info.service";
17
+ import { downloadFile } from "./download.service";
18
+ import { clearCache, getDirectorySize } from "./cache.service";
19
+ import { generateFilePath } from "./file-path.service";
13
20
  import { FileUtils } from "../../domain/entities/File";
14
- import type { FileEncoding, DirectoryType, FileOperationResult } from "../../domain/entities/File";
21
+ import type {
22
+ FileEncoding,
23
+ DirectoryType,
24
+ FileOperationResult,
25
+ } from "../../domain/entities/File";
15
26
 
16
27
  /**
17
28
  * FileSystem Service - Clean facade for all file operations
@@ -19,99 +30,126 @@ import type { FileEncoding, DirectoryType, FileOperationResult } from "../../dom
19
30
  */
20
31
  export class FileSystemService {
21
32
  // File Reading
22
- static async readFile(uri: string, encoding: FileEncoding = "utf8"): Promise<string | null> {
23
- return FileOperations.readFile(uri, encoding);
33
+ static async readFile(
34
+ uri: string,
35
+ encoding: FileEncoding = "utf8"
36
+ ): Promise<string | null> {
37
+ return readFile(uri, encoding);
24
38
  }
25
39
 
26
40
  static async readFileAsBase64(uri: string): Promise<string | null> {
27
- return FileOperations.readFileAsBase64(uri);
41
+ return readFileAsBase64(uri);
28
42
  }
29
43
 
30
44
  // File Writing
31
- static async writeFile(uri: string, content: string, encoding: FileEncoding = "utf8"): Promise<FileOperationResult> {
32
- return FileOperations.writeFile(uri, content, encoding);
45
+ static async writeFile(
46
+ uri: string,
47
+ content: string,
48
+ encoding: FileEncoding = "utf8"
49
+ ): Promise<FileOperationResult> {
50
+ return writeFile(uri, content, encoding);
33
51
  }
34
52
 
35
53
  // File Management
36
54
  static async deleteFile(uri: string): Promise<boolean> {
37
- return FileManagement.deleteFile(uri);
55
+ return deleteFile(uri);
38
56
  }
39
57
 
40
- static async copyFile(sourceUri: string, destinationUri: string): Promise<FileOperationResult> {
41
- return FileManagement.copyFile(sourceUri, destinationUri);
58
+ static async copyFile(
59
+ sourceUri: string,
60
+ destinationUri: string
61
+ ): Promise<FileOperationResult> {
62
+ return copyFile(sourceUri, destinationUri);
42
63
  }
43
64
 
44
- static async moveFile(sourceUri: string, destinationUri: string): Promise<FileOperationResult> {
45
- return FileManagement.moveFile(sourceUri, destinationUri);
65
+ static async moveFile(
66
+ sourceUri: string,
67
+ destinationUri: string
68
+ ): Promise<FileOperationResult> {
69
+ return moveFile(sourceUri, destinationUri);
46
70
  }
47
71
 
48
72
  // Directory Operations
49
73
  static async createDirectory(uri: string): Promise<boolean> {
50
- return DirectoryOperations.createDirectory(uri);
74
+ return createDirectory(uri);
51
75
  }
52
76
 
53
77
  static async listDirectory(uri: string): Promise<string[]> {
54
- return DirectoryOperations.listDirectory(uri);
78
+ return listDirectory(uri);
55
79
  }
56
80
 
57
81
  static getDirectoryPath(type: DirectoryType): string {
58
- return DirectoryOperations.getDirectoryPath(type);
82
+ return getDirectoryPath(type);
59
83
  }
60
84
 
61
85
  static getDocumentDirectory(): string {
62
- return DirectoryOperations.getDocumentDirectory();
86
+ return getDocumentDirectory();
63
87
  }
64
88
 
65
89
  static getCacheDirectory(): string {
66
- return DirectoryOperations.getCacheDirectory();
90
+ return getCacheDirectory();
67
91
  }
68
92
 
69
93
  // File Information
70
94
  static async getFileInfo(uri: string) {
71
- return FileInformation.getFileInfo(uri);
95
+ return getFileInfo(uri);
72
96
  }
73
97
 
74
98
  static async exists(uri: string): Promise<boolean> {
75
- return FileInformation.exists(uri);
99
+ return fileExists(uri);
76
100
  }
77
101
 
78
102
  static async getFileSize(uri: string): Promise<number> {
79
- return FileInformation.getFileSize(uri);
103
+ return getFileSize(uri);
80
104
  }
81
105
 
82
106
  // Downloads
83
- static async downloadFile(url: string, destinationUri?: string): Promise<FileOperationResult> {
84
- return DownloadOperations.downloadFile(url, destinationUri);
107
+ static async downloadFile(
108
+ url: string,
109
+ destinationUri?: string
110
+ ): Promise<FileOperationResult> {
111
+ return downloadFile(url, destinationUri);
85
112
  }
86
113
 
87
114
  // Cache Management
88
115
  static async clearCache(): Promise<boolean> {
89
- return CacheOperations.clearCache();
116
+ return clearCache();
90
117
  }
91
118
 
92
119
  static async getDirectorySize(uri: string): Promise<number> {
93
- return CacheOperations.getDirectorySize(uri);
120
+ return getDirectorySize(uri);
94
121
  }
95
122
 
96
123
  // File Path Generation
97
- static generateFilePath(filename: string, directory: DirectoryType = "documentDirectory"): string {
98
- return FilePathOperations.generateFilePath(filename, directory);
124
+ static generateFilePath(
125
+ filename: string,
126
+ directory: DirectoryType = "documentDirectory"
127
+ ): string {
128
+ return generateFilePath(filename, directory);
99
129
  }
100
130
 
101
131
  // Convenience methods
102
- static async copyToCache(sourceUri: string, filename?: string): Promise<FileOperationResult> {
103
- const destinationUri = FilePathOperations.generateUniqueFilePath(
104
- filename || sourceUri.split("/").pop() || "file",
105
- "cacheDirectory"
132
+ static async copyToCache(
133
+ sourceUri: string,
134
+ filename?: string
135
+ ): Promise<FileOperationResult> {
136
+ const cacheDir = getCacheDirectory();
137
+ const uniqueFilename = FileUtils.generateUniqueFilename(
138
+ filename || sourceUri.split("/").pop() || "file"
106
139
  );
107
- return FileManagement.copyFile(sourceUri, destinationUri);
140
+ const destinationUri = FileUtils.joinPaths(cacheDir, uniqueFilename);
141
+ return copyFile(sourceUri, destinationUri);
108
142
  }
109
143
 
110
- static async copyToDocuments(sourceUri: string, filename?: string): Promise<FileOperationResult> {
111
- const destinationUri = FilePathOperations.generateUniqueFilePath(
112
- filename || sourceUri.split("/").pop() || "file",
113
- "documentDirectory"
144
+ static async copyToDocuments(
145
+ sourceUri: string,
146
+ filename?: string
147
+ ): Promise<FileOperationResult> {
148
+ const docDir = getDocumentDirectory();
149
+ const uniqueFilename = FileUtils.generateUniqueFilename(
150
+ filename || sourceUri.split("/").pop() || "file"
114
151
  );
115
- return FileManagement.copyFile(sourceUri, destinationUri);
152
+ const destinationUri = FileUtils.joinPaths(docDir, uniqueFilename);
153
+ return copyFile(sourceUri, destinationUri);
116
154
  }
117
155
  }