renameTemplateFiles() : renomme les fichiers templates générés en supprimant l'extension ".template"

Total Guide To Custom Angular Schematics

<aside> 💡 Besoin de @angular-devkit/schematics-cli : package pour pouvoir utiliser les commandes "schematics" dans un terminal. "npm install -g @angular-devkit/schematics-cli" | "yarn add @angular-devkit/schematics-cli" (installation du package dans notre projet ng-emedisys)

</aside>

I. Création du projet

Génération d'un nouveau projet schématique : "schematics blank hello"

On obtient un répertoire avec la structure suivante :

Le fichier collection.json est le fichier principal de définition de la bibliothèque complète des schématiques et il contient les définition de tous les schématiques disponibles dans cette bibliothèque.

Notre bibliothèque contient un schématique nommé "hello" qui pointe vers le fichier ./hello/index et plus spécifiquement vers la fonction #hello de ce fichier. On peut voir également la description qui sera visible avec le flag - -help quand on utilisera ce schématique.

./hello/index.ts

II. Comprendre les concepts schématiques

1. La factory schématique

Tout d'abord, notre fichier contient une fonction hello qui est une factory de fonctions qui retourne une règle (Rule).

Voici pourquoi nous avons besoin d'une factory et que nous n'implémentons pas seulement la règle : Nous souhaitons que les schématiques soient utilisables pour une variété de circonstances différentes donc nous devons être capable de les ajuster en conséquence. C'est pourquoi la fonction "hello" accepte l'argument _options.

De cette façon, nous pouvons paramétrer notre règle schématique (retournée par la factory) pour qu'elle se comporte en conséquence.

2. The Rule

Le second principal composant d'une implémentation schématique est la règle elle-même. La règle est appelée avec un arbre(Tree) et un contexte schématique(SchematicContext). Une fois appelée, la règle est censée faire des ajustements de l'arbre et le retourner pour un futur traitement.