Bibliotecas
Highlightjs
O Highlight.js é uma biblioteca JavaScript que realça trechos de código em páginas web, suportando mais de 180 linguagens de programação. Cada linguagem possui uma classe CSS específica que deve ser atribuída ao elemento <code> para aplicar a formatação correta.
Abaixo, apresento uma tabela com algumas das linguagens suportadas e suas respectivas classes:
| Linguagem | Classe CSS |
|---|---|
| 1C | language-1c |
| ABNF | language-abnf |
| Access logs | language-accesslog |
| Ada | language-ada |
| ARM Assembly | language-armasm |
| AVR Assembly | language-avrasm |
| ActionScript | language-actionscript |
| Alan IF | language-alan |
| AngelScript | language-angelscript |
| Apache | language-apache |
| AppleScript | language-applescript |
| Arcade | language-arcade |
| Arduino | language-arduino |
| AsciiDoc | language-asciidoc |
| AspectJ | language-aspectj |
| AutoHotkey | language-autohotkey |
| AutoIt | language-autoit |
| Awk | language-awk |
| Bash | language-bash |
| Basic | language-basic |
| Batch file | language-batch |
| Beef | language-beef |
| BNF | language-bnf |
| Brainfuck | language-brainfuck |
| C | language-c |
| C# | language-csharp |
| C++ | language-cpp |
| C/AL | language-cal |
| Cache Object Script | language-cos |
| CMake | language-cmake |
| Coq | language-coq |
| CSS | language-css |
| D | language-d |
| Dart | language-dart |
| Delphi | language-delphi |
| Diff | language-diff |
| Django | language-django |
| Dockerfile | language-dockerfile |
| DOS .bat | language-dos |
| Elixir | language-elixir |
| Elm | language-elm |
| Erlang | language-erlang |
| Excel | language-excel |
| F# | language-fsharp |
| Fortran | language-fortran |
| G-code | language-gcode |
| Gams | language-gams |
| GAUSS | language-gauss |
| Gherkin | language-gherkin |
| GLSL | language-glsl |
| Go | language-go |
| GraphQL | language-graphql |
| Groovy | language-groovy |
| Haskell | language-haskell |
| Haxe | language-haxe |
| HCL | language-hcl |
| HTML, XML | language-xml |
| HTTP | language-http |
| Hy | language-hy |
| Inform7 | language-inform7 |
| Ini | language-ini |
| Inno Setup | language-innosetup |
| Java | language-java |
| JavaScript | language-javascript |
| JSON | language-json |
| Julia | language-julia |
| Kotlin | language-kotlin |
| LaTeX | language-latex |
| Less | language-less |
| Lisp | language-lisp |
| LiveCode | language-livecodeserver |
| Lua | language-lua |
| Makefile | language-makefile |
| Markdown | language-markdown |
| Mathematica | language-mathematica |
| MATLAB | language-matlab |
| Maxima | language-maxima |
| Maya Embedded Language | language-mel |
| Mercury | language-mercury |
| MIPS Assembly | language-mipsasm |
| Mizar | language-mizar |
| Mojolicious | language-mojo |
| Monkey | language-monkey |
| N1QL | language-n1ql |
| Nginx | language-nginx |
| Nim | language-nim |
| Nix | language-nix |
| NSIS | language-nsis |
| Objective-C | language-objectivec |
| OCaml | language-ocaml |
| OpenSCAD | language-openscad |
| Oracle Rules Language | language-oracle |
| Pascal | language-pascal |
| Perl | language-perl |
| PHP | language-php |
| Plaintext | language-plaintext |
| Pony | language-pony |
| PostgreSQL SQL dialect | language-pgsql |
| PowerShell | language-powershell |
| Processing | language-processing |
| Prolog | language-prolog |
| Properties | language-properties |
| Protocol Buffers | language-protobuf |
| Puppet | language-puppet |
| Python | language-python |
| Q | language-q |
| QML | language-qml |
| R | language-r |
| ReasonML | language-reasonml |
| Rib | language-rib |
| Roboconf | language-roboconf |
| Ruby | language-ruby |
| Rust | language-rust |
| SAS | language-sas |
| Scala | language-scala |
| Scheme | language-scheme |
| Scilab | language-scilab |
| SCSS | language-scss |
| Shell Session | language-shell |
| Smali | language-smali |
Concurrently
Biblioteca para rodar processos em paralelo.
Race Condition (Condição de Corrida): Esse erro ocorre quando dois ou mais processos ou threads depende de outro, mas o processo dependente é iniciado antes que o processo necessário esteja pronto, isso pode levar a um estado inconsistente ou erro. Para isso é necessário o uso de um Orquestrador.
Orquetrador é uma ferramenta ou sistema que gerencia e coordena a execução de múltiplos processos ou serviços, garantindo que eles sejam executados na ordem correta, atendendo a suas dependências e garantindo que os recursos necessários estejam disponíveis para que cada parte do sistema funcione corretamente.
Instalar Concurrently
$ npm install --save-dev concurrently@8.2.2
$ echo $? # Para testar o código de saída do processo num terminal linux após encerrar o processo
"scripts": {
"test": "concurrently -n next,jest --hide next -k --success command-jest 'next dev' 'jest --runInBand'",
}
A opção --name(-n) é para nomear o nome dos processos em paralelos, para acompanhar os logs gerados por ele. E a opção --hide serve para ocutar as logs de um processo. --kill-others(-k) serve para encerrar os processos filhos (que estão em paralelo) antes de encerrar o proprio concurrently. --success(-s) command-jest (comando que vai definir sua saída com base na saída dos processos filhos, nesse caso se o processo do jest for encerrado com sucesso (0) o concurrently também)