mirror of https://github.com/abpframework/abp.git
85 changed files with 7097 additions and 5147 deletions
@ -0,0 +1,13 @@ |
|||
{ |
|||
"grammarly.userWords": [ |
|||
"api", |
|||
"apiName", |
|||
"cli", |
|||
"defaultProject", |
|||
"formatter", |
|||
"md", |
|||
"monorepo", |
|||
"npx", |
|||
"rootNamespace" |
|||
] |
|||
} |
|||
@ -0,0 +1,98 @@ |
|||
# About Feature Libraries |
|||
|
|||
ABP has an ever-growing number of feature modules and [introducing a new one](../../Module-Development-Basics.md) is always possible. When the UI is Angular, these features have modular Angular libraries accompanying them. |
|||
|
|||
## Feature Library Content |
|||
|
|||
Each library has at least two modules: |
|||
|
|||
1. The main module contains all components, services, types, enums, etc. to deliver the required UI when the feature is loaded. From here on, we will refer to these modules as **"feature module"**. |
|||
2. There is also a **"config module"** per library which helps us configure applications to run these modules or make them accessible. |
|||
|
|||
## How to Add a Feature Library to Your Project |
|||
|
|||
<!-- TODO: Insert info on CLI `add-module` command here when the schematic is ready. --> |
|||
|
|||
The manual setup of a feature library has three steps: |
|||
|
|||
### 1. Install the Library |
|||
|
|||
Feature libraries are usually published as an npm package. If a library you want to use does not exist in your project, you may install it via the following command: |
|||
|
|||
```shell |
|||
yarn add @my-company-name/my-project-name |
|||
``` |
|||
|
|||
...or... |
|||
|
|||
```shell |
|||
npm install @my-company-name/my-project-name |
|||
``` |
|||
|
|||
The `my-company-name` and `my-project-name` parts are going to change according to the package you want to use. For example, if we want to install the ABP Identity module, the package installation will be as seen below: |
|||
|
|||
```shell |
|||
yarn add @abp/ng.identity |
|||
``` |
|||
|
|||
> Identity is used just as an example. If you have initiated your project with ABP CLI or ABP Suite, the identity library will already be installed and configured in your project. |
|||
|
|||
### 2. Import the Config Module |
|||
|
|||
As of ABP v3.0, every lazy-loaded module has a config module available via a secondary entry point on the same package. Importing them in your root module looks like this: |
|||
|
|||
```js |
|||
import { IdentityConfigModule } from "@abp/ng.identity/config"; |
|||
|
|||
@NgModule({ |
|||
imports: [ |
|||
// other imports |
|||
IdentityConfigModule.forRoot(), |
|||
], |
|||
// providers, declarations, and bootstrap |
|||
}) |
|||
export class AppModule {} |
|||
``` |
|||
|
|||
We need the config modules for actions required before feature modules are loaded (lazily). For example, the above import configures the menu to display links to identity pages. |
|||
|
|||
Furthermore, depending on the library, the `.forRoot` static method may receive some options that configure how the feature works. |
|||
|
|||
### 3. Import the Feature Module |
|||
|
|||
Finally, the feature module should be [loaded lazily via Angular router](https://angular.io/guide/lazy-loading-ngmodules). If you open the `/src/app/app-routing.module.ts` file, you should see `IdentityModule` is loaded exactly as follows: |
|||
|
|||
```js |
|||
import { NgModule } from "@angular/core"; |
|||
import { RouterModule, Routes } from "@angular/router"; |
|||
|
|||
const routes: Routes = [ |
|||
// other routes |
|||
{ |
|||
path: "identity", |
|||
loadChildren: () => |
|||
import("@abp/ng.identity").then((m) => m.IdentityModule.forLazy()), |
|||
}, |
|||
// other routes |
|||
]; |
|||
|
|||
@NgModule({ |
|||
imports: [RouterModule.forRoot(routes)], |
|||
exports: [RouterModule], |
|||
}) |
|||
export class AppRoutingModule {} |
|||
``` |
|||
|
|||
When you load the identity feature like this, the "Users" page, for example, will have a route path of `/identity/users`. <sup id="a-modify-route">[1](#f-modify-route)</sup> |
|||
|
|||
Depending on the library, the `.forLazy` static method may also receive some options that configure how the feature works. |
|||
|
|||
--- |
|||
|
|||
<sup id="f-modify-route"><b>1</b></sup> _Libraries expect to work at a predefined path. Please check [how to patch a navigation element](./Modifying-the-Menu.md#how-to-patch-or-remove-a-navigation-element), if you want to use a different path from the default one (e.g. '/identity')._ <sup>[↩](#a-modify-route)</sup> |
|||
|
|||
--- |
|||
|
|||
## What's Next? |
|||
|
|||
- [Service Proxies](./Service-Proxies.md) |
|||
File diff suppressed because it is too large
@ -0,0 +1,73 @@ |
|||
using System; |
|||
using Microsoft.EntityFrameworkCore.Migrations; |
|||
|
|||
namespace Volo.BloggingTestApp.EntityFrameworkCore.Migrations |
|||
{ |
|||
public partial class Added_BlobStoing : Migration |
|||
{ |
|||
protected override void Up(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.CreateTable( |
|||
name: "AbpBlobContainers", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(nullable: false), |
|||
ExtraProperties = table.Column<string>(nullable: true), |
|||
ConcurrencyStamp = table.Column<string>(maxLength: 40, nullable: true), |
|||
TenantId = table.Column<Guid>(nullable: true), |
|||
Name = table.Column<string>(maxLength: 128, nullable: false) |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpBlobContainers", x => x.Id); |
|||
}); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpBlobs", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(nullable: false), |
|||
ExtraProperties = table.Column<string>(nullable: true), |
|||
ConcurrencyStamp = table.Column<string>(maxLength: 40, nullable: true), |
|||
ContainerId = table.Column<Guid>(nullable: false), |
|||
TenantId = table.Column<Guid>(nullable: true), |
|||
Name = table.Column<string>(maxLength: 256, nullable: false), |
|||
Content = table.Column<byte[]>(maxLength: 2147483647, nullable: true) |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpBlobs", x => x.Id); |
|||
table.ForeignKey( |
|||
name: "FK_AbpBlobs_AbpBlobContainers_ContainerId", |
|||
column: x => x.ContainerId, |
|||
principalTable: "AbpBlobContainers", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
}); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpBlobContainers_TenantId_Name", |
|||
table: "AbpBlobContainers", |
|||
columns: new[] { "TenantId", "Name" }); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpBlobs_ContainerId", |
|||
table: "AbpBlobs", |
|||
column: "ContainerId"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpBlobs_TenantId_ContainerId_Name", |
|||
table: "AbpBlobs", |
|||
columns: new[] { "TenantId", "ContainerId", "Name" }); |
|||
} |
|||
|
|||
protected override void Down(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.DropTable( |
|||
name: "AbpBlobs"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpBlobContainers"); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
using Volo.Abp.BlobStoring; |
|||
|
|||
namespace Volo.Blogging |
|||
{ |
|||
[BlobContainerName("blogging-files")] |
|||
public class BloggingFileContainer |
|||
{ |
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,14 @@ |
|||
using AutoMapper; |
|||
|
|||
namespace Volo.Abp.TenantManagement.Blazor |
|||
{ |
|||
public class AbpTenantManagementBlazorAutoMapperProfile : Profile |
|||
{ |
|||
public AbpTenantManagementBlazorAutoMapperProfile() |
|||
{ |
|||
/* You can configure your AutoMapper mapping configuration here. |
|||
* Alternatively, you can split your mapping configurations |
|||
* into multiple profile classes for a better organization. */ |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,37 @@ |
|||
using Microsoft.Extensions.DependencyInjection; |
|||
using MyCompanyName.MyProjectName.Blazor; |
|||
using Volo.Abp.AspNetCore.Components.WebAssembly.Theming.Routing; |
|||
using Volo.Abp.AutoMapper; |
|||
using Volo.Abp.Modularity; |
|||
using Volo.Abp.TenantManagement.Blazor.Menus; |
|||
using Volo.Abp.UI.Navigation; |
|||
|
|||
namespace Volo.Abp.TenantManagement.Blazor |
|||
{ |
|||
[DependsOn( |
|||
typeof(AbpAutoMapperModule), |
|||
typeof(AbpTenantManagementHttpApiClientModule) |
|||
)] |
|||
public class AbpTenantManagementBlazorModule : AbpModule |
|||
{ |
|||
public override void ConfigureServices(ServiceConfigurationContext context) |
|||
{ |
|||
context.Services.AddAutoMapperObjectMapper<AbpTenantManagementBlazorModule>(); |
|||
|
|||
Configure<AbpAutoMapperOptions>(options => |
|||
{ |
|||
options.AddProfile<AbpTenantManagementBlazorAutoMapperProfile>(validate: true); |
|||
}); |
|||
|
|||
Configure<AbpNavigationOptions>(options => |
|||
{ |
|||
options.MenuContributors.Add(new TenantManagementBlazorMenuContributor()); |
|||
}); |
|||
|
|||
Configure<AbpRouterOptions>(options => |
|||
{ |
|||
options.AdditionalAssemblies.Add(typeof(AbpTenantManagementBlazorModule).Assembly); |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,3 @@ |
|||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|||
<ConfigureAwait /> |
|||
</Weavers> |
|||
@ -0,0 +1,30 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|||
<xs:element name="Weavers"> |
|||
<xs:complexType> |
|||
<xs:all> |
|||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|||
<xs:complexType> |
|||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|||
</xs:complexType> |
|||
</xs:element> |
|||
</xs:all> |
|||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|||
<xs:annotation> |
|||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|||
<xs:annotation> |
|||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|||
<xs:annotation> |
|||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
</xs:complexType> |
|||
</xs:element> |
|||
</xs:schema> |
|||
@ -0,0 +1,23 @@ |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.UI.Navigation; |
|||
|
|||
namespace Volo.Abp.TenantManagement.Blazor.Menus |
|||
{ |
|||
public class TenantManagementBlazorMenuContributor : IMenuContributor |
|||
{ |
|||
public async Task ConfigureMenuAsync(MenuConfigurationContext context) |
|||
{ |
|||
if (context.Menu.Name == StandardMenus.Main) |
|||
{ |
|||
await ConfigureMainMenu(context); |
|||
} |
|||
} |
|||
|
|||
private Task ConfigureMainMenu(MenuConfigurationContext context) |
|||
{ |
|||
//Add main menu items.
|
|||
|
|||
return Task.CompletedTask; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
namespace Volo.Abp.TenantManagement.Blazor.Menus |
|||
{ |
|||
public class TenantManagementBlazorMenus |
|||
{ |
|||
private const string Prefix = "MyProjectName"; |
|||
|
|||
//Add your menu items here...
|
|||
//public const string Home = Prefix + ".MyNewMenuItem";
|
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
@page "/TenantManagement/Tenants" |
|||
@using Microsoft.Extensions.Localization |
|||
@using Volo.Abp.TenantManagement.Localization |
|||
@inject IStringLocalizer<AbpTenantManagementResource> L |
|||
@{ |
|||
} |
|||
<h1>MyProjectName</h1> |
|||
<p>@L["SamplePageMessage"]</p> |
|||
@ -0,0 +1,20 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk"> |
|||
|
|||
<Import Project="..\..\..\..\configureawait.props" /> |
|||
<Import Project="..\..\..\..\common.props" /> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFramework>netstandard2.1</TargetFramework> |
|||
<RazorLangVersion>3.0</RazorLangVersion> |
|||
<RootNamespace>Volo.Abp.TenantManagement.Blazor</RootNamespace> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AutoMapper\Volo.Abp.AutoMapper.csproj" /> |
|||
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Components.WebAssembly.Theming\Volo.Abp.AspNetCore.Components.WebAssembly.Theming.csproj" /> |
|||
</ItemGroup> |
|||
|
|||
<ItemGroup> |
|||
<ProjectReference Include="..\Volo.Abp.TenantManagement.HttpApi.Client\Volo.Abp.TenantManagement.HttpApi.Client.csproj" /> |
|||
</ItemGroup> |
|||
</Project> |
|||
@ -0,0 +1,5 @@ |
|||
@using Microsoft.AspNetCore.Components.Web |
|||
@using Volo.Abp.AspNetCore.Components.WebAssembly |
|||
@using Volo.Abp.BlazoriseUI |
|||
@using Blazorise |
|||
@using Blazorise.DataGrid |
|||
@ -1,5 +1,6 @@ |
|||
{ |
|||
"printWidth": 100, |
|||
"singleQuote": true, |
|||
"trailingComma": "all" |
|||
"trailingComma": "all", |
|||
"arrowParens": "avoid" |
|||
} |
|||
|
|||
File diff suppressed because it is too large
@ -1,41 +0,0 @@ |
|||
{ |
|||
"compileOnSave": false, |
|||
"compilerOptions": { |
|||
"baseUrl": "./", |
|||
"outDir": "./dist/out-tsc", |
|||
"sourceMap": true, |
|||
"declaration": false, |
|||
"downlevelIteration": true, |
|||
"experimentalDecorators": true, |
|||
"module": "esnext", |
|||
"moduleResolution": "node", |
|||
"importHelpers": true, |
|||
"target": "es2015", |
|||
"typeRoots": ["node_modules/@types"], |
|||
"lib": ["es2018", "dom"], |
|||
"types": ["jest"], |
|||
"paths": { |
|||
"@abp/ng.core": ["packages/core/src/public-api.ts"], |
|||
"@abp/ng.theme.shared": ["packages/theme-shared/src/public-api.ts"], |
|||
"@abp/ng.theme.shared/extensions": ["packages/theme-shared/extensions/src/public-api.ts"], |
|||
"@abp/ng.components/tree": ["packages/components/tree/src/public-api.ts"], |
|||
"@abp/ng.theme.basic": ["packages/theme-basic/src/public-api.ts"], |
|||
"@abp/ng.account": ["packages/account/src/public-api.ts"], |
|||
"@abp/ng.account/config": ["packages/account/config/src/public-api.ts"], |
|||
"@abp/ng.identity": ["packages/identity/src/public-api.ts"], |
|||
"@abp/ng.identity/config": ["packages/identity/config/src/public-api.ts"], |
|||
"@abp/ng.tenant-management": ["packages/tenant-management/src/public-api.ts"], |
|||
"@abp/ng.tenant-management/config": ["packages/tenant-management/config/src/public-api.ts"], |
|||
"@abp/ng.setting-management": ["packages/setting-management/src/public-api.ts"], |
|||
"@abp/ng.setting-management/config": ["packages/setting-management/config/src/public-api.ts"], |
|||
"@abp/ng.permission-management": ["packages/permission-management/src/public-api.ts"], |
|||
"@abp/ng.feature-management": ["packages/feature-management/src/public-api.ts"], |
|||
"@proxy": ["apps/dev-app/src/app/proxy/index.ts"], |
|||
"@proxy/*": ["apps/dev-app/src/app/proxy/*"] |
|||
} |
|||
}, |
|||
"angularCompilerOptions": { |
|||
"fullTemplateTypeCheck": true, |
|||
"strictInjectionParameters": true |
|||
} |
|||
} |
|||
@ -1,41 +1,41 @@ |
|||
/* |
|||
This is a "Solution Style" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience. |
|||
It is not intended to be used to perform a compilation. |
|||
|
|||
To learn more about this file see: https://angular.io/config/solution-tsconfig. |
|||
*/ |
|||
{ |
|||
"files": [], |
|||
"references": [ |
|||
{ |
|||
"path": "./packages/core/tsconfig.lib.json" |
|||
}, |
|||
{ |
|||
"path": "./packages/theme-shared/tsconfig.lib.json" |
|||
}, |
|||
{ |
|||
"path": "./packages/theme-basic/tsconfig.lib.json" |
|||
}, |
|||
{ |
|||
"path": "./packages/account/tsconfig.lib.json" |
|||
}, |
|||
{ |
|||
"path": "./packages/permission-management/tsconfig.lib.json" |
|||
}, |
|||
{ |
|||
"path": "./packages/identity/tsconfig.lib.json" |
|||
}, |
|||
{ |
|||
"path": "./packages/feature-management/tsconfig.lib.json" |
|||
}, |
|||
{ |
|||
"path": "./packages/tenant-management/tsconfig.lib.json" |
|||
}, |
|||
{ |
|||
"path": "./packages/setting-management/tsconfig.lib.json" |
|||
}, |
|||
{ |
|||
"path": "./apps/dev-app/tsconfig.dev.json" |
|||
"compileOnSave": false, |
|||
"compilerOptions": { |
|||
"baseUrl": "./", |
|||
"outDir": "./dist/out-tsc", |
|||
"sourceMap": true, |
|||
"declaration": false, |
|||
"downlevelIteration": true, |
|||
"experimentalDecorators": true, |
|||
"module": "esnext", |
|||
"moduleResolution": "node", |
|||
"importHelpers": true, |
|||
"target": "es2015", |
|||
"typeRoots": ["node_modules/@types"], |
|||
"lib": ["es2018", "dom"], |
|||
"types": ["jest"], |
|||
"paths": { |
|||
"@abp/ng.core": ["packages/core/src/public-api.ts"], |
|||
"@abp/ng.theme.shared": ["packages/theme-shared/src/public-api.ts"], |
|||
"@abp/ng.theme.shared/extensions": ["packages/theme-shared/extensions/src/public-api.ts"], |
|||
"@abp/ng.components/tree": ["packages/components/tree/src/public-api.ts"], |
|||
"@abp/ng.theme.basic": ["packages/theme-basic/src/public-api.ts"], |
|||
"@abp/ng.account": ["packages/account/src/public-api.ts"], |
|||
"@abp/ng.account/config": ["packages/account/config/src/public-api.ts"], |
|||
"@abp/ng.identity": ["packages/identity/src/public-api.ts"], |
|||
"@abp/ng.identity/config": ["packages/identity/config/src/public-api.ts"], |
|||
"@abp/ng.tenant-management": ["packages/tenant-management/src/public-api.ts"], |
|||
"@abp/ng.tenant-management/config": ["packages/tenant-management/config/src/public-api.ts"], |
|||
"@abp/ng.setting-management": ["packages/setting-management/src/public-api.ts"], |
|||
"@abp/ng.setting-management/config": ["packages/setting-management/config/src/public-api.ts"], |
|||
"@abp/ng.permission-management": ["packages/permission-management/src/public-api.ts"], |
|||
"@abp/ng.feature-management": ["packages/feature-management/src/public-api.ts"], |
|||
"@proxy": ["apps/dev-app/src/app/proxy/index.ts"], |
|||
"@proxy/*": ["apps/dev-app/src/app/proxy/*"] |
|||
} |
|||
] |
|||
} |
|||
}, |
|||
"angularCompilerOptions": { |
|||
"fullTemplateTypeCheck": true, |
|||
"strictInjectionParameters": true |
|||
} |
|||
} |
|||
|
|||
File diff suppressed because it is too large
@ -1,4 +1,5 @@ |
|||
{ |
|||
"singleQuote": true, |
|||
"printWidth": 100 |
|||
"printWidth": 100, |
|||
"arrowParens": "avoid" |
|||
} |
|||
|
|||
@ -1,26 +0,0 @@ |
|||
{ |
|||
"compileOnSave": false, |
|||
"compilerOptions": { |
|||
"baseUrl": "./", |
|||
"outDir": "./dist/out-tsc", |
|||
"sourceMap": true, |
|||
"declaration": false, |
|||
"downlevelIteration": true, |
|||
"experimentalDecorators": true, |
|||
"module": "esnext", |
|||
"moduleResolution": "node", |
|||
"importHelpers": true, |
|||
"target": "es2015", |
|||
"typeRoots": ["node_modules/@types"], |
|||
"lib": ["es2018", "dom"], |
|||
"paths": { |
|||
"@proxy": ["src/app/proxy/index.ts"], |
|||
"@proxy/*": ["src/app/proxy/*"] |
|||
} |
|||
}, |
|||
"angularCompilerOptions": { |
|||
"fullTemplateTypeCheck": true, |
|||
"strictInjectionParameters": true, |
|||
"enableIvy": true |
|||
} |
|||
} |
|||
@ -1,17 +1,26 @@ |
|||
/* |
|||
This is a "Solution Style" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience. |
|||
It is not intended to be used to perform a compilation. |
|||
|
|||
To learn more about this file see: https://angular.io/config/solution-tsconfig. |
|||
*/ |
|||
{ |
|||
"files": [], |
|||
"references": [ |
|||
{ |
|||
"path": "./tsconfig.app.json" |
|||
}, |
|||
{ |
|||
"path": "./tsconfig.spec.json" |
|||
"compileOnSave": false, |
|||
"compilerOptions": { |
|||
"baseUrl": "./", |
|||
"outDir": "./dist/out-tsc", |
|||
"sourceMap": true, |
|||
"declaration": false, |
|||
"downlevelIteration": true, |
|||
"experimentalDecorators": true, |
|||
"module": "esnext", |
|||
"moduleResolution": "node", |
|||
"importHelpers": true, |
|||
"target": "es2015", |
|||
"typeRoots": ["node_modules/@types"], |
|||
"lib": ["es2018", "dom"], |
|||
"paths": { |
|||
"@proxy": ["src/app/proxy/index.ts"], |
|||
"@proxy/*": ["src/app/proxy/*"] |
|||
} |
|||
] |
|||
} |
|||
}, |
|||
"angularCompilerOptions": { |
|||
"fullTemplateTypeCheck": true, |
|||
"strictInjectionParameters": true, |
|||
"enableIvy": true |
|||
} |
|||
} |
|||
|
|||
File diff suppressed because it is too large
@ -0,0 +1,5 @@ |
|||
{ |
|||
"singleQuote": true, |
|||
"printWidth": 100, |
|||
"arrowParens": "avoid" |
|||
} |
|||
@ -1,15 +0,0 @@ |
|||
{ |
|||
"extends": "./tsconfig.prod.json", |
|||
"compilerOptions": { |
|||
"paths": { |
|||
"@my-company-name/my-project-name": [ |
|||
"projects/my-project-name/src/public-api.ts" |
|||
], |
|||
"@my-company-name/my-project-name/config": [ |
|||
"projects/my-project-name/config/src/public-api.ts" |
|||
], |
|||
"@proxy": ["projects/my-project-name/src/lib/proxy/index.ts"], |
|||
"@proxy/*": ["projects/my-project-name/src/lib/proxy/*"] |
|||
} |
|||
} |
|||
} |
|||
@ -1,23 +1,15 @@ |
|||
/* |
|||
This is a "Solution Style" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience. |
|||
It is not intended to be used to perform a compilation. |
|||
|
|||
To learn more about this file see: https://angular.io/config/solution-tsconfig. |
|||
*/ |
|||
{ |
|||
"files": [], |
|||
"references": [ |
|||
{ |
|||
"path": "./projects/my-project-name/tsconfig.lib.json" |
|||
}, |
|||
{ |
|||
"path": "./projects/my-project-name/tsconfig.spec.json" |
|||
}, |
|||
{ |
|||
"path": "./projects/dev-app/tsconfig.app.json" |
|||
}, |
|||
{ |
|||
"path": "./projects/dev-app/tsconfig.spec.json" |
|||
"extends": "./tsconfig.prod.json", |
|||
"compilerOptions": { |
|||
"paths": { |
|||
"@my-company-name/my-project-name": [ |
|||
"projects/my-project-name/src/public-api.ts" |
|||
], |
|||
"@my-company-name/my-project-name/config": [ |
|||
"projects/my-project-name/config/src/public-api.ts" |
|||
], |
|||
"@proxy": ["projects/my-project-name/src/lib/proxy/index.ts"], |
|||
"@proxy/*": ["projects/my-project-name/src/lib/proxy/*"] |
|||
} |
|||
] |
|||
} |
|||
} |
|||
} |
|||
|
|||
Loading…
Reference in new issue