Migration des scripts vers TypeScript


Cette page ne doit être appliquée que si le script vous demande de passer la migration manuelle code.20251120.Runtime.TypeScript

Les scripts apportés par des plugins pour l'outil de script supportent maintenant le typescript, l'auto-complétion et la documentation intégrée.
En conséquence, l'outil d'aide de script ne propose dont plus que Des exemples.

Cette migration va consister à migrer les déclarations de variables et fonctions apportés par le projet.

L'aide d'un développeur est recommandé.

Fichiers de déclaration

Les scripts à migrer peuvent être déclarés :

  • soit dans WEB-INF/param/scripts.xml
  • soit dans un plugin.xml avec l'extension : org.ametys.plugins.core.ui.script.ScriptBindingExtensionPoint

Modification des déclarations

Dans chaque fichier concerné vous pouvez retirer les balises et tout ce qu'elles contiennent <text> et <signature>, de sorte qu'il ne reste dans une fonction ou variable que : <name> <script> et <exemples>.

Si ces balisent référençaient des clés i18n, vous pouvez supprimer les textes associés dans les catalogue.

Conservez ces textes pour la suite de la procédure

Dans la balise <script>, renommez js en ts. Et déplacez les fichiers associés (en renommant le dossier js en ts, et chaque extension de fichier)
Par exemple :
<script file="js/Migration.addVersion.js"/> devient <script file="ts/Migration.addVersion.ts"/>

Dupliquez cette balise en <definition> et changez l'extension .ts en .d.ts . Puis créez les fichiers vierges nommés.
Par exemple
<definition file="ts/Migration.addVersion.d.ts"/>

Dans les exemples, changez l'extension de fichier .js en .ts puis renommez les fichiers en question.

Convertir le script javscript en typescript

Modifiez le fichier .ts ainsi si nécessaire : 

Remplacez Ametys.namespace par une déclaration de namespace typescript.
Si le fichier est organisé par namespace, l'ensemble du fichier (ou presque) est englobé dans une instruction

Ametys.namespace("X", { ... });

qui n'existe plus, il faut utiliser désormais

namespace X { ... }

Les méthodes et variables publiques sont celles déclarées dans le fichier de binding xml.

Ajouter export devant les méthodes ou constantes publiques.
Attention, si l'ancien code utilisait une fonction pour ne retourner que certaines méthodes publiques, cela doit être remplacé par des méthodes classiques.

Ajouter le typage des arguments et valeurs de retours des fonctions, ainsi que le typage des variables publiques.

Regarde les différences de code du ticket RUNTIME-3445 pour vous en inspirer.

Définition typescript

Faire le fichier de définition .d.ts associé avec la documentation mise de côté plus haut.

Cela consiste globalement à recopier les signatures du fichier .ts.

Demander l'aide d'un IA pour cette tâche est assez efficace.

Vérification

Démarrer Ametys et dans l'éditeur de script, vérifier que les fonctions sont accessibles en autocomplétion, avec la documentation associée et que les méthodes privées ne sont pas accessibles.

Dans l'outil d'aide vérifiez que les exemples sont toujours accessibles et fonctionnels sans erreur de syntaxe (soulignement rouge).

Retour en haut