README
- client to simplify upload process for AppCenter needs using Microsoft file upload service FileUploadClient
Build
npm install
npm run build
Scripts
There are a bunch of scripts in package.json file. Here's what they are and what they do:
Script command | What it does |
---|---|
npm run build |
Compiles the typescript into javascript, creates dist directory. |
npm run clean |
Cleans up any compilation output. |
npm run prepublish |
Clean dist folder, compiles ts and moves js to dist folder, run tslint task. |
There will be more over time.
JavaScript API Reference
After importing, file-upload-client
module could be used by calling upload
method, accepting the following object:
interface IFileUploadClientSettings {
assetId: string;
assetDomain: string;
assetToken: string;
filePath: string;
useLogging?: boolean;
onProgressChanged?(progress: IProgress): void;
onMessage?(errorMessage: string, MessageLevel: MessageLevel): void;
onStateChanged?(status: FileUploadServiceState): void;
}
NOTE: assetId/assetDomain/assetToken should be provided by File Upload Service.
The upload events adds useful hooks to track upload process.
File Upload client public methods avaliable:
- [upload]: Uploads file by providing relevant information fetched from Upload Service:
const fileUploadData = {
assetId: "",
assetToken: "",
assetUploadDomian: ""
};
Example Usage:
new FileUploadClient().upload(<IFileUploadClientSettings>{
onMessage: (uploadMessage: string, messageLevel: MessageLevel) => {
console.log(`Upload message: ${uploadMessage}`);
},
onProgressChanged: (progressData: IProgress) => {
console.log(`Upload progress: ${progressData.percentCompleted}`);
},
assetId: fileUploadData.assetId,
assetDomain: fileUploadData.assetUploadDomian,
assetToken: fileUploadData.assetToken,
filePath: FILE_PATH
}).then((uploadResult: IUploadResults) => {
console.log("Wow, upload completed, use this URL to download file: ", uploadResult.downloadUrl);
}).catch((error: FileUploadError) => {
console.log('An error occured: ', error.message);
});
- [cancel]: Cancel current upload:
Example Usage:
const uploadClient = new FileUploadClient({ ... });
uploadClient.upload( { ... });
uploadClient.cancel();
- [isUploadInProgress]: Check if upload is already in progress:
Example Usage:
const uploadClient = new FileUploadClient({ ... });
const isInProgress = uploadClient.isUploadInProgress();