@gipisistemas/ngx-core
v1.0.10
Published
Componentes e utilitários para projetos da GIPI Sistemas.
Maintainers
Readme
GIPI NGX-CORE
NGX-CORE é um projeto modular que fornece componentes, interceptadores, guardas de rotas, estilos e utilitários para acelerar o desenvolvimento das aplicações da GIPI Sistemas. Projetada para ser flexível e escalável, ela facilita a criação de interfaces padronizadas e a implementação de funcionalidades essenciais para os projetos.
⚠️ Estrutura de Commits (Conventional Commits)
Este projeto utiliza Semantic Release para gerar versões automaticamente.
A versão (patch, minor, major) é definida de acordo com o tipo do commit.
🔑 Regras principais
- fix: incrementa patch →
1.0.0 → 1.0.1 - feat: incrementa minor →
1.0.0 → 1.1.0 - feat!: ou qualquer commit com BREAKING CHANGE no corpo → incrementa major →
1.0.0 → 2.0.0
✅ Exemplos de commits válidos
fix: corrige bug no botão de loginfeat: adiciona novo componente de avatarfeat!: altera API de autenticaçãochore: atualiza dependências (não gera release)docs: adiciona instruções no README (não gera release)
⚠️ Importante
Sempre coloque dois pontos e um espaço depois do tipo.
- ✅ fix: descrição
- ❌ fix:descrição
Somente commits fix, feat ou com BREAKING CHANGE geram versão. Outros tipos (chore, docs, refactor, etc.) não geram release automaticamente.
🚀 Servidor de desenvolvimento
Para iniciar um servidor de desenvolvimento local, execute:
ng run watchApós iniciar o servidor, o diretório /dist será gerado automaticamente. Se ele já existir, será excluído e recriado, garantindo uma versão sempre atualizada da saída do projeto. Além disso, qualquer modificação nos arquivos do projeto acionará uma nova build automaticamente, aplicando as mudanças sem necessidade de reconstrução manual.
🏗 Estrutura de código
Ainda falta detalhar
🏨 Building
Para gerar a build do projeto, execute:
ng buildIsso compilará seu projeto e armazenará os artefatos de build no diretório dist/. Por padrão, o build de produção otimiza seu aplicativo para desempenho e velocidade.
📦 Instalação
Para utilizar esta biblioteca, siga os passos abaixo:
1️⃣ Instale os pacotes necessários
Execute o seguinte comando para instalar as dependências obrigatórias:
npm install extensao moment-timezone2️⃣ Adicione o Angular Material
Se ainda não tiver o Angular Material instalado, execute:
ng add @angular/materialSiga as instruções do assistente de instalação para configurar o Material corretamente.
⚙️ Configuração
Para evitar erros durante a execução, é necessário realizar algumas configurações no projeto Angular.
1️⃣ Configurar preserveSymlinks
É necessário definir preserveSymlinks: true no arquivo angular.json para evitar o seguinte erro:
core.mjs:7195 ERROR RuntimeError: NG0203: inject() must be called from an injection context...
🔹 No angular.json, dentro de projects -> gipi-web -> architect -> build -> options, adicione: "preserveSymlinks": true
2️⃣ Adicionar os Providers Necessários
No main.ts ou no arquivo de configuração app.config.ts, adicione os seguintes providers:
import { provideHttpClient, withInterceptors } from "@angular/common/http";
import { importProvidersFrom, inject, provideAppInitializer } from "@angular/core";
import { FormsModule } from "@angular/forms";
import { MatSnackBarModule } from "@angular/material/snack-bar";
import { AuthService } from "@domain/auth/services/auth.service";
import { authInterceptor, DEFAULT_MESSAGES, errorInterceptor, provideALlowedPublicRoutes, provideAppMessages, provideBaseAuthService } from "@gipisistemas/ngx-core";
import { appRoutes } from "./app.routes";
bootstrapApplication(AppComponent, {
providers: [
...importProvidersFrom([MatSnackBarModule, FormsModule]),
provideBaseAuthService(AuthService),
// Rotas públicas que não podem redirecionar para a rota / mesmo que autenticado
provideALlowedPublicRoutes(["/oauth/change-password", "/oauth/confirm-access"]),
provideAppInitializer(() => {
const authService = inject(AuthService);
return authService.load();
}),
provideHttpClient(withInterceptors([authInterceptor, errorInterceptor])),
provideAppMessages(DEFAULT_MESSAGES),
providePaginatorIntl(),
],
}).catch((err) => console.error(err));Esses providers são essenciais para o funcionamento da biblioteca.
🔗 Recursos Adicionais
Para obter mais informações sobre como usar o Angular CLI, incluindo referências detalhadas de comandos, visite a página Angular CLI Overview and Command Reference.
