O que há de novo no Deno 1.19? – TI CloudSavvy
[ad_1]
Deno 1.19 foi lançado em fevereiro de 2022 como a última atualização incremental para o pace de execução JavaScript seguro por design. Entre as mudanças estão uma experiência de gerenciamento de permissões simplificada, suporte de primeira classe para dependências de fornecedores e novos fluxos da Internet nativos para arquivos, soquetes de rede e entrada e saída padrão.
Neste artigo, veremos as principais adições e melhorias que alterarão a forma como você u.s.a. o Deno. Você pode obter todos os detalhes sobre o lançamento do changelog no Denoblog.
Solicitações de permissão
Um dos principais objetivos do Deno é oferecer um ambiente JavaScript mais seguro do que alternativas como o Node.js fornecem. Seu modelo de permissões estritas hinder que programas acessem recursos como rede, sistema de arquivos e ambiente de host, a menos que o usuário conceda acesso explicitamente.
Nas versões anteriores do Deno, você precisava fornecer sinalizadores de linha de comando, como --allow-net (permitir rede) e --allow-read (permitir leituras do sistema de arquivos) para conceder essas permissões. O --prompt sinalizador foi oferecido como alternativa, enumerando cada permissão como um immediate interativo da CLI para você responder y ou n para.
No Deno v1.19 o --prompt bandeira é incluído automaticamente quando você omitir específico --allow- opções. Isso torna mais rápido iniciar aplicativos que precisam de várias permissões. Você não precisa lembrá-los individualmente ou especificar --prompt cada vez.
Você pode usar o --no-prompt sinalizador para desabilitar completamente os activates de permissão interativos. Este permanece o modo padrão quando o Deno está sendo executado sem um TTY.
Streams nativos da Internet
Deno agora u.s.a. nativo ReadableStream e WritableStream instâncias para seus fluxos de arquivo, rede e stdio. A adoção de fluxos da internet para essas funções melhora a interoperabilidade entre APIs e outros tempos de execução, como navegadores da internet. Como exemplo, agora você pode transmitir dados de rede diretamente para um arquivo ou saída padrão:
const document = anticipate Deno.create("./information.txt"); const networkResponse = anticipate fetch("https://instance.com/information.txt"); anticipate networkResponse.frame.pipeTo(document.writable);
Cada fluxo readable e writable propriedades referem-se a instâncias de fluxo da internet. Eles podem ser transmitidos livremente entre as APIs de suporte, tornando o código assíncrono complexo claro e legível. O uso de fluxos da Internet se estende ao componente de servidor do Deno, permitindo que você canalize dados transmitidos em suas respostas HTTP.
Compressão de fluxo simples
A Streams também ganhou dois novos transformadores, CompressionStream e DecompressionStream. Isso simplifica a compactação e descompactação de dados que passam por fluxos. A Deno’s implementou as APIs padronizadas que já funcionam em Chrome e Opera. Espera-se que outros navegadores adicionem suporte no futuro.
const decompressed = anticipate Deno.open("./document.txt"); const compressed = anticipate Deno.open("./document.txt.gz"); anticipate decompressed.readable .pipeThrough(new CompressionStream("gz")) .pipeTo(compressed.writable);
Os transformadores atualmente suportam gzip e deflate-dados formatados. Há uma comunidade aberta proposta para estender a API com brotli compressão também.
Dependências Vendidas
Um grande novo recurso do lançamento são as dependências fornecidas. O Deno agora fornece um mecanismo para fornecer dependências como parte de seu próprio código-fonte. Ele take away a solução confusa de cometer DENO_DIR ao seu repositório apenas para que você possa fazer alterações nos arquivos fornecidos por módulos externos.
As dependências fornecidas dão ao Deno algo semelhante ao Node.js’ node_modules diretório. A venda de um módulo converte os arquivos opacos em DENO_DIR em uma árvore de dependência em disco onde os nomes dos arquivos se assemelham aos nomes dos módulos originais.
O novo deno supplier comando baixa as dependências remotas de módulos especificados em um native supplier diretório:
deno supplier primary.ts
O diretório incluirá um import_map.json que você pode passar para Deno’s --import-map sinalizador quando você executa sua fonte. Isso instruirá o Deno a resolver dependências usando os módulos baixados. Adicionando o --no-remote sinalizador desativa completamente o carregamento do módulo remoto, garantindo que as dependências fornecidas serão usadas sem exceção.
deno run --no-remote --import-map=supplier/import_map.json primary.ts
Um bom caso de uso para esse recurso é quando você deseja distribuir código de fornecedor junto com sua própria fonte. Também é útil para depuração quando você precisa injetar algumas instruções de log em uma dependência. Você pode fornecer o módulo de destino para navegar e editar convenientemente seus arquivos de origem. Quando terminar, remova o supplier diretório para reverter para o sistema de carregamento de módulo common.
Experiência de desenvolvimento aprimorada
Outras novas melhorias aprimoram a experiência do desenvolvedor e as ferramentas de depuração do Deno. Aqui estão algumas das mudanças das quais você pode se beneficiar:
- Compilação mais confiável – O
deno collectO comando serializa seu gráfico de dependência diretamente no binário ultimate. Isso take away a etapa de agrupamento usada em versões mais antigas do Deno, garantindo que a ordem de execução do código permaneça correta. Os binários compilados devem se comportar de forma mais previsível e ser consistentes comdeno run. - Referências circulares em
console.log– Objetos contendo referências circulares agora são claramente exibidos emconsole.logsaída. Cada referência inclui um indicador do objeto de destino e a contagem de círculos da iteração atual. - Salve facilmente relatórios de cobertura – O
deno protectionrelatório ganhou um--outputsinalizador que pode ser usado para enviar a saída diretamente para um arquivo (deno protection --lcov --output=protection.lcov protection/). Anteriormente, você precisava usar o redirecionamento de shell para canalizar manualmente a saída padrão do comando para os arquivos. - Desativar a limpeza do console do observador de arquivos – Denos
--watchsinalizador usado para limpar o console toda vez que ele reiniciou o processo em execução. Este comportamento agora pode ser desabilitado com o--no-clear-screenbandeira. Ele permite que você retenha a saída do console depois que os arquivos forem alterados. - Ambiguidade reduzida no
Deno.DocumentAPI –Deno.Documenté agoraDeno.FsFilepara evitar confusão com o padrãoDocumentAPI internet. Você deveria atualizarDeno.Documentreferências à nova variante para deixar explícito que você está acessando recursos do sistema de arquivos native.Deno.Documentpermanece utilizável com avisos de descontinuação até o Deno v2.
Há também novas APIs instáveis para obter o ID do usuário do sistema do processo em execução e descobrir interfaces de rede disponíveis. A API de soquetes Unix instável existente agora pode ser usada para servir conteúdo HTTP. finalmente, o API de ouvintes de sinal para assinar sinais do sistema como SIGINT e SIGTERM foi promovido a um standing estável.
Atualizando
Você pode atualizar para a nova versão executando o deno improve comando. Isso baixará automaticamente a versão mais recente, descompactará e substituirá sua instalação atual do Deno. Você pode reverter para v1.18 se precisar usar deno improve --version 1.18.2.
Resumo
Deno v1.19 é outra versão saudável para o runtime JavaScript e TypeScript. Ele simplifica vários aspectos da experiência de desenvolvimento, desde o manuseio de fluxo até a deno utilitários de linha de comando.
O lançamento também aumenta o pace de execução do V8 para 9,9. Isso adiciona novos recursos de internalização, incluindo mais propriedades no Intl.Locale objeto e um Intel.supportedValuesOf() função para verificar se componentes específicos estão disponíveis. Agora você pode usar esses recursos em seus programas Deno.
[ad_2]
Fonte da Notícia



