Aller au contenu

CLI

Description

Hapify est un outil de génération de code basé sur des modèles de données relationnels. Il utilise un langage de templating dédié. Il affiche une console web pour la définition des modèles de données et l'écriture des templates.

Utilisation

Installation

Vous devez installer ce package globalement pour obtenir la commande hpf :

npm install -g @hapify/cli

Pour vérifier la version installée, exécutez hpf --version.

Options globales

  • -V, --version : affiche le numéro de version
  • --debug : active le mode débogage (par défaut : false)
  • --silent : active le mode silencieux (par défaut : false)
  • -d <path>, --dir <path> : change le répertoire de travail. Ce chemin peut être absolu ou relatif au chemin courant.
  • -k <secret>, --key <secret> : force l'utilisation d'une clé API plutôt que celle définie dans la configuration globale. Si vous voulez définir votre clé d'API de façon permanente, vous devriez utiliser la commande hpf key.
  • -h, --help : affiche l'aide

Commandes

Définir la configuration globale

hpf config [options]

Cette commande enregistre une ou plusieurs configurations globales dans ~/.hapify/config.json. Si le fichier n'existe pas, il sera automatiquement créé.

Configuration disponible

  • hpf config --apiKey <secret> : définit la clé d'API à utiliser pour chaque commande. Ceci est équivalent à hpf key <key>.
  • hpf config --apiUrl <url> : remplace l'URL d'API par défaut.

Définir la clé d'API globale

hpf key <key>

Cette commande est un alias de hpf config --apiKey <secret>.

Lister les boilerplates (channels)

hpf list

Alias : hpf ls

Cette commande affiche ce qui est visible pour le CLI à partir du répertoire courant. Elle affiche la liste des channels et la liste des modèles de données utilisés par ces channels.

Le CLI recherche les fichiers hapify.json afin de détecter automatiquement les channels. Il réitère sur les sous-répertoires. La profondeur par défaut est de 2. Pour modifier cette valeur, utilisez l'option depth.

hpf list --depth 3

Attention

Vous n'êtes pas censé exécuter le CLI avec des ensembles de modèles de données différents. Si c'est le cas, le premier ensemble trouvé sera utilisé.

Générer le code

hpf generate

Alias : hpf g

Cette commande génère tous les channels trouvés à partir de leurs templates et modèles de données. Pour définir la profondeur de la recherche de channels, utilisez cette option : --depth <n>. La valeur par défaut est 2.

hpf generate --depth 3

À savoir

Les fichiers générés vides ne seront pas sauvegardés.

Exporter le code

hpf export

Alias : hpf x

Cette commande génère un channel à partir de ses templates et de ses modèles de données puis sauvegarde les fichiers générés dans un fichier zip. Vous devez lancer cette commande à partir du répertoire du channel, au niveau du fichier hapify.json.

Par défaut, le fichier zip porte le nom du dossier du channel. Exemple : angular-admin/angular-admin.zip. Vous pouvez définir un chemin personnalisé avec cette option : -o, --output <path>.

hpf export -o /path/to/file.zip

À savoir

Les fichiers générés vides ne seront pas sauvegardés.

Importez des modèles de données

hpf import

Alias : hpf m

Utilisez cette commande pour importer des modèles de données prédéfinis depuis Hapify Cloud (appelés presets).

Importer des presets à partir d'ID

Vous pouvez également importer des préréglages à partir de leurs ID (visibles sur Hapify Hub)

hpf import --preset ab123 --preset bd456

Cloner un boilerplate et démarrer un nouveau projet

hpf new

Alias : hpf n

Cette commande vous permet de cloner et de configurer un boilerplate. Elle vous demandera de :

  • sélectionner un boilerplate
  • sélectionner ou créer le projet à utiliser
  • sélectionner des presets de modèles de données à importer

Options

  • -p <id>, --project <id>: Le projet à utiliser (s'il existe déjà)
  • -b <slug>, --boilerplate <slug> : Le slug du boilerplate à cloner
  • --boilerplate-id <id> : L'ID du boilerplate à cloner
  • --boilerplate-url [url] : Les URL git des boilerplates à cloner
  • --preset [id] : ID des presets à précharger dans le projet
  • --no-presets : Ne pas demander de presets
  • --project-name <name> : Le nom du projet à créer
  • --project-desc <description> : La description du projet à créer (le nom doit être défini)

Pour consulter les presets disponibles, visitez hub.hapify.io.

Créer un nouveau boilerplate/channel

hpf init

Alias : hpf i

Cette commande crée une nouvelle structure de fichiers Hapify dans le répertoire courant. Elle crée 2 fichiers hapify.json, hapify-models.json et un dossier .hapify contenant un template models/__kebab__/hello.js.hpf. Elle vous demandera de sélectionner ou de créer un projet.

Options

  • --channel-name <name> : Le nom du channel à initialiser
  • --channel-desc <description> : La description du channel à initialiser
  • --channel-logo <url> : L'URL du logo du channel à initialiser
  • --project-name <name> : Le nom du projet à créer
  • --project-desc <description> : La description du projet à créer

Définir le projet à utiliser dans un boilerplate/channel

hpf use

Alias : hpf u

Change le projet utilisé par un ou plusieurs channels existants. Change l'ID du projet dans le fichier hapify.json pour chaque channel trouvé. Elle vous demandera de sélectionner ou de créer le projet à utiliser.

Options

  • -p <id>, --project <id> : Le projet à utiliser (s'il est déjà créé)
  • --project-name <name> : Le nom du projet à créer
  • --project-desc <description> : La description du projet à créer

Appliquer un patch au code généré avec de nouveaux modèles de données

Au cours du processus de développement, vous pouvez ajouter, modifier ou supprimer certains modèles. Pour fusionner automatiquement la différence entre deux générations à votre branche de travail, utilisez cette commande.

Cette commande utilise git format-patch et git am.

hpf patch

Elle vous permettra de choisir la branche source et le commit, puis la branche de destination.

Démarrer la console

Exécutez cette commande pour modifier les modèles de données et les templates.

hpf serve

Ceci démarrera une console web pour l'édition des modèles de données et des templates.

Options

  • -p <n>, --port <n> : Le port requis (par défaut entre 4800 et 4820)
  • -H <hostname>, --hostname <hostname> : Le nom d'hôte requis (par défaut : localhost)
  • --no-open : Ne pas ouvrir un nouvel onglet dans le navigateur pour afficher la console
  • --depth <n> : Profondeur pour la recherche de channels (par défaut : 2)