sfus-lib-cli
v1.2.0
Published
> Use rabbitmq to sync your files
Readme
socket-file-sync-lib-cli
Use rabbitmq to sync your files

Api
UploadManager
This class is used for uploading files.
Example usage:
import { UploadManager } from 'sfus-lib-cli';
const upload: UploadManager = new UploadManager();
upload.addFile('myfile.exmaple');
upload.start().then((result: boolean) => {
// returned when all files are uploaded
});Methods:
addFile(file: string)
const upload: UploadManager = new UploadManager();
upload.addFile('myfile.exmaple');Adds a single file to the list of files that should be uploaded.
addFiles(file: string[])
const upload: UploadManager = new UploadManager();
upload.addFiles(['myfile.example', 'mySecondFile.example']);Adds all files from the array to the list of files that should be uploaded.
addFolder(file: string)
const upload: UploadManager = new UploadManager();
upload.addFolder('myFolder');Adds all files from the folder. The files are added recursive.
addFolders(file: string[])
const upload: UploadManager = new UploadManager();
upload.addFolders(['myfolder', 'mySecondFolder']);Adds all files from the folders. All files in the folders are added recursive.
getFiles()
const upload: UploadManager = new UploadManager();
const files: String[] = upload.getFiles();Gets a array containing all added files
Events
Name | Description | Payload
--------------- | ---------------------------------------------------------------------------------------- | -------------------------------------------------------
file | Emitted when a new file is added to the backlog of files | Path of the file
in_progress | Emitted when a file moved from backlog to the actual uploading queue | File information object, example comes after this table
finished | Emitted when all files from the backlog are uploaded | None
file_finished | Emitted when a file is finished uploading | File information object, example comes after this table
chunk | Emitted when a chunk of a file was transmitted | File information object, example comes after this table
{
"chunk": "current chunk",
"chunkCount": "pre calculated count of chunks",
"fileId": "id of the file, given by the database",
"path": "path of the file",
"uploadSize": "base64 size of the file",
"status": "finished | preparing | resending | uploading",
"originalSize": "original file size"
}Example
import { UploadManager } from 'sfus-lib-cli';
const upload: UploadManager = new UploadManager();
upload.on('file', (file: string) => {
// name and path of the added file
});
upload.on('in_progress', (file: FileInformation) => {
// file is uploaded to server
});
upload.on('finished', () => {
// everything is finished and nothing todo
});
upload.on('file_finished', (file: FileInformation) => {
// a file is finished with uploading
});
upload.on('chunk', (file: FileInformation) => {
// chunk of a file is successful uploaded
});
upload.addFile('myfile.exmaple');
upload.start().then((result: boolean) => {
// returned when all files are uploaded
});Tests
To run the tests simply run npm install and then npm test.
