UNPKG

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
/** * @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=