fctrlx-angular-file-reader
Version:
Angular library that helps convert file (from input[type=file]) to base64/arrayBuffer/text using FileReader API.
128 lines • 7.92 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Observable } from 'rxjs';
var Base = /** @class */ (function () {
function Base(returnType) {
this.TYPE_PROMISE = 'PROMISE';
this.TYPE_SUBSCRIBER = 'OBSERVABLE';
this.returnType = returnType;
}
/**
* @param {?} file
* @return {?}
*/
Base.prototype.toBase64 = /**
* @param {?} file
* @return {?}
*/
function (file) {
/** @type {?} */
var reader = new FileReader();
reader.readAsDataURL(file);
return this.response(reader);
};
/**
* @param {?} file
* @return {?}
*/
Base.prototype.toText = /**
* @param {?} file
* @return {?}
*/
function (file) {
/** @type {?} */
var reader = new FileReader();
reader.readAsText(file);
return this.response(reader);
};
/**
* @param {?} file
* @return {?}
*/
Base.prototype.toArrBuf = /**
* @param {?} file
* @return {?}
*/
function (file) {
/** @type {?} */
var reader = new FileReader();
reader.readAsArrayBuffer(file);
return this.response(reader);
};
/**
* @param {?} reader
* @return {?}
*/
Base.prototype.response = /**
* @param {?} reader
* @return {?}
*/
function (reader) {
/** @type {?} */
var response;
if (this.returnType === this.TYPE_SUBSCRIBER) {
response = Observable.create((/**
* @param {?} observer
* @return {?}
*/
function (observer) {
reader.onloadend = (/**
* @return {?}
*/
function () {
observer.next((/** @type {?} */ (reader.result)));
observer.complete();
});
reader.onerror = (/**
* @param {?} error
* @return {?}
*/
function (error) {
observer.next((/** @type {?} */ (error)));
observer.complete();
});
}));
}
else if (this.returnType === this.TYPE_PROMISE) {
response = new Promise((/**
* @param {?} resolve
* @param {?} reject
* @return {?}
*/
function (resolve, reject) {
reader.onloadend = (/**
* @return {?}
*/
function () { return resolve((/** @type {?} */ (reader.result))); });
reader.onerror = (/**
* @param {?} error
* @return {?}
*/
function (error) { return reject((/** @type {?} */ (error))); });
}));
}
return response;
};
return Base;
}());
export { Base };
if (false) {
/**
* @type {?}
* @private
*/
Base.prototype.TYPE_PROMISE;
/**
* @type {?}
* @private
*/
Base.prototype.TYPE_SUBSCRIBER;
/**
* @type {?}
* @private
*/
Base.prototype.returnType;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2ZjdHJseC1hbmd1bGFyLWZpbGUtcmVhZGVyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL0Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxNQUFNLENBQUM7QUFHNUM7SUFNRSxjQUFZLFVBQWtCO1FBSmIsaUJBQVksR0FBVyxTQUFTLENBQUM7UUFDakMsb0JBQWUsR0FBVyxZQUFZLENBQUM7UUFJdEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQzs7Ozs7SUFFRCx1QkFBUTs7OztJQUFSLFVBQVMsSUFBVTs7WUFDWCxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUU7UUFDL0IsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7Ozs7SUFFRCxxQkFBTTs7OztJQUFOLFVBQU8sSUFBVTs7WUFDVCxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUU7UUFDL0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7Ozs7SUFFRCx1QkFBUTs7OztJQUFSLFVBQVMsSUFBVTs7WUFDWCxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUU7UUFDL0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDOzs7OztJQUVELHVCQUFROzs7O0lBQVIsVUFBUyxNQUFrQjs7WUFDckIsUUFBUTtRQUVaLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQzVDLFFBQVEsR0FBRyxVQUFVLENBQUMsTUFBTTs7OztZQUFDLFVBQUMsUUFBMEI7Z0JBQ3RELE1BQU0sQ0FBQyxTQUFTOzs7Z0JBQUc7b0JBQ2pCLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQVEsTUFBTSxDQUFDLE1BQU0sRUFBQSxDQUFDLENBQUM7b0JBQ3JDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdEIsQ0FBQyxDQUFBLENBQUM7Z0JBRUYsTUFBTSxDQUFDLE9BQU87Ozs7Z0JBQUcsVUFBQyxLQUFLO29CQUNyQixRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFLLEtBQUssRUFBQSxDQUFDLENBQUM7b0JBQzFCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdEIsQ0FBQyxDQUFBLENBQUM7WUFDSixDQUFDLEVBQUMsQ0FBQztTQUNKO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDaEQsUUFBUSxHQUFHLElBQUksT0FBTzs7Ozs7WUFBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO2dCQUNyQyxNQUFNLENBQUMsU0FBUzs7O2dCQUFHLGNBQU0sT0FBQSxPQUFPLENBQUMsbUJBQVEsTUFBTSxDQUFDLE1BQU0sRUFBQSxDQUFDLEVBQTlCLENBQThCLENBQUEsQ0FBQztnQkFDeEQsTUFBTSxDQUFDLE9BQU87Ozs7Z0JBQUcsVUFBQSxLQUFLLElBQUksT0FBQSxNQUFNLENBQUMsbUJBQUssS0FBSyxFQUFBLENBQUMsRUFBbEIsQ0FBa0IsQ0FBQSxDQUFDO1lBQy9DLENBQUMsRUFBQyxDQUFDO1NBQ0o7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBQ0gsV0FBQztBQUFELENBQUMsQUFwREQsSUFvREM7Ozs7Ozs7SUFsREMsNEJBQWtEOzs7OztJQUNsRCwrQkFBd0Q7Ozs7O0lBQ3hELDBCQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIE9ic2VydmVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWxlUmVhZGVySW50ZXJmYWNlIH0gZnJvbSAnLi9maWxlLXJlYWRlci5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgQmFzZSBpbXBsZW1lbnRzIEZpbGVSZWFkZXJJbnRlcmZhY2VcbntcbiAgcHJpdmF0ZSByZWFkb25seSBUWVBFX1BST01JU0U6IHN0cmluZyA9ICdQUk9NSVNFJztcbiAgcHJpdmF0ZSByZWFkb25seSBUWVBFX1NVQlNDUklCRVI6IHN0cmluZyA9ICdPQlNFUlZBQkxFJztcbiAgcHJpdmF0ZSByZWFkb25seSByZXR1cm5UeXBlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocmV0dXJuVHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZXR1cm5UeXBlID0gcmV0dXJuVHlwZTtcbiAgfVxuXG4gIHRvQmFzZTY0KGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPHN0cmluZz4gfCBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgcmV0dXJuIHRoaXMucmVzcG9uc2UocmVhZGVyKTtcbiAgfVxuXG4gIHRvVGV4dChmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHwgUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUpO1xuICAgIHJldHVybiB0aGlzLnJlc3BvbnNlKHJlYWRlcik7XG4gIH1cblxuICB0b0FyckJ1ZihmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHwgUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcbiAgICByZXR1cm4gdGhpcy5yZXNwb25zZShyZWFkZXIpO1xuICB9XG5cbiAgcmVzcG9uc2UocmVhZGVyOiBGaWxlUmVhZGVyKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHwgUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBsZXQgcmVzcG9uc2U7XG5cbiAgICBpZiAodGhpcy5yZXR1cm5UeXBlID09PSB0aGlzLlRZUEVfU1VCU0NSSUJFUikge1xuICAgICAgcmVzcG9uc2UgPSBPYnNlcnZhYmxlLmNyZWF0ZSgob2JzZXJ2ZXI6IE9ic2VydmVyPHN0cmluZz4pID0+IHtcbiAgICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9ICgpID0+IHtcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KDxzdHJpbmc+cmVhZGVyLnJlc3VsdCk7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfTtcblxuICAgICAgICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4ge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQoPGFueT5lcnJvcik7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZXR1cm5UeXBlID09PSB0aGlzLlRZUEVfUFJPTUlTRSkge1xuICAgICAgcmVzcG9uc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiByZXNvbHZlKDxzdHJpbmc+cmVhZGVyLnJlc3VsdCk7XG4gICAgICAgIHJlYWRlci5vbmVycm9yID0gZXJyb3IgPT4gcmVqZWN0KDxhbnk+ZXJyb3IpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG59XG4iXX0=