La Version 1.14 de Deno, le runtime pour ex�cuter JavaScript et TypeScript, est disponible,
elle apporte des aouts � l'API Crypto Web et de nouvelles fonctionnalit�s

L'�quipe de d�veloppement de Deno a annonc� le 14 septembre la sortie de la version 1.14 de Deno. Cr�� par Ryan Dahl, ing�nieur logiciel, d�veloppeur du runtime JavaScript Node.js et TypeScript, Deno est un moteur d'ex�cution (runtime) simple, moderne et s�curis� pour JavaScript et TypeScript, il utilise JavaScript V8 et est construit en Rust. Deno assume explicitement le r�le de runtime et de gestionnaire de paquets au sein d'un seul et m�me ex�cutable, plut�t que de n�cessiter un programme de gestion de paquets distinct. Ryan Dahl est un.

Outre le runtime Deno, l�outil fournit �galement une liste de modules standard qui sont examin�s par les responsables de Deno et dont le fonctionnement est garanti avec une version sp�cifique de Deno. Ils cohabitent avec le code source de Deno dans le r�f�rentiel denoland/deno. Ces modules standard sont h�berg�s sur deno.land/std et sont distribu�s via des URL comme tous les autres modules ES compatibles avec Deno.

Nom : denoB.png
Affichages : 39765
Taille : 8,0 Ko

JavaScript est le langage dynamique le plus utilis�, fonctionnant sur tous les appareils dot�s d'un navigateur Web. Un grand nombre de d�veloppeurs � parlent � couramment le JavaScript et beaucoup d'efforts ont �t� d�ploy�s pour optimiser son ex�cution. Gr�ce � des organismes de normalisation comme ECMA International, le langage a �t� soigneusement et continuellement am�lior�. Aussi, les ing�nieurs Ryan Dahl, Bert Belder et Bartek Iwańczuk pensent que JavaScript est le choix naturel pour l'outillage de langage dynamique ; que ce soit dans un environnement de navigateur ou en tant que processus autonomes.

Pour justifier le projet Deno, les responsables d�clarent : � Notre vecteur d'origine dans ce domaine, Node.js, s'est av�r� �tre une plateforme logicielle tr�s r�ussie. Les gens l'ont trouv� utile pour cr�er des outils de d�veloppement Web, cr�er des serveurs Web autonomes et pour une myriade d'autres cas d'utilisation. Node, cependant, a �t� con�u en 2009 lorsque JavaScript �tait un langage tr�s diff�rent. Par n�cessit�, Node a d� inventer des concepts qui ont ensuite �t� repris par les organismes de normalisation et ajout�s au langage diff�remment.

� Avec l'�volution du langage JavaScript et de nouveaux ajouts comme TypeScript, la cr�ation de projets Node peut devenir une t�che ardue, impliquant la gestion de syst�mes de g�n�ration et d'autres outils lourds qui enl�vent le plaisir des scripts de langage dynamique. De plus, le m�canisme de liaison � des biblioth�ques externes est fondamentalement centralis� via le r�f�rentiel NPM, qui n'est pas conforme aux id�aux du Web. � Nous pensons que le paysage de JavaScript et de l'infrastructure logicielle environnante a suffisamment chang� pour qu'il soit utile de le simplifier. Nous recherchons un environnement de script amusant et productif qui peut �tre utilis� pour un large �ventail de t�ches �. Voici, ci-dessous, les nouvelles fonctionnalit�s apport�es � la version 1.14 de Deno.

Ajouts � l'API Crypto Web

Cette version introduit de nombreuses nouvelles API Web de chiffrement :
crypto.subtile.exportKey() :

  • les cl�s HMAC peuvent maintenant �tre export�es dans les deux formats JWK et "raw" ;
  • les cl�s RSA peuvent maintenant �tre export�es au format pkcs#8.

crypto.subtile.importKey() :

  • les cl�s HMAC peuvent maintenant �tre import�es dans les deux formats JWK et "raw" ;
  • les cl�s RSA peuvent maintenant �tre import�es dans le format pkcs#8 ;
    les cl�s PBKDF2 peuvent maintenant �tre import�es au format "raw".

crypto.subtile.generateKey() :

  • la g�n�ration des cl�s RSA-OAEP est maintenant support�e ;
  • la g�n�ration des cl�s ECDH est maintenant support�e ;
  • la g�n�ration de cl�s AES est maintenant support�e.

crypto.subtle.deriveBits() :

  • la d�rivation PBKDF2 est maintenant support�e ;
  • la d�rivation HKDF est maintenant support�e.

crypto.subtle.verify() :

  • la v�rification de signature ECDSA est maintenant support�e ;

crypto.subtle.encrypt() :

  • le chiffrement RSA-OAEP est maintenant support� ;

