Merge pull request #1227 from dotnet-architecture/fix/1224
Fix npm & docker build warnings #1224
This commit is contained in:
commit
98f5786b2b
@ -5,6 +5,8 @@ EXPOSE 80
|
|||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
@ -5,6 +5,8 @@ EXPOSE 80
|
|||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
@ -5,6 +5,8 @@ EXPOSE 80
|
|||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
@ -6,6 +6,8 @@ EXPOSE 443
|
|||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
@ -5,6 +5,8 @@ EXPOSE 80
|
|||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
@ -5,6 +5,8 @@ EXPOSE 80
|
|||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
@ -5,6 +5,8 @@ EXPOSE 80
|
|||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
@ -5,6 +5,8 @@ EXPOSE 80
|
|||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
@ -5,6 +5,8 @@ EXPOSE 80
|
|||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
@ -5,6 +5,8 @@ EXPOSE 80
|
|||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
@ -5,6 +5,8 @@ EXPOSE 80
|
|||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
@ -5,6 +5,8 @@ EXPOSE 80
|
|||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
@ -5,6 +5,8 @@ EXPOSE 80
|
|||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Response } from '@angular/http';
|
import { HttpResponse } from '@angular/common/http';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
|
|
||||||
import { DataService } from '../shared/services/data.service';
|
import { DataService } from '../shared/services/data.service';
|
||||||
@ -12,7 +12,7 @@ import { ConfigurationService } from '../shared/services/configuration.service';
|
|||||||
import { StorageService } from '../shared/services/storage.service';
|
import { StorageService } from '../shared/services/storage.service';
|
||||||
|
|
||||||
import { Observable, Observer, Subject } from 'rxjs';
|
import { Observable, Observer, Subject } from 'rxjs';
|
||||||
import { map, catchError } from 'rxjs/operators';
|
import { map, catchError, tap } from 'rxjs/operators';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class BasketService {
|
export class BasketService {
|
||||||
@ -61,15 +61,16 @@ export class BasketService {
|
|||||||
|
|
||||||
setBasket(basket): Observable<boolean> {
|
setBasket(basket): Observable<boolean> {
|
||||||
let url = this.purchaseUrl + '/api/v1/basket/';
|
let url = this.purchaseUrl + '/api/v1/basket/';
|
||||||
|
|
||||||
this.basket = basket;
|
this.basket = basket;
|
||||||
return this.service.post(url, basket).pipe(map((response: any) => {
|
|
||||||
return true;
|
return this.service.post(url, basket).pipe<boolean>(tap((response: any) => true));
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setBasketCheckout(basketCheckout): Observable<boolean> {
|
setBasketCheckout(basketCheckout): Observable<boolean> {
|
||||||
let url = this.basketUrl + '/b/api/v1/basket/checkout';
|
let url = this.basketUrl + '/b/api/v1/basket/checkout';
|
||||||
return this.service.postWithId(url, basketCheckout).pipe(map((response: any) => {
|
|
||||||
|
return this.service.postWithId(url, basketCheckout).pipe<boolean>(tap((response: any) => {
|
||||||
this.basketEvents.orderCreated();
|
this.basketEvents.orderCreated();
|
||||||
return true;
|
return true;
|
||||||
}));
|
}));
|
||||||
@ -77,10 +78,12 @@ export class BasketService {
|
|||||||
|
|
||||||
getBasket(): Observable<IBasket> {
|
getBasket(): Observable<IBasket> {
|
||||||
let url = this.basketUrl + '/b/api/v1/basket/' + this.basket.buyerId;
|
let url = this.basketUrl + '/b/api/v1/basket/' + this.basket.buyerId;
|
||||||
return this.service.get(url).pipe(map((response: any) => {
|
|
||||||
|
return this.service.get(url).pipe<IBasket>(tap((response: any) => {
|
||||||
if (response.status === 204) {
|
if (response.status === 204) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Response } from '@angular/http';
|
|
||||||
|
|
||||||
import { DataService } from '../shared/services/data.service';
|
import { DataService } from '../shared/services/data.service';
|
||||||
import { ICampaign } from '../shared/models/campaign.model';
|
import { ICampaign } from '../shared/models/campaign.model';
|
||||||
@ -8,7 +7,7 @@ import { SecurityService } from '../shared/services/security.service';
|
|||||||
import { ConfigurationService } from '../shared/services/configuration.service';
|
import { ConfigurationService } from '../shared/services/configuration.service';
|
||||||
|
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { map } from 'rxjs/operators';
|
import { tap } from 'rxjs/operators';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class CampaignsService {
|
export class CampaignsService {
|
||||||
@ -32,7 +31,7 @@ export class CampaignsService {
|
|||||||
let url = this.marketingUrl + '/m/api/v1/campaigns/user';
|
let url = this.marketingUrl + '/m/api/v1/campaigns/user';
|
||||||
url = url + '?pageIndex=' + pageIndex + '&pageSize=' + pageSize;
|
url = url + '?pageIndex=' + pageIndex + '&pageSize=' + pageSize;
|
||||||
|
|
||||||
return this.service.get(url).pipe(map((response: any) => {
|
return this.service.get(url).pipe<ICampaign>(tap((response: any) => {
|
||||||
return response;
|
return response;
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
@ -40,7 +39,7 @@ export class CampaignsService {
|
|||||||
getCampaign(id: number): Observable<ICampaignItem> {
|
getCampaign(id: number): Observable<ICampaignItem> {
|
||||||
let url = this.marketingUrl + '/m/api/v1/campaigns/' + id;
|
let url = this.marketingUrl + '/m/api/v1/campaigns/' + id;
|
||||||
|
|
||||||
return this.service.get(url).pipe(map((response: any) => {
|
return this.service.get(url).pipe<ICampaignItem>(tap((response: any) => {
|
||||||
return response;
|
return response;
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Response } from '@angular/http';
|
|
||||||
|
|
||||||
import { DataService } from '../shared/services/data.service';
|
import { DataService } from '../shared/services/data.service';
|
||||||
import { ConfigurationService } from '../shared/services/configuration.service';
|
import { ConfigurationService } from '../shared/services/configuration.service';
|
||||||
@ -8,7 +7,7 @@ import { ICatalogBrand } from '../shared/models/catalogBrand.model';
|
|||||||
import { ICatalogType } from '../shared/models/catalogType.model';
|
import { ICatalogType } from '../shared/models/catalogType.model';
|
||||||
|
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { map, catchError } from 'rxjs/operators';
|
import { tap } from 'rxjs/operators';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class CatalogService {
|
export class CatalogService {
|
||||||
@ -36,29 +35,20 @@ export class CatalogService {
|
|||||||
|
|
||||||
url = url + '?pageIndex=' + pageIndex + '&pageSize=' + pageSize;
|
url = url + '?pageIndex=' + pageIndex + '&pageSize=' + pageSize;
|
||||||
|
|
||||||
return this.service.get(url)
|
return this.service.get(url).pipe<ICatalog>(tap((response: any) => {
|
||||||
.pipe(
|
return response;
|
||||||
map((response: any) => {
|
}));
|
||||||
return response;
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getBrands(): Observable<ICatalogBrand[]> {
|
getBrands(): Observable<ICatalogBrand[]> {
|
||||||
return this.service.get(this.brandUrl)
|
return this.service.get(this.brandUrl).pipe<ICatalogBrand[]>(tap((response: any) => {
|
||||||
.pipe(
|
return response;
|
||||||
map((response: any) => {
|
}));
|
||||||
return response;
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getTypes(): Observable<ICatalogType[]> {
|
getTypes(): Observable<ICatalogType[]> {
|
||||||
return this.service.get(this.typesUrl)
|
return this.service.get(this.typesUrl).pipe<ICatalogType[]>(tap((response: any) => {
|
||||||
.pipe(
|
return response;
|
||||||
map((response: any) => {
|
}));
|
||||||
return response;
|
|
||||||
})
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Response } from '@angular/http';
|
|
||||||
|
|
||||||
import { DataService } from '../shared/services/data.service';
|
import { DataService } from '../shared/services/data.service';
|
||||||
import { IOrder } from '../shared/models/order.model';
|
import { IOrder } from '../shared/models/order.model';
|
||||||
@ -10,7 +9,7 @@ import { ConfigurationService } from '../shared/services/configuration.service';
|
|||||||
import { BasketWrapperService } from '../shared/services/basket.wrapper.service';
|
import { BasketWrapperService } from '../shared/services/basket.wrapper.service';
|
||||||
|
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { map } from 'rxjs/operators';
|
import { tap } from 'rxjs/operators';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class OrdersService {
|
export class OrdersService {
|
||||||
@ -27,7 +26,7 @@ export class OrdersService {
|
|||||||
getOrders(): Observable<IOrder[]> {
|
getOrders(): Observable<IOrder[]> {
|
||||||
let url = this.ordersUrl + '/o/api/v1/orders';
|
let url = this.ordersUrl + '/o/api/v1/orders';
|
||||||
|
|
||||||
return this.service.get(url).pipe(map((response: any) => {
|
return this.service.get(url).pipe<IOrder[]>(tap((response: any) => {
|
||||||
return response;
|
return response;
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
@ -35,7 +34,7 @@ export class OrdersService {
|
|||||||
getOrder(id: number): Observable<IOrderDetail> {
|
getOrder(id: number): Observable<IOrderDetail> {
|
||||||
let url = this.ordersUrl + '/o/api/v1/orders/' + id;
|
let url = this.ordersUrl + '/o/api/v1/orders/' + id;
|
||||||
|
|
||||||
return this.service.get(url).pipe(map((response: any) => {
|
return this.service.get(url).pipe<IOrderDetail>(tap((response: any) => {
|
||||||
return response;
|
return response;
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
import { HttpClient, HttpHeaders, HttpErrorResponse } from "@angular/common/http";
|
import { HttpClient, HttpHeaders, HttpErrorResponse } from "@angular/common/http";
|
||||||
|
|
||||||
import { Observable, throwError } from 'rxjs';
|
import { Observable, throwError } from 'rxjs';
|
||||||
import { retry, map, catchError } from 'rxjs/operators';
|
import { catchError, tap } from 'rxjs/operators';
|
||||||
|
|
||||||
import { SecurityService } from './security.service';
|
import { SecurityService } from './security.service';
|
||||||
import { Guid } from '../../../guid';
|
import { Guid } from '../../../guid';
|
||||||
@ -20,7 +20,7 @@ export class DataService {
|
|||||||
return this.http.get(url, options)
|
return this.http.get(url, options)
|
||||||
.pipe(
|
.pipe(
|
||||||
// retry(3), // retry a failed request up to 3 times
|
// retry(3), // retry a failed request up to 3 times
|
||||||
map((res: Response) => {
|
tap((res: Response) => {
|
||||||
return res;
|
return res;
|
||||||
}),
|
}),
|
||||||
catchError(this.handleError)
|
catchError(this.handleError)
|
||||||
@ -45,7 +45,7 @@ export class DataService {
|
|||||||
|
|
||||||
return this.http.post(url, data, options)
|
return this.http.post(url, data, options)
|
||||||
.pipe(
|
.pipe(
|
||||||
map((res: Response) => {
|
tap((res: Response) => {
|
||||||
return res;
|
return res;
|
||||||
}),
|
}),
|
||||||
catchError(this.handleError)
|
catchError(this.handleError)
|
||||||
@ -86,7 +86,7 @@ export class DataService {
|
|||||||
|
|
||||||
return this.http.put(url, data, options)
|
return this.http.put(url, data, options)
|
||||||
.pipe(
|
.pipe(
|
||||||
map((res: Response) => {
|
tap((res: Response) => {
|
||||||
return res;
|
return res;
|
||||||
}),
|
}),
|
||||||
catchError(this.handleError)
|
catchError(this.handleError)
|
||||||
@ -94,12 +94,12 @@ export class DataService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private setHeaders(options: any, needId?: boolean){
|
private setHeaders(options: any, needId?: boolean){
|
||||||
if (needId && this.securityService) {
|
if (needId && this.securityService) {
|
||||||
options["headers"] = new HttpHeaders()
|
options["headers"] = new HttpHeaders()
|
||||||
.append('authorization', 'Bearer ' + this.securityService.GetToken())
|
.append('authorization', 'Bearer ' + this.securityService.GetToken())
|
||||||
.append('x-requestid', Guid.newGuid());
|
.append('x-requestid', Guid.newGuid());
|
||||||
}
|
}
|
||||||
else if (this.securityService) {
|
else if (this.securityService) {
|
||||||
options["headers"] = new HttpHeaders()
|
options["headers"] = new HttpHeaders()
|
||||||
.append('authorization', 'Bearer ' + this.securityService.GetToken());
|
.append('authorization', 'Bearer ' + this.securityService.GetToken());
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Http, Response, Headers } from '@angular/http';
|
|
||||||
|
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
||||||
import { Observable, Subject } from 'rxjs';
|
import { Observable, Subject } from 'rxjs';
|
||||||
import { map } from 'rxjs/operators';
|
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import { ConfigurationService } from './configuration.service';
|
import { ConfigurationService } from './configuration.service';
|
||||||
@ -11,14 +11,14 @@ import { StorageService } from './storage.service';
|
|||||||
export class SecurityService {
|
export class SecurityService {
|
||||||
|
|
||||||
private actionUrl: string;
|
private actionUrl: string;
|
||||||
private headers: Headers;
|
private headers: HttpHeaders;
|
||||||
private storage: StorageService;
|
private storage: StorageService;
|
||||||
private authenticationSource = new Subject<boolean>();
|
private authenticationSource = new Subject<boolean>();
|
||||||
authenticationChallenge$ = this.authenticationSource.asObservable();
|
authenticationChallenge$ = this.authenticationSource.asObservable();
|
||||||
private authorityUrl = '';
|
private authorityUrl = '';
|
||||||
|
|
||||||
constructor(private _http: Http, private _router: Router, private route: ActivatedRoute, private _configurationService: ConfigurationService, private _storageService: StorageService) {
|
constructor(private _http: HttpClient, private _router: Router, private route: ActivatedRoute, private _configurationService: ConfigurationService, private _storageService: StorageService) {
|
||||||
this.headers = new Headers();
|
this.headers = new HttpHeaders();
|
||||||
this.headers.append('Content-Type', 'application/json');
|
this.headers.append('Content-Type', 'application/json');
|
||||||
this.headers.append('Accept', 'application/json');
|
this.headers.append('Accept', 'application/json');
|
||||||
this.storage = _storageService;
|
this.storage = _storageService;
|
||||||
@ -50,6 +50,7 @@ export class SecurityService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public UserData: any;
|
public UserData: any;
|
||||||
|
|
||||||
public SetAuthorizationData(token: any, id_token: any) {
|
public SetAuthorizationData(token: any, id_token: any) {
|
||||||
if (this.storage.retrieve('authorizationData') !== '') {
|
if (this.storage.retrieve('authorizationData') !== '') {
|
||||||
this.storage.store('authorizationData', '');
|
this.storage.store('authorizationData', '');
|
||||||
@ -127,7 +128,6 @@ export class SecurityService {
|
|||||||
id_token = result.id_token;
|
id_token = result.id_token;
|
||||||
|
|
||||||
let dataIdToken: any = this.getDataFromToken(id_token);
|
let dataIdToken: any = this.getDataFromToken(id_token);
|
||||||
console.log(dataIdToken);
|
|
||||||
|
|
||||||
// validate nonce
|
// validate nonce
|
||||||
if (dataIdToken.nonce !== this.storage.retrieve('authNonce')) {
|
if (dataIdToken.nonce !== this.storage.retrieve('authNonce')) {
|
||||||
@ -142,7 +142,6 @@ export class SecurityService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (authResponseIsValid) {
|
if (authResponseIsValid) {
|
||||||
this.SetAuthorizationData(token, id_token);
|
this.SetAuthorizationData(token, id_token);
|
||||||
}
|
}
|
||||||
@ -196,8 +195,10 @@ export class SecurityService {
|
|||||||
|
|
||||||
private getDataFromToken(token: any) {
|
private getDataFromToken(token: any) {
|
||||||
let data = {};
|
let data = {};
|
||||||
|
|
||||||
if (typeof token !== 'undefined') {
|
if (typeof token !== 'undefined') {
|
||||||
let encoded = token.split('.')[1];
|
let encoded = token.split('.')[1];
|
||||||
|
|
||||||
data = JSON.parse(this.urlBase64Decode(encoded));
|
data = JSON.parse(this.urlBase64Decode(encoded));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -219,25 +220,30 @@ export class SecurityService {
|
|||||||
//}
|
//}
|
||||||
|
|
||||||
private getUserData = (): Observable<string[]> => {
|
private getUserData = (): Observable<string[]> => {
|
||||||
this.setHeaders();
|
if (this.authorityUrl === '') {
|
||||||
if (this.authorityUrl === '')
|
|
||||||
this.authorityUrl = this.storage.retrieve('IdentityUrl');
|
this.authorityUrl = this.storage.retrieve('IdentityUrl');
|
||||||
|
}
|
||||||
|
|
||||||
return this._http.get(this.authorityUrl + '/connect/userinfo', {
|
const options = this.setHeaders();
|
||||||
headers: this.headers,
|
|
||||||
body: ''
|
return this._http.get<string[]>(`${this.authorityUrl}/connect/userinfo`, options)
|
||||||
}).pipe(map(res => res.json()));
|
.pipe<string[]>((info: any) => info);
|
||||||
}
|
}
|
||||||
|
|
||||||
private setHeaders() {
|
private setHeaders(): any {
|
||||||
this.headers = new Headers();
|
const httpOptions = {
|
||||||
this.headers.append('Content-Type', 'application/json');
|
headers: new HttpHeaders()
|
||||||
this.headers.append('Accept', 'application/json');
|
};
|
||||||
|
|
||||||
let token = this.GetToken();
|
httpOptions.headers = httpOptions.headers.set('Content-Type', 'application/json');
|
||||||
|
httpOptions.headers = httpOptions.headers.set('Accept', 'application/json');
|
||||||
|
|
||||||
|
const token = this.GetToken();
|
||||||
|
|
||||||
if (token !== '') {
|
if (token !== '') {
|
||||||
this.headers.append('Authorization', 'Bearer ' + token);
|
httpOptions.headers = httpOptions.headers.set('Authorization', `Bearer ${token}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return httpOptions;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -2,7 +2,7 @@ import { NgModule, ModuleWithProviders } from '@angular/core';
|
|||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { FormsModule, ReactiveFormsModule, FormBuilder } from '@angular/forms';
|
import { FormsModule, ReactiveFormsModule, FormBuilder } from '@angular/forms';
|
||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
import { HttpModule, JsonpModule } from '@angular/http';
|
import { HttpClientModule, HttpClientJsonpModule } from '@angular/common/http';
|
||||||
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
||||||
|
|
||||||
// Services
|
// Services
|
||||||
@ -29,10 +29,10 @@ import { UppercasePipe } from './pipes/uppercase.pipe';
|
|||||||
FormsModule,
|
FormsModule,
|
||||||
ReactiveFormsModule,
|
ReactiveFormsModule,
|
||||||
RouterModule,
|
RouterModule,
|
||||||
NgbModule.forRoot(),
|
NgbModule,
|
||||||
// No need to export as these modules don't expose any components/directive etc'
|
// No need to export as these modules don't expose any components/directive etc'
|
||||||
HttpModule,
|
HttpClientModule,
|
||||||
JsonpModule
|
HttpClientJsonpModule
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
Pager,
|
Pager,
|
||||||
|
@ -41,8 +41,8 @@
|
|||||||
|
|
||||||
|
|
||||||
/** Evergreen browsers require these. **/
|
/** Evergreen browsers require these. **/
|
||||||
import 'core-js/es6/reflect';
|
import 'core-js/es/reflect';
|
||||||
import 'core-js/es7/reflect';
|
import 'core-js/proposals/reflect-metadata';
|
||||||
|
|
||||||
|
|
||||||
/** ALL Firefox browsers require the following to support `@angular/animation`. **/
|
/** ALL Firefox browsers require the following to support `@angular/animation`. **/
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
ARG NODE_IMAGE=node:8.11
|
ARG NODE_IMAGE=node:8.16
|
||||||
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
|
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
@ -7,13 +7,14 @@ FROM ${NODE_IMAGE} as node-build
|
|||||||
WORKDIR /web
|
WORKDIR /web
|
||||||
COPY Web/WebSPA/package.json .
|
COPY Web/WebSPA/package.json .
|
||||||
COPY Web/WebSPA/package-lock.json .
|
COPY Web/WebSPA/package-lock.json .
|
||||||
RUN npm install
|
|
||||||
COPY Web/WebSPA .
|
COPY Web/WebSPA .
|
||||||
RUN npm run build:prod
|
RUN npm i npm@latest -g && npm update && npm install && npm run build:prod
|
||||||
|
|
||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
7801
src/Web/WebSPA/package-lock.json
generated
7801
src/Web/WebSPA/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -27,38 +27,39 @@
|
|||||||
"lint:ts": "tslint -c tslint.json Client/**/*.ts"
|
"lint:ts": "tslint -c tslint.json Client/**/*.ts"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@angular/animations": "^7.2.10",
|
"@angular/animations": "8.2.14",
|
||||||
"@angular/common": "^7.2.10",
|
"@angular/common": "8.2.14",
|
||||||
"@angular/compiler": "^7.2.10",
|
"@angular/compiler": "8.2.14",
|
||||||
"@angular/core": "^7.2.10",
|
"@angular/core": "8.2.14",
|
||||||
"@angular/forms": "^7.2.10",
|
"@angular/forms": "8.2.14",
|
||||||
"@angular/http": "^7.2.10",
|
"@angular/platform-browser": "8.2.14",
|
||||||
"@angular/platform-browser": "^7.2.10",
|
"@angular/platform-browser-dynamic": "8.2.14",
|
||||||
"@angular/platform-browser-dynamic": "^7.2.10",
|
"@angular/platform-server": "8.2.14",
|
||||||
"@angular/platform-server": "^7.2.10",
|
"@angular/router": "8.2.14",
|
||||||
"@angular/router": "^7.2.10",
|
|
||||||
"@microsoft/signalr": "3.0.1",
|
"@microsoft/signalr": "3.0.1",
|
||||||
"@ng-bootstrap/ng-bootstrap": "3.3.0",
|
"@ng-bootstrap/ng-bootstrap": "5.2.1",
|
||||||
"bootstrap": "4.3.1",
|
"bootstrap": "4.4.1",
|
||||||
"core-js": "^2.5.0",
|
"core-js": "^3.0.0",
|
||||||
"file-loader": "2.0.0",
|
"file-loader": "2.0.0",
|
||||||
"font-awesome": "4.7.0",
|
"font-awesome": "4.7.0",
|
||||||
"isomorphic-fetch": "2.2.1",
|
"isomorphic-fetch": "2.2.1",
|
||||||
"jquery": "3.4.1",
|
"jquery": "3.4.1",
|
||||||
"ngx-toastr": "10.1.0",
|
"ngx-toastr": "10.1.0",
|
||||||
"normalize.css": "8.0.0",
|
"normalize.css": "8.0.0",
|
||||||
"popper.js": "^1.14.4",
|
"@popperjs/core": "2.0.0",
|
||||||
"preboot": "6.0.0-beta.5",
|
"rxjs": "~6.4.0",
|
||||||
"rxjs": "~6.3.3",
|
"rxjs-compat": "~6.4.0",
|
||||||
"rxjs-compat": "~6.3.3",
|
|
||||||
"webpack-dev-server": "3.1.14",
|
"webpack-dev-server": "3.1.14",
|
||||||
"zone.js": "^0.8.29"
|
"zone.js": "~0.9.1",
|
||||||
|
"acorn-dynamic-import": "4.0.0",
|
||||||
|
"acorn": "^6.0.0",
|
||||||
|
"popper.js": "1.16.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular-devkit/build-angular": "^0.13.6",
|
"@angular-devkit/build-angular": "0.803.23",
|
||||||
"@angular/cli": "^7.3.6",
|
"@angular/cli": "8.3.23",
|
||||||
"@angular/compiler-cli": "^7.2.10",
|
"@angular/compiler-cli": "8.2.14",
|
||||||
"@angular/language-service": "^7.2.10",
|
"@angular/language-service": "8.2.14",
|
||||||
"@types/core-js": "2.5.0",
|
"@types/core-js": "2.5.0",
|
||||||
"@types/hammerjs": "2.0.35",
|
"@types/hammerjs": "2.0.35",
|
||||||
"@types/jasmine": "^3.3.12",
|
"@types/jasmine": "^3.3.12",
|
||||||
@ -66,8 +67,8 @@
|
|||||||
"@types/protractor": "4.0.0",
|
"@types/protractor": "4.0.0",
|
||||||
"@types/selenium-webdriver": "3.0.10",
|
"@types/selenium-webdriver": "3.0.10",
|
||||||
"codelyzer": "^5.0.0-beta.1",
|
"codelyzer": "^5.0.0-beta.1",
|
||||||
"handlebars": "^4.1.2",
|
|
||||||
"eslint": "4.18.2",
|
"eslint": "4.18.2",
|
||||||
|
"handlebars": "^4.7.2",
|
||||||
"jasmine-core": "^3.3.0",
|
"jasmine-core": "^3.3.0",
|
||||||
"jasmine-spec-reporter": "^4.2.1",
|
"jasmine-spec-reporter": "^4.2.1",
|
||||||
"karma": "^4.0.1",
|
"karma": "^4.0.1",
|
||||||
@ -85,7 +86,7 @@
|
|||||||
"ts-node": "~7.0.1",
|
"ts-node": "~7.0.1",
|
||||||
"tslint": "^5.14.0",
|
"tslint": "^5.14.0",
|
||||||
"typedoc": "^0.15.0",
|
"typedoc": "^0.15.0",
|
||||||
"typescript": "^3.2.4",
|
"typescript": "3.4.5",
|
||||||
"url-loader": "1.1.1",
|
"url-loader": "1.1.1",
|
||||||
"webpack": "^4.29.6"
|
"webpack": "^4.29.6"
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,8 @@ EXPOSE 80
|
|||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
@ -6,6 +6,8 @@ EXPOSE 443
|
|||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
# to take advantage of Docker's build cache, to speed up local container builds
|
||||||
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln"
|
||||||
|
|
||||||
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj"
|
||||||
|
@ -161,7 +161,7 @@ services:
|
|||||||
context: .
|
context: .
|
||||||
dockerfile: Web/WebSPA/Dockerfile
|
dockerfile: Web/WebSPA/Dockerfile
|
||||||
args:
|
args:
|
||||||
NODE_IMAGE: ${NODE_IMAGE:-node:8.11}
|
NODE_IMAGE: ${NODE_IMAGE:-node:10.13}
|
||||||
# depends_on:
|
# depends_on:
|
||||||
# - webshoppingagg
|
# - webshoppingagg
|
||||||
# - webshoppingapigw
|
# - webshoppingapigw
|
||||||
|
3
src/package-lock.json
generated
Normal file
3
src/package-lock.json
generated
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"lockfileVersion": 1
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user