feat: make file operations browser-compatible #20
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
π Browser Compatibility Update
This PR makes the TypeScript client fully browser-compatible by removing Node.js dependencies and updating file operations to work with browser-native data types.
β¨ Key Changes
File Upload API
fileUpload(sourcePath: string, destinationPath: string)fileUpload(content: string | Blob | File, destinationPath: string, fileName?: string)File Download API
fileDownload(sourcePath: string, destinationPath: string)(writes to disk)fileDownload(sourcePath: string): Promise<FileDownloadResult>(returns content)New Convenience Methods
uploadText(text, destinationPath, fileName?)- Upload text contentuploadFileObject(file, destinationPath)- Upload File objects from file inputsdownloadAsText(sourcePath)- Download content as stringdownloadAsBlob(sourcePath)- Download content as BlobdownloadAndSave(sourcePath, fileName?)- Trigger browser download dialogπ§ Technical Details
fsandpathmodule dependenciesBlob,File, andFormDatasupportFileDownloadResultinterfaceprocess.envandrequire.mainusageBROWSER_COMPATIBILITY.mdπ§ͺ Testing
π Documentation
π Backward Compatibility
The changes are backward compatible - the client still works in Node.js environments. Users can provide appropriate data types (strings, Buffers converted to Blobs, etc.) for Node.js usage.
π― Use Cases
Perfect for:
Example Usage:
@rbren can click here to continue refining the PR