ng-rest-http
Version:
http client module for Angular [ tested for angular6 ]
35 lines • 5.88 kB
JavaScript
import { Injectable } from '@angular/core';
import { HttpParams, HttpRequest } from '@angular/common/http';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common/http";
export class UploadService {
constructor(http) {
this.http = http;
}
// file from event.target.files[0]
uploadFile(url, file) {
const formData = new FormData();
formData.append('upload', file);
const params = new HttpParams();
const options = {
params: params,
reportProgress: true,
};
/*
const options = {
headers: new HttpHeaders().set('Authorization', this.loopBackAuth.accessTokenId),
params: params,
reportProgress: true,
withCredentials: true,
}
*/
const req = new HttpRequest('POST', url, formData, options);
return this.http.request(req); // return event
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: UploadService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: UploadService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: UploadService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1yZXN0LWh0dHAvc3JjL2xpYi91cGxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsV0FBVyxFQUFhLE1BQU0sc0JBQXNCLENBQUM7OztBQUl0RixNQUFNLE9BQU8sYUFBYTtJQUV4QixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBQUksQ0FBQztJQUV6QyxrQ0FBa0M7SUFDbEMsVUFBVSxDQUFDLEdBQVcsRUFBRSxJQUFVO1FBRWhDLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFaEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUVoQyxNQUFNLE9BQU8sR0FBRztZQUNkLE1BQU0sRUFBRSxNQUFNO1lBQ2QsY0FBYyxFQUFFLElBQUk7U0FDckIsQ0FBQztRQUVGOzs7Ozs7O1VBT0U7UUFFRixNQUFNLEdBQUcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsZUFBZTtJQUNsRCxDQUFDOzhHQTVCWSxhQUFhO2tIQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMsIEh0dHBSZXF1ZXN0LCBIdHRwRXZlbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFVwbG9hZFNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHsgfVxyXG5cclxuICAvLyBmaWxlIGZyb20gZXZlbnQudGFyZ2V0LmZpbGVzWzBdXHJcbiAgdXBsb2FkRmlsZSh1cmw6IHN0cmluZywgZmlsZTogRmlsZSk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuXHJcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCd1cGxvYWQnLCBmaWxlKTtcclxuXHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgIHBhcmFtczogcGFyYW1zLFxyXG4gICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgIH07XHJcblxyXG4gICAgLypcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5sb29wQmFja0F1dGguYWNjZXNzVG9rZW5JZCksXHJcbiAgICAgICAgcGFyYW1zOiBwYXJhbXMsXHJcbiAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxyXG4gICAgfVxyXG4gICAgKi9cclxuXHJcbiAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BPU1QnLCB1cmwsIGZvcm1EYXRhLCBvcHRpb25zKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucmVxdWVzdChyZXEpOyAvLyByZXR1cm4gZXZlbnRcclxufVxyXG59XHJcblxyXG4vKiBpbiB5b3VyIGNvbXBvbmVudFxyXG4vLyBBdCB0aGUgZHJhZyBkcm9wIGFyZWFcclxuICAvLyAoZHJvcCk9XCJvbkRyb3BGaWxlKCRldmVudClcIlxyXG5vbkRyb3BGaWxlKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGUoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcclxufVxyXG5cclxuLy8gQXQgdGhlIGRyYWcgZHJvcCBhcmVhXHJcbi8vIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyRmlsZSgkZXZlbnQpXCJcclxub25EcmFnT3ZlckZpbGUoZXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxufVxyXG5cclxuLy8gQXQgdGhlIGZpbGUgaW5wdXQgZWxlbWVudFxyXG4vLyA8aW5wdXQgdHlwZT1cImZpbGVcIiAoY2hhbmdlKT1cInNlbGVjdEZpbGUoJGV2ZW50KVwiIG5hbWU9XCJmaWxlXCIgLz5cclxuc2VsZWN0RmlsZShldmVudCkge1xyXG4gICAgdGhpcy51cGxvYWRGaWxlKGV2ZW50LnRhcmdldC5maWxlcyk7XHJcbn1cclxuXHJcbnVwbG9hZEZpbGUoZmlsZXM6IEZpbGVMaXN0KSB7XHJcbiAgICBpZiAoZmlsZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk5vIGZpbGUgc2VsZWN0ZWQhXCIpO1xyXG4gICAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgbGV0IGZpbGU6IEZpbGUgPSBmaWxlc1swXTtcclxuXHJcbiAgICB0aGlzLnVwbG9hZC51cGxvYWRGaWxlKHRoaXMuYXBwQ2ZnLmJhc2VVcmwgKyBcIi9hcGkvZmxhc2gvdXBsb2FkXCIsIGZpbGUpXHJcbiAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGVyY2VudERvbmUgPSBNYXRoLnJvdW5kKDEwMCAqIGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsKTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBGaWxlIGlzICR7cGVyY2VudERvbmV9JSBsb2FkZWQuYCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdGaWxlIGlzIGNvbXBsZXRlbHkgbG9hZGVkIScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiVXBsb2FkIEVycm9yOlwiLCBlcnIpO1xyXG4gICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJVcGxvYWQgZG9uZVwiKTtcclxuICAgICAgICB9XHJcbiAgICApXHJcbn1cclxuICAqL1xyXG4iXX0=