From 23037521d437225bb0839a0c387b2a707a5ffe37 Mon Sep 17 00:00:00 2001 From: Sumit Mandal Date: Wed, 11 Dec 2024 03:24:03 +0530 Subject: [PATCH] Add project files. --- .dockerignore | 30 +++++ .../AwesomeMicroservices.Server.csproj | 29 +++++ .../AwesomeMicroservices.Server.http | 6 + .../AwesomeMicroservices.Server/CHANGELOG.md | 9 ++ .../Controllers/WeatherForecastController.cs | 33 ++++++ .../AwesomeMicroservices.Server/Dockerfile | 38 ++++++ .../AwesomeMicroservices.Server/Program.cs | 41 +++++++ .../Properties/launchSettings.json | 55 +++++++++ .../WeatherForecast.cs | 13 ++ .../appsettings.Development.json | 8 ++ .../appsettings.json | 9 ++ .../awesomemicroservices.client/.editorconfig | 17 +++ .../awesomemicroservices.client/.gitignore | 42 +++++++ .../.vscode/extensions.json | 4 + .../.vscode/launch.json | 19 +++ .../.vscode/tasks.json | 42 +++++++ .../awesomemicroservices.client/CHANGELOG.md | 24 ++++ .../awesomemicroservices.client/README.md | 27 +++++ .../awesomemicroservices.client/angular.json | 111 ++++++++++++++++++ .../aspnetcore-https.js | 37 ++++++ .../awesomemicroservices.client.esproj | 10 ++ .../awesomemicroservices.client/karma.conf.js | 44 +++++++ .../awesomemicroservices.client/package.json | 43 +++++++ .../public/favicon.ico | Bin 0 -> 15086 bytes .../src/app/app-routing.module.ts | 10 ++ .../src/app/app.component.css | 14 +++ .../src/app/app.component.html | 24 ++++ .../src/app/app.component.spec.ts | 45 +++++++ .../src/app/app.component.ts | 37 ++++++ .../src/app/app.module.ts | 19 +++ .../src/index.html | 13 ++ .../awesomemicroservices.client/src/main.ts | 8 ++ .../src/proxy.conf.js | 16 +++ .../src/styles.css | 1 + .../tsconfig.app.json | 15 +++ .../awesomemicroservices.client/tsconfig.json | 33 ++++++ .../tsconfig.spec.json | 15 +++ AwesomeMicroservicesSolution.sln | 30 +++++ README.md | 1 + 39 files changed, 972 insertions(+) create mode 100644 .dockerignore create mode 100644 AwesomeMicroservices/AwesomeMicroservices.Server/AwesomeMicroservices.Server.csproj create mode 100644 AwesomeMicroservices/AwesomeMicroservices.Server/AwesomeMicroservices.Server.http create mode 100644 AwesomeMicroservices/AwesomeMicroservices.Server/CHANGELOG.md create mode 100644 AwesomeMicroservices/AwesomeMicroservices.Server/Controllers/WeatherForecastController.cs create mode 100644 AwesomeMicroservices/AwesomeMicroservices.Server/Dockerfile create mode 100644 AwesomeMicroservices/AwesomeMicroservices.Server/Program.cs create mode 100644 AwesomeMicroservices/AwesomeMicroservices.Server/Properties/launchSettings.json create mode 100644 AwesomeMicroservices/AwesomeMicroservices.Server/WeatherForecast.cs create mode 100644 AwesomeMicroservices/AwesomeMicroservices.Server/appsettings.Development.json create mode 100644 AwesomeMicroservices/AwesomeMicroservices.Server/appsettings.json create mode 100644 AwesomeMicroservices/awesomemicroservices.client/.editorconfig create mode 100644 AwesomeMicroservices/awesomemicroservices.client/.gitignore create mode 100644 AwesomeMicroservices/awesomemicroservices.client/.vscode/extensions.json create mode 100644 AwesomeMicroservices/awesomemicroservices.client/.vscode/launch.json create mode 100644 AwesomeMicroservices/awesomemicroservices.client/.vscode/tasks.json create mode 100644 AwesomeMicroservices/awesomemicroservices.client/CHANGELOG.md create mode 100644 AwesomeMicroservices/awesomemicroservices.client/README.md create mode 100644 AwesomeMicroservices/awesomemicroservices.client/angular.json create mode 100644 AwesomeMicroservices/awesomemicroservices.client/aspnetcore-https.js create mode 100644 AwesomeMicroservices/awesomemicroservices.client/awesomemicroservices.client.esproj create mode 100644 AwesomeMicroservices/awesomemicroservices.client/karma.conf.js create mode 100644 AwesomeMicroservices/awesomemicroservices.client/package.json create mode 100644 AwesomeMicroservices/awesomemicroservices.client/public/favicon.ico create mode 100644 AwesomeMicroservices/awesomemicroservices.client/src/app/app-routing.module.ts create mode 100644 AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.css create mode 100644 AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.html create mode 100644 AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.spec.ts create mode 100644 AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.ts create mode 100644 AwesomeMicroservices/awesomemicroservices.client/src/app/app.module.ts create mode 100644 AwesomeMicroservices/awesomemicroservices.client/src/index.html create mode 100644 AwesomeMicroservices/awesomemicroservices.client/src/main.ts create mode 100644 AwesomeMicroservices/awesomemicroservices.client/src/proxy.conf.js create mode 100644 AwesomeMicroservices/awesomemicroservices.client/src/styles.css create mode 100644 AwesomeMicroservices/awesomemicroservices.client/tsconfig.app.json create mode 100644 AwesomeMicroservices/awesomemicroservices.client/tsconfig.json create mode 100644 AwesomeMicroservices/awesomemicroservices.client/tsconfig.spec.json create mode 100644 AwesomeMicroservicesSolution.sln create mode 100644 README.md diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..fe1152b --- /dev/null +++ b/.dockerignore @@ -0,0 +1,30 @@ +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md +!**/.gitignore +!.git/HEAD +!.git/config +!.git/packed-refs +!.git/refs/heads/** \ No newline at end of file diff --git a/AwesomeMicroservices/AwesomeMicroservices.Server/AwesomeMicroservices.Server.csproj b/AwesomeMicroservices/AwesomeMicroservices.Server/AwesomeMicroservices.Server.csproj new file mode 100644 index 0000000..87b7c60 --- /dev/null +++ b/AwesomeMicroservices/AwesomeMicroservices.Server/AwesomeMicroservices.Server.csproj @@ -0,0 +1,29 @@ + + + + net8.0 + enable + enable + 25c82ccd-f64b-45a0-98a0-b0393dd84477 + Linux + ..\.. + ..\awesomemicroservices.client + npm start + https://localhost:56902 + + + + + 8.*-* + + + + + + + + false + + + + diff --git a/AwesomeMicroservices/AwesomeMicroservices.Server/AwesomeMicroservices.Server.http b/AwesomeMicroservices/AwesomeMicroservices.Server/AwesomeMicroservices.Server.http new file mode 100644 index 0000000..e49e4a9 --- /dev/null +++ b/AwesomeMicroservices/AwesomeMicroservices.Server/AwesomeMicroservices.Server.http @@ -0,0 +1,6 @@ +@AwesomeMicroservices.Server_HostAddress = http://localhost:5188 + +GET {{AwesomeMicroservices.Server_HostAddress}}/weatherforecast/ +Accept: application/json + +### diff --git a/AwesomeMicroservices/AwesomeMicroservices.Server/CHANGELOG.md b/AwesomeMicroservices/AwesomeMicroservices.Server/CHANGELOG.md new file mode 100644 index 0000000..5d45a99 --- /dev/null +++ b/AwesomeMicroservices/AwesomeMicroservices.Server/CHANGELOG.md @@ -0,0 +1,9 @@ +This file explains how Visual Studio created the project. + +The following steps were used to generate this project: +- Create new ASP\.NET Core Web API project. +- Update `launchSettings.json` to register the SPA proxy as a startup assembly. +- Update project file to add a reference to the frontend project and set SPA properties. +- Add `dockerfile` to set up docker build. +- Add project to the startup projects list. +- Write this file. diff --git a/AwesomeMicroservices/AwesomeMicroservices.Server/Controllers/WeatherForecastController.cs b/AwesomeMicroservices/AwesomeMicroservices.Server/Controllers/WeatherForecastController.cs new file mode 100644 index 0000000..106cb3e --- /dev/null +++ b/AwesomeMicroservices/AwesomeMicroservices.Server/Controllers/WeatherForecastController.cs @@ -0,0 +1,33 @@ +using Microsoft.AspNetCore.Mvc; + +namespace AwesomeMicroservices.Server.Controllers +{ + [ApiController] + [Route("[controller]")] + public class WeatherForecastController : ControllerBase + { + private static readonly string[] Summaries = new[] + { + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" + }; + + private readonly ILogger _logger; + + public WeatherForecastController(ILogger logger) + { + _logger = logger; + } + + [HttpGet(Name = "GetWeatherForecast")] + public IEnumerable Get() + { + return Enumerable.Range(1, 5).Select(index => new WeatherForecast + { + Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)), + TemperatureC = Random.Shared.Next(-20, 55), + Summary = Summaries[Random.Shared.Next(Summaries.Length)] + }) + .ToArray(); + } + } +} diff --git a/AwesomeMicroservices/AwesomeMicroservices.Server/Dockerfile b/AwesomeMicroservices/AwesomeMicroservices.Server/Dockerfile new file mode 100644 index 0000000..8884f12 --- /dev/null +++ b/AwesomeMicroservices/AwesomeMicroservices.Server/Dockerfile @@ -0,0 +1,38 @@ +# See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. + +# This stage is used when running from VS in fast mode (Default for Debug configuration) +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +USER $APP_UID +WORKDIR /app +EXPOSE 8080 +EXPOSE 8081 + + +# This stage is used to build the service project +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS with-node +RUN apt-get update +RUN apt-get install curl +RUN curl -sL https://deb.nodesource.com/setup_20.x | bash +RUN apt-get -y install nodejs +RUN npm install -g @angular/cli + +FROM with-node AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["AwesomeMicroservices/AwesomeMicroservices.Server/AwesomeMicroservices.Server.csproj", "AwesomeMicroservices/AwesomeMicroservices.Server/"] +COPY ["awesomemicroservices.client/awesomemicroservices.client.esproj", "awesomemicroservices.client/"] +RUN dotnet restore "./AwesomeMicroservices/AwesomeMicroservices.Server/AwesomeMicroservices.Server.csproj" +COPY . . +WORKDIR "/src/AwesomeMicroservices/AwesomeMicroservices.Server" +RUN dotnet build "./AwesomeMicroservices.Server.csproj" -c $BUILD_CONFIGURATION -o /app/build + +# This stage is used to publish the service project to be copied to the final stage +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./AwesomeMicroservices.Server.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration) +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "AwesomeMicroservices.Server.dll"] diff --git a/AwesomeMicroservices/AwesomeMicroservices.Server/Program.cs b/AwesomeMicroservices/AwesomeMicroservices.Server/Program.cs new file mode 100644 index 0000000..b8db077 --- /dev/null +++ b/AwesomeMicroservices/AwesomeMicroservices.Server/Program.cs @@ -0,0 +1,41 @@ + +namespace AwesomeMicroservices.Server +{ + public class Program + { + public static void Main(string[] args) + { + var builder = WebApplication.CreateBuilder(args); + + // Add services to the container. + + builder.Services.AddControllers(); + // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle + builder.Services.AddEndpointsApiExplorer(); + builder.Services.AddSwaggerGen(); + + var app = builder.Build(); + + app.UseDefaultFiles(); + app.UseStaticFiles(); + + // Configure the HTTP request pipeline. + if (app.Environment.IsDevelopment()) + { + app.UseSwagger(); + app.UseSwaggerUI(); + } + + app.UseHttpsRedirection(); + + app.UseAuthorization(); + + + app.MapControllers(); + + app.MapFallbackToFile("/index.html"); + + app.Run(); + } + } +} diff --git a/AwesomeMicroservices/AwesomeMicroservices.Server/Properties/launchSettings.json b/AwesomeMicroservices/AwesomeMicroservices.Server/Properties/launchSettings.json new file mode 100644 index 0000000..10272dc --- /dev/null +++ b/AwesomeMicroservices/AwesomeMicroservices.Server/Properties/launchSettings.json @@ -0,0 +1,55 @@ +{ + "profiles": { + "http": { + "commandName": "Project", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.SpaProxy" + }, + "dotnetRunMessages": true, + "applicationUrl": "http://localhost:5188" + }, + "https": { + "commandName": "Project", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.SpaProxy" + }, + "dotnetRunMessages": true, + "applicationUrl": "https://localhost:7223;http://localhost:5188" + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.SpaProxy" + } + }, + "Container (Dockerfile)": { + "commandName": "Docker", + "launchBrowser": true, + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger", + "environmentVariables": { + "ASPNETCORE_HTTPS_PORTS": "8081", + "ASPNETCORE_HTTP_PORTS": "8080" + }, + "publishAllPorts": true, + "useSSL": true + } + }, + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:22279", + "sslPort": 44347 + } + } +} diff --git a/AwesomeMicroservices/AwesomeMicroservices.Server/WeatherForecast.cs b/AwesomeMicroservices/AwesomeMicroservices.Server/WeatherForecast.cs new file mode 100644 index 0000000..916d246 --- /dev/null +++ b/AwesomeMicroservices/AwesomeMicroservices.Server/WeatherForecast.cs @@ -0,0 +1,13 @@ +namespace AwesomeMicroservices.Server +{ + public class WeatherForecast + { + public DateOnly Date { get; set; } + + public int TemperatureC { get; set; } + + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + + public string? Summary { get; set; } + } +} diff --git a/AwesomeMicroservices/AwesomeMicroservices.Server/appsettings.Development.json b/AwesomeMicroservices/AwesomeMicroservices.Server/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/AwesomeMicroservices/AwesomeMicroservices.Server/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/AwesomeMicroservices/AwesomeMicroservices.Server/appsettings.json b/AwesomeMicroservices/AwesomeMicroservices.Server/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/AwesomeMicroservices/AwesomeMicroservices.Server/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/AwesomeMicroservices/awesomemicroservices.client/.editorconfig b/AwesomeMicroservices/awesomemicroservices.client/.editorconfig new file mode 100644 index 0000000..f166060 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/.editorconfig @@ -0,0 +1,17 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single +ij_typescript_use_double_quotes = false + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/AwesomeMicroservices/awesomemicroservices.client/.gitignore b/AwesomeMicroservices/awesomemicroservices.client/.gitignore new file mode 100644 index 0000000..cc7b141 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/.gitignore @@ -0,0 +1,42 @@ +# See https://docs.github.com/get-started/getting-started-with-git/ignoring-files for more about ignoring files. + +# Compiled output +/dist +/tmp +/out-tsc +/bazel-out + +# Node +/node_modules +npm-debug.log +yarn-error.log + +# IDEs and editors +.idea/ +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# Visual Studio Code +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# Miscellaneous +/.angular/cache +.sass-cache/ +/connect.lock +/coverage +/libpeerconnection.log +testem.log +/typings + +# System files +.DS_Store +Thumbs.db diff --git a/AwesomeMicroservices/awesomemicroservices.client/.vscode/extensions.json b/AwesomeMicroservices/awesomemicroservices.client/.vscode/extensions.json new file mode 100644 index 0000000..77b3745 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 + "recommendations": ["angular.ng-template"] +} diff --git a/AwesomeMicroservices/awesomemicroservices.client/.vscode/launch.json b/AwesomeMicroservices/awesomemicroservices.client/.vscode/launch.json new file mode 100644 index 0000000..e473a9e --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/.vscode/launch.json @@ -0,0 +1,19 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "edge", + "request": "launch", + "name": "localhost (Edge)", + "url": "https://localhost:56902", + "webRoot": "${workspaceFolder}" + }, + { + "type": "chrome", + "request": "launch", + "name": "localhost (Chrome)", + "url": "https://localhost:56902", + "webRoot": "${workspaceFolder}" + } + ] +} diff --git a/AwesomeMicroservices/awesomemicroservices.client/.vscode/tasks.json b/AwesomeMicroservices/awesomemicroservices.client/.vscode/tasks.json new file mode 100644 index 0000000..a298b5b --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/.vscode/tasks.json @@ -0,0 +1,42 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "start", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + }, + { + "type": "npm", + "script": "test", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + } + ] +} diff --git a/AwesomeMicroservices/awesomemicroservices.client/CHANGELOG.md b/AwesomeMicroservices/awesomemicroservices.client/CHANGELOG.md new file mode 100644 index 0000000..8f0eb96 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/CHANGELOG.md @@ -0,0 +1,24 @@ +This file explains how Visual Studio created the project. + +The following tools were used to generate this project: +- Angular CLI (ng) + +The following steps were used to generate this project: +- Create Angular project with ng: `ng new awesomemicroservices.client --defaults --skip-install --skip-git --no-standalone `. +- Add `proxy.conf.js` to proxy calls to the backend ASP.NET server. +- Add `aspnetcore-https.js` script to install https certs. +- Update `package.json` to call `aspnetcore-https.js` and serve with https. +- Update `angular.json` to point to `proxy.conf.js`. +- Update `app.component.ts` component to fetch and display weather information. +- Modify `app.component.spec.ts` with updated tests. +- Update `app.module.ts` to import the HttpClientModule. +- Create project file (`awesomemicroservices.client.esproj`). +- Create `launch.json` to enable debugging. +- Update package.json to add `jest-editor-support`. +- Update package.json to add `run-script-os`. +- Add `karma.conf.js` for unit tests. +- Update `angular.json` to point to `karma.conf.js`. +- Add project to solution. +- Update proxy endpoint to be the backend server endpoint. +- Add project to the startup projects list. +- Write this file. diff --git a/AwesomeMicroservices/awesomemicroservices.client/README.md b/AwesomeMicroservices/awesomemicroservices.client/README.md new file mode 100644 index 0000000..089bd1a --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/README.md @@ -0,0 +1,27 @@ +# AwesomemicroservicesClient + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.8. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/AwesomeMicroservices/awesomemicroservices.client/angular.json b/AwesomeMicroservices/awesomemicroservices.client/angular.json new file mode 100644 index 0000000..f8979f0 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/angular.json @@ -0,0 +1,111 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "awesomemicroservices.client": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "standalone": false + }, + "@schematics/angular:directive": { + "standalone": false + }, + "@schematics/angular:pipe": { + "standalone": false + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/awesomemicroservices.client", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": [ + "zone.js" + ], + "tsConfig": "tsconfig.app.json", + "assets": [ + { + "glob": "**/*", + "input": "public" + } + ], + "styles": [ + "src/styles.css" + ], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kB", + "maximumError": "1MB" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kB", + "maximumError": "4kB" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "awesomemicroservices.client:build:production" + }, + "development": { + "buildTarget": "awesomemicroservices.client:build:development" + } + }, + "defaultConfiguration": "development", + "options": { + "proxyConfig": "src/proxy.conf.js", + "port": 56902 + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n" + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": [ + "zone.js", + "zone.js/testing" + ], + "tsConfig": "tsconfig.spec.json", + "assets": [ + { + "glob": "**/*", + "input": "public" + } + ], + "styles": [ + "src/styles.css" + ], + "scripts": [], + "karmaConfig": "karma.conf.js" + } + } + } + } + } +} \ No newline at end of file diff --git a/AwesomeMicroservices/awesomemicroservices.client/aspnetcore-https.js b/AwesomeMicroservices/awesomemicroservices.client/aspnetcore-https.js new file mode 100644 index 0000000..cab03ec --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/aspnetcore-https.js @@ -0,0 +1,37 @@ +// This script sets up HTTPS for the application using the ASP.NET Core HTTPS certificate +const fs = require('fs'); +const spawn = require('child_process').spawn; +const path = require('path'); + +const baseFolder = + process.env.APPDATA !== undefined && process.env.APPDATA !== '' + ? `${process.env.APPDATA}/ASP.NET/https` + : `${process.env.HOME}/.aspnet/https`; + +const certificateArg = process.argv.map(arg => arg.match(/--name=(?.+)/i)).filter(Boolean)[0]; +const certificateName = certificateArg ? certificateArg.groups.value : process.env.npm_package_name; + +if (!certificateName) { + console.error('Invalid certificate name. Run this script in the context of an npm/yarn script or pass --name=<> explicitly.') + process.exit(-1); +} + +const certFilePath = path.join(baseFolder, `${certificateName}.pem`); +const keyFilePath = path.join(baseFolder, `${certificateName}.key`); + +if (!fs.existsSync(baseFolder)) { + fs.mkdirSync(baseFolder, { recursive: true }); +} + +if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) { + spawn('dotnet', [ + 'dev-certs', + 'https', + '--export-path', + certFilePath, + '--format', + 'Pem', + '--no-password', + ], { stdio: 'inherit', }) + .on('exit', (code) => process.exit(code)); +} \ No newline at end of file diff --git a/AwesomeMicroservices/awesomemicroservices.client/awesomemicroservices.client.esproj b/AwesomeMicroservices/awesomemicroservices.client/awesomemicroservices.client.esproj new file mode 100644 index 0000000..af345cb --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/awesomemicroservices.client.esproj @@ -0,0 +1,10 @@ + + + npm start + Jasmine + + false + + $(MSBuildProjectDirectory)\dist\awesomemicroservices.client\browser\ + + \ No newline at end of file diff --git a/AwesomeMicroservices/awesomemicroservices.client/karma.conf.js b/AwesomeMicroservices/awesomemicroservices.client/karma.conf.js new file mode 100644 index 0000000..efe6efe --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/karma.conf.js @@ -0,0 +1,44 @@ +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, './coverage/'), + subdir: '.', + reporters: [ + { type: 'html' }, + { type: 'text-summary' } + ] + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true, + listenAddress: 'localhost', + hostname: 'localhost' + }); +}; + diff --git a/AwesomeMicroservices/awesomemicroservices.client/package.json b/AwesomeMicroservices/awesomemicroservices.client/package.json new file mode 100644 index 0000000..72d8571 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/package.json @@ -0,0 +1,43 @@ +{ + "name": "awesomemicroservices.client", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "run-script-os", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test", + "prestart": "node aspnetcore-https", + "start:windows": "ng serve --ssl --ssl-cert \"%APPDATA%\\ASP.NET\\https\\%npm_package_name%.pem\" --ssl-key \"%APPDATA%\\ASP.NET\\https\\%npm_package_name%.key\" --host=127.0.0.1", + "start:default": "ng serve --ssl --ssl-cert \"$HOME/.aspnet/https/${npm_package_name}.pem\" --ssl-key \"$HOME/.aspnet/https/${npm_package_name}.key\" --host=127.0.0.1" + }, + "private": true, + "dependencies": { + "@angular/animations": "^18.2.0", + "@angular/common": "^18.2.0", + "@angular/compiler": "^18.2.0", + "@angular/core": "^18.2.0", + "@angular/forms": "^18.2.0", + "@angular/platform-browser": "^18.2.0", + "@angular/platform-browser-dynamic": "^18.2.0", + "@angular/router": "^18.2.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.10", + "jest-editor-support": "*", + "run-script-os": "*" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^18.2.8", + "@angular/cli": "^18.2.8", + "@angular/compiler-cli": "^18.2.0", + "@types/jasmine": "~5.1.0", + "jasmine-core": "~5.2.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.5.2" + } +} \ No newline at end of file diff --git a/AwesomeMicroservices/awesomemicroservices.client/public/favicon.ico b/AwesomeMicroservices/awesomemicroservices.client/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..57614f9c967596fad0a3989bec2b1deff33034f6 GIT binary patch literal 15086 zcmd^G33O9Omi+`8$@{|M-I6TH3wzF-p5CV8o}7f~KxR60LK+ApEFB<$bcciv%@SmA zV{n>g85YMFFeU*Uvl=i4v)C*qgnb;$GQ=3XTe9{Y%c`mO%su)noNCCQ*@t1WXn|B(hQ7i~ zrUK8|pUkD6#lNo!bt$6)jR!&C?`P5G(`e((P($RaLeq+o0Vd~f11;qB05kdbAOm?r zXv~GYr_sibQO9NGTCdT;+G(!{4Xs@4fPak8#L8PjgJwcs-Mm#nR_Z0s&u?nDX5^~@ z+A6?}g0|=4e_LoE69pPFO`yCD@BCjgKpzMH0O4Xs{Ahc?K3HC5;l=f zg>}alhBXX&);z$E-wai+9TTRtBX-bWYY@cl$@YN#gMd~tM_5lj6W%8ah4;uZ;jP@Q zVbuel1rPA?2@x9Y+u?e`l{Z4ngfG5q5BLH5QsEu4GVpt{KIp1?U)=3+KQ;%7ec8l* zdV=zZgN5>O3G(3L2fqj3;oBbZZw$Ij@`Juz@?+yy#OPw)>#wsTewVgTK9BGt5AbZ&?K&B3GVF&yu?@(Xj3fR3n+ZP0%+wo)D9_xp>Z$`A4 zfV>}NWjO#3lqumR0`gvnffd9Ka}JJMuHS&|55-*mCD#8e^anA<+sFZVaJe7{=p*oX zE_Uv?1>e~ga=seYzh{9P+n5<+7&9}&(kwqSaz;1aD|YM3HBiy<))4~QJSIryyqp| z8nGc(8>3(_nEI4n)n7j(&d4idW1tVLjZ7QbNLXg;LB ziHsS5pXHEjGJZb59KcvS~wv;uZR-+4qEqow`;JCfB*+b^UL^3!?;-^F%yt=VjU|v z39SSqKcRu_NVvz!zJzL0CceJaS6%!(eMshPv_0U5G`~!a#I$qI5Ic(>IONej@aH=f z)($TAT#1I{iCS4f{D2+ApS=$3E7}5=+y(rA9mM#;Cky%b*Gi0KfFA`ofKTzu`AV-9 znW|y@19rrZ*!N2AvDi<_ZeR3O2R{#dh1#3-d%$k${Rx42h+i&GZo5!C^dSL34*AKp z27mTd>k>?V&X;Nl%GZ(>0s`1UN~Hfyj>KPjtnc|)xM@{H_B9rNr~LuH`Gr5_am&Ep zTjZA8hljNj5H1Ipm-uD9rC}U{-vR!eay5&6x6FkfupdpT*84MVwGpdd(}ib)zZ3Ky z7C$pnjc82(W_y_F{PhYj?o!@3__UUvpX)v69aBSzYj3 zdi}YQkKs^SyXyFG2LTRz9{(w}y~!`{EuAaUr6G1M{*%c+kP1olW9z23dSH!G4_HSK zzae-DF$OGR{ofP*!$a(r^5Go>I3SObVI6FLY)N@o<*gl0&kLo-OT{Tl*7nCz>Iq=? zcigIDHtj|H;6sR?or8Wd_a4996GI*CXGU}o;D9`^FM!AT1pBY~?|4h^61BY#_yIfO zKO?E0 zJ{Pc`9rVEI&$xxXu`<5E)&+m(7zX^v0rqofLs&bnQT(1baQkAr^kEsk)15vlzAZ-l z@OO9RF<+IiJ*O@HE256gCt!bF=NM*vh|WVWmjVawcNoksRTMvR03H{p@cjwKh(CL4 z7_PB(dM=kO)!s4fW!1p0f93YN@?ZSG` z$B!JaAJCtW$B97}HNO9(x-t30&E}Mo1UPi@Av%uHj~?T|!4JLwV;KCx8xO#b9IlUW zI6+{a@Wj|<2Y=U;a@vXbxqZNngH8^}LleE_4*0&O7#3iGxfJ%Id>+sb;7{L=aIic8 z|EW|{{S)J-wr@;3PmlxRXU8!e2gm_%s|ReH!reFcY8%$Hl4M5>;6^UDUUae?kOy#h zk~6Ee_@ZAn48Bab__^bNmQ~+k=02jz)e0d9Z3>G?RGG!65?d1>9}7iG17?P*=GUV-#SbLRw)Hu{zx*azHxWkGNTWl@HeWjA?39Ia|sCi{e;!^`1Oec zb>Z|b65OM*;eC=ZLSy?_fg$&^2xI>qSLA2G*$nA3GEnp3$N-)46`|36m*sc#4%C|h zBN<2U;7k>&G_wL4=Ve5z`ubVD&*Hxi)r@{4RCDw7U_D`lbC(9&pG5C*z#W>8>HU)h z!h3g?2UL&sS!oY5$3?VlA0Me9W5e~V;2jds*fz^updz#AJ%G8w2V}AEE?E^=MK%Xt z__Bx1cr7+DQmuHmzn*|hh%~eEc9@m05@clWfpEFcr+06%0&dZJH&@8^&@*$qR@}o3 z@Tuuh2FsLz^zH+dN&T&?0G3I?MpmYJ;GP$J!EzjeM#YLJ!W$}MVNb0^HfOA>5Fe~UNn%Zk(PT@~9}1dt)1UQ zU*B5K?Dl#G74qmg|2>^>0WtLX#Jz{lO4NT`NYB*(L#D|5IpXr9v&7a@YsGp3vLR7L zHYGHZg7{ie6n~2p$6Yz>=^cEg7tEgk-1YRl%-s7^cbqFb(U7&Dp78+&ut5!Tn(hER z|Gp4Ed@CnOPeAe|N>U(dB;SZ?NU^AzoD^UAH_vamp6Ws}{|mSq`^+VP1g~2B{%N-!mWz<`)G)>V-<`9`L4?3dM%Qh6<@kba+m`JS{Ya@9Fq*m6$$ zA1%Ogc~VRH33|S9l%CNb4zM%k^EIpqY}@h{w(aBcJ9c05oiZx#SK9t->5lSI`=&l~ z+-Ic)a{FbBhXV$Xt!WRd`R#Jk-$+_Z52rS>?Vpt2IK<84|E-SBEoIw>cs=a{BlQ7O z-?{Fy_M&84&9|KM5wt~)*!~i~E=(6m8(uCO)I=)M?)&sRbzH$9Rovzd?ZEY}GqX+~ zFbEbLz`BZ49=2Yh-|<`waK-_4!7`ro@zlC|r&I4fc4oyb+m=|c8)8%tZ-z5FwhzDt zL5kB@u53`d@%nHl0Sp)Dw`(QU&>vujEn?GPEXUW!Wi<+4e%BORl&BIH+SwRcbS}X@ z01Pk|vA%OdJKAs17zSXtO55k!;%m9>1eW9LnyAX4uj7@${O6cfii`49qTNItzny5J zH&Gj`e}o}?xjQ}r?LrI%FjUd@xflT3|7LA|ka%Q3i}a8gVm<`HIWoJGH=$EGClX^C0lysQJ>UO(q&;`T#8txuoQ_{l^kEV9CAdXuU1Ghg8 zN_6hHFuy&1x24q5-(Z7;!poYdt*`UTdrQOIQ!2O7_+AHV2hgXaEz7)>$LEdG z<8vE^Tw$|YwZHZDPM!SNOAWG$?J)MdmEk{U!!$M#fp7*Wo}jJ$Q(=8>R`Ats?e|VU?Zt7Cdh%AdnfyN3MBWw{ z$OnREvPf7%z6`#2##_7id|H%Y{vV^vWXb?5d5?a_y&t3@p9t$ncHj-NBdo&X{wrfJ zamN)VMYROYh_SvjJ=Xd!Ga?PY_$;*L=SxFte!4O6%0HEh%iZ4=gvns7IWIyJHa|hT z2;1+e)`TvbNb3-0z&DD_)Jomsg-7p_Uh`wjGnU1urmv1_oVqRg#=C?e?!7DgtqojU zWoAB($&53;TsXu^@2;8M`#z{=rPy?JqgYM0CDf4v@z=ZD|ItJ&8%_7A#K?S{wjxgd z?xA6JdJojrWpB7fr2p_MSsU4(R7=XGS0+Eg#xR=j>`H@R9{XjwBmqAiOxOL` zt?XK-iTEOWV}f>Pz3H-s*>W z4~8C&Xq25UQ^xH6H9kY_RM1$ch+%YLF72AA7^b{~VNTG}Tj#qZltz5Q=qxR`&oIlW Nr__JTFzvMr^FKp4S3v*( literal 0 HcmV?d00001 diff --git a/AwesomeMicroservices/awesomemicroservices.client/src/app/app-routing.module.ts b/AwesomeMicroservices/awesomemicroservices.client/src/app/app-routing.module.ts new file mode 100644 index 0000000..0297262 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/src/app/app-routing.module.ts @@ -0,0 +1,10 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +const routes: Routes = []; + +@NgModule({ + imports: [RouterModule.forRoot(routes)], + exports: [RouterModule] +}) +export class AppRoutingModule { } diff --git a/AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.css b/AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.css new file mode 100644 index 0000000..43fba20 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.css @@ -0,0 +1,14 @@ +:host { + max-width: 1280px; + padding: 2rem; + text-align: center; +} + +th, td { + padding-left: 1rem; + padding-right: 1rem; +} + +table { + margin: 0 auto; +} diff --git a/AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.html b/AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.html new file mode 100644 index 0000000..4f4058c --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.html @@ -0,0 +1,24 @@ +

Weather forecast

+ +

This component demonstrates fetching data from the server.

+ +

Loading... Please refresh once the ASP.NET backend has started. See https://aka.ms/jspsintegrationangular for more details.

+ + + + + + + + + + + + + + + + + + +
DateTemp. (C)Temp. (F)Summary
{{ forecast.date }}{{ forecast.temperatureC }}{{ forecast.temperatureF }}{{ forecast.summary }}
diff --git a/AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.spec.ts b/AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.spec.ts new file mode 100644 index 0000000..64dc497 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.spec.ts @@ -0,0 +1,45 @@ +import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + let component: AppComponent; + let fixture: ComponentFixture; + let httpMock: HttpTestingController; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [AppComponent], + imports: [HttpClientTestingModule] + }).compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(AppComponent); + component = fixture.componentInstance; + httpMock = TestBed.inject(HttpTestingController); + }); + + afterEach(() => { + httpMock.verify(); + }); + + it('should create the app', () => { + expect(component).toBeTruthy(); + }); + + it('should retrieve weather forecasts from the server', () => { + const mockForecasts = [ + { date: '2021-10-01', temperatureC: 20, temperatureF: 68, summary: 'Mild' }, + { date: '2021-10-02', temperatureC: 25, temperatureF: 77, summary: 'Warm' } + ]; + + component.ngOnInit(); + + const req = httpMock.expectOne('/weatherforecast'); + expect(req.request.method).toEqual('GET'); + req.flush(mockForecasts); + + expect(component.forecasts).toEqual(mockForecasts); + }); +}); \ No newline at end of file diff --git a/AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.ts b/AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.ts new file mode 100644 index 0000000..c9ba946 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/src/app/app.component.ts @@ -0,0 +1,37 @@ +import { HttpClient } from '@angular/common/http'; +import { Component, OnInit } from '@angular/core'; + +interface WeatherForecast { + date: string; + temperatureC: number; + temperatureF: number; + summary: string; +} + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrl: './app.component.css' +}) +export class AppComponent implements OnInit { + public forecasts: WeatherForecast[] = []; + + constructor(private http: HttpClient) {} + + ngOnInit() { + this.getForecasts(); + } + + getForecasts() { + this.http.get('/weatherforecast').subscribe( + (result) => { + this.forecasts = result; + }, + (error) => { + console.error(error); + } + ); + } + + title = 'awesomemicroservices.client'; +} diff --git a/AwesomeMicroservices/awesomemicroservices.client/src/app/app.module.ts b/AwesomeMicroservices/awesomemicroservices.client/src/app/app.module.ts new file mode 100644 index 0000000..0192642 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/src/app/app.module.ts @@ -0,0 +1,19 @@ +import { HttpClientModule } from '@angular/common/http'; +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; + +import { AppRoutingModule } from './app-routing.module'; +import { AppComponent } from './app.component'; + +@NgModule({ + declarations: [ + AppComponent + ], + imports: [ + BrowserModule, HttpClientModule, + AppRoutingModule + ], + providers: [], + bootstrap: [AppComponent] +}) +export class AppModule { } diff --git a/AwesomeMicroservices/awesomemicroservices.client/src/index.html b/AwesomeMicroservices/awesomemicroservices.client/src/index.html new file mode 100644 index 0000000..c27f437 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/src/index.html @@ -0,0 +1,13 @@ + + + + + AwesomemicroservicesClient + + + + + + + + diff --git a/AwesomeMicroservices/awesomemicroservices.client/src/main.ts b/AwesomeMicroservices/awesomemicroservices.client/src/main.ts new file mode 100644 index 0000000..1d335a6 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/src/main.ts @@ -0,0 +1,8 @@ +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; + +platformBrowserDynamic().bootstrapModule(AppModule, { + ngZoneEventCoalescing: true +}) + .catch(err => console.error(err)); diff --git a/AwesomeMicroservices/awesomemicroservices.client/src/proxy.conf.js b/AwesomeMicroservices/awesomemicroservices.client/src/proxy.conf.js new file mode 100644 index 0000000..2e255a2 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/src/proxy.conf.js @@ -0,0 +1,16 @@ +const { env } = require('process'); + +const target = env.ASPNETCORE_HTTPS_PORT ? `https://localhost:${env.ASPNETCORE_HTTPS_PORT}` : + env.ASPNETCORE_URLS ? env.ASPNETCORE_URLS.split(';')[0] : 'https://localhost:7223'; + +const PROXY_CONFIG = [ + { + context: [ + "/weatherforecast", + ], + target, + secure: false + } +] + +module.exports = PROXY_CONFIG; diff --git a/AwesomeMicroservices/awesomemicroservices.client/src/styles.css b/AwesomeMicroservices/awesomemicroservices.client/src/styles.css new file mode 100644 index 0000000..90d4ee0 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/src/styles.css @@ -0,0 +1 @@ +/* You can add global styles to this file, and also import other style files */ diff --git a/AwesomeMicroservices/awesomemicroservices.client/tsconfig.app.json b/AwesomeMicroservices/awesomemicroservices.client/tsconfig.app.json new file mode 100644 index 0000000..3775b37 --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/tsconfig.app.json @@ -0,0 +1,15 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/AwesomeMicroservices/awesomemicroservices.client/tsconfig.json b/AwesomeMicroservices/awesomemicroservices.client/tsconfig.json new file mode 100644 index 0000000..a8bb65b --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/tsconfig.json @@ -0,0 +1,33 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "isolatedModules": true, + "esModuleInterop": true, + "sourceMap": true, + "declaration": false, + "experimentalDecorators": true, + "moduleResolution": "bundler", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "lib": [ + "ES2022", + "dom" + ] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/AwesomeMicroservices/awesomemicroservices.client/tsconfig.spec.json b/AwesomeMicroservices/awesomemicroservices.client/tsconfig.spec.json new file mode 100644 index 0000000..5fb748d --- /dev/null +++ b/AwesomeMicroservices/awesomemicroservices.client/tsconfig.spec.json @@ -0,0 +1,15 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/AwesomeMicroservicesSolution.sln b/AwesomeMicroservicesSolution.sln new file mode 100644 index 0000000..4976656 --- /dev/null +++ b/AwesomeMicroservicesSolution.sln @@ -0,0 +1,30 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35527.113 d17.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AwesomeMicroservices.Server", "AwesomeMicroservices\AwesomeMicroservices.Server\AwesomeMicroservices.Server.csproj", "{758C914B-C1D9-46E2-95F6-CDE1E282E283}" +EndProject +Project("{54A90642-561A-4BB1-A94E-469ADEE60C69}") = "awesomemicroservices.client", "AwesomeMicroservices\awesomemicroservices.client\awesomemicroservices.client.esproj", "{32A7249B-E416-4273-85AB-E8411FE0C8CA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {758C914B-C1D9-46E2-95F6-CDE1E282E283}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {758C914B-C1D9-46E2-95F6-CDE1E282E283}.Debug|Any CPU.Build.0 = Debug|Any CPU + {758C914B-C1D9-46E2-95F6-CDE1E282E283}.Release|Any CPU.ActiveCfg = Release|Any CPU + {758C914B-C1D9-46E2-95F6-CDE1E282E283}.Release|Any CPU.Build.0 = Release|Any CPU + {32A7249B-E416-4273-85AB-E8411FE0C8CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {32A7249B-E416-4273-85AB-E8411FE0C8CA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {32A7249B-E416-4273-85AB-E8411FE0C8CA}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {32A7249B-E416-4273-85AB-E8411FE0C8CA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {32A7249B-E416-4273-85AB-E8411FE0C8CA}.Release|Any CPU.Build.0 = Release|Any CPU + {32A7249B-E416-4273-85AB-E8411FE0C8CA}.Release|Any CPU.Deploy.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/README.md b/README.md new file mode 100644 index 0000000..d563d29 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# AwesomeMicroservicesSolution \ No newline at end of file