crypto.subtle.decrypt() :

  • le d�cryptage RSA-OAEP est d�sormais pris en charge ;


Options de personnalisation pour deno lint et deno fmt

L'�cosyst�me b�n�ficie de styles de code et de r�gles de linting canoniques. Au cours de l'ann�e �coul�e, Deno a re�u de nombreuses demandes d'utilisateurs souhaitant pouvoir modifier les options utilis�es par deno lint et deno fmt pour r�pondre � des besoins sp�cifiques et l�gitimes. La version 1.14 permet de configurer deno lint et deno fmt. Par d�faut, deno lint sera ex�cut� avec toutes les r�gles de lint recommand�es.

Maintenant --rules-exclude, --rules-include, et --rules-tags peuvent �tre utilis�s pour exclure des r�gles, ou inclure des r�gles sp�cifiques qui ne sont pas dans l'ensemble recommand� (comme ban-untagged-todo). Les r�gles de style de deno fmt sont bas�es sur prettier. Il y a seulement cinq options qui peuvent �tre utilis�es pour modifier les r�gles de style :

--options-indent-width (default : 2). Le nombre d'espaces � utiliser pour l'indentation ;
--options-line-width (default : 80). Largeur maximale de la ligne ;
--options-prose-wrap (default : always). Le param�tre d'habillage de la prose ;
--options-single-quote (default : false). Indique si les guillemets simples doivent �tre utilis�s ;
--options-use-tabs (default : false) - Indique si l'on doit utiliser des tabulations au lieu d'espaces pour l'indentation.

Ces options peuvent maintenant aussi �tre configur�es dans le fichier sp�cifi� par --config. Nous avons con�u ce tag pour que le m�me fichier puisse �tre utilis� avec deno run --config, deno fmt --config, et deno lint --config. C'est-�-dire que nous �tendons le fichier tsconfig.json.

Avant

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
{
  "compilerOptions": {
    "allowJs": true,
    "lib": ["deno.window"],
    "strict": true
  }
}
Apr�s

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
  "compilerOptions": {
    "allowJs": true,
    "lib": ["deno.window"],
    "strict": true
  },
  "lint": {
    "files": {
      "include": ["src/"],
      "exclude": ["src/testdata/"]
    },
    "rules": {
      "tags": ["recommended"],
      "include": ["ban-untagged-todo"],
      "exclude": ["no-unused-vars"]
    }
  },
  "fmt": {
    "files": {
      "include": ["src/"],
      "exclude": ["src/testdata/"]
    },
    "options": {
      "useTabs": true,
      "lineWidth": 80,
      "indentWidth": 4,
      "singleQuote": true,
      "proseWrap": "preserve"
    }
  }
}
URLPattern

La version 1.14 introduit une nouvelle API de la plateforme Web permettant de faire correspondre des URL � des mod�les. URLPattern est une alternative int�gr�e � la biblioth�que path-to-regexp. La syntaxe des motifs est tr�s similaire � celle de path-to-regexp. Ce qui distingue URLPattern, c'est qu'il est capable de faire correspondre plus que de simples chemins. Il peut faire correspondre chaque partie d'une URL (protocole, nom d'h�te, nom de chemin, cha�ne de requ�te, hachage, etc.) individuellement.

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
const pattern = new URLPattern({ pathname : "/books/:id" }) ;
console.log(pattern.test("https://example.com/books/123")) ; // vrai
console.log(pattern.test("https://example.com/books/123/456")) ; // false
console.log(pattern.test("https://example.com/books")) ; // false
console.log(pattern.exec("https://example.com/books/123").pathname) ; // { input : "/books/123", groups : { id : "123" } }
Cette API est instable. La fonction --unstable est n�cessaire pour l'utiliser, mais il est peu probable qu'elle change de mani�re significative avant sa stabilisation. � moins que de nouveaux blocages ne surviennent, Deno promet de stabiliser l'API dans Deno 1.15, en synchronisation avec Chrome 95.

Source : Deno

Et vous ?

Quel est votre avis sur le sujet ?

Voir aussi :

La Version 1.9 de Deno, le runtime pour ex�cuter JavaScript et TypeScript, est disponible, elle am�liore les appels de commande dans Rust et apporte de nouvelles fonctionnalit�s

State of JavaScript 2020 : TypeScript leader incontestable des d�clinaisons de JavaScript, le typage statique devient la fonctionnalit� la plus demand�e et React reste le framework front-end dominant

Deno passe en version 1.0. Le runtime pour ex�cuter JavaScript et TypeScript, tente de fournir un outil autonome pour l'�criture rapide de fonctionnalit�s complexes

Quels sont les co�ts li�s � l'utilisation de frameworks JavaScript pour le d�veloppement Web ? Une analyse des sites utilisant React, Vue.js ou Angular