GEEKS

O que há de novo no Deno 1.19? – TI CloudSavvy

Publicidade

[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.

Publicidade

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 collect O 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 com deno run.
  • Referências circulares em console.log – Objetos contendo referências circulares agora são claramente exibidos em console.log saí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 protection relatório ganhou um --output sinalizador 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 --watch sinalizador 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-screen bandeira. Ele permite que você retenha a saída do console depois que os arquivos forem alterados.
  • Ambiguidade reduzida no Deno.Document APIDeno.Document é agora Deno.FsFile para evitar confusão com o padrão Document API internet. Você deveria atualizar Deno.Document referências à nova variante para deixar explícito que você está acessando recursos do sistema de arquivos native. Deno.Document permanece 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

Publicidade

Osmar Queiroz

Osmar é um editor especializado em tecnologia, com anos de experiência em comunicação digital e produção de conteúdo voltado para inovação, ciência e tecnologia.

Artigos relacionados

Botão Voltar ao topo
HexTec News