create
create sert à déclarer une commande CLI. Vous donnez un nom et une fonction à exécuter. Vous pouvez aussi ajouter des options, un sujet (arguments positionnels), ou des sous-commandes.
Exemple
ts
import { SC } from "@duplojs/server-utils";
const helloCommand = SC.create(
"hello",
() => {
console.log("hello");
},
);Syntaxe
typescript
function create(
name: string,
execute: () => void
): Command
function create<
GenericOptions extends readonly Option[],
GenericSubject extends Subject
>(
name: string,
params: CreateCommandParams<GenericOptions, GenericSubject>,
execute: (
params: CreateCommandExecuteParams<GenericOptions, GenericSubject>
) => MaybePromise<void>
): CommandParamètres
name(string) : nom de la commande pour le matching et le rendu du help.params(CreateCommandParams, optionnel) : configuration de la commande.params.description(string, optionnel) : description affichée dans le help.params.options(Option[], optionnel) : parseurs d'options.params.subject(Subject | Command[], optionnel) : parser de données positionnelles ou liste de sous-commandes.execute: handler de commande. Reçoitoptionstypées etsubjecttypé optionnel.
Valeur de retour
Command: objet commande exécutable avecexecute(args).
Autres exemples
Avancé
ts
import { SC } from "@duplojs/server-utils";
import { DP, type ExpectType } from "@duplojs/utils";
const deployCommand = SC.create(
"deploy",
{
description: "Deploy the current release",
options: [
SC.createOption(
"environment",
DP.literal(["staging", "prod"]),
{ required: true },
),
],
subject: DP.union([
DP.templateLiteral([
"v",
DP.number(),
".",
DP.number(),
".",
DP.number(),
]),
DP.literal("latest"),
]),
},
({ options: { environment }, subject }) => {
type check = ExpectType<
typeof subject,
`v${number}.${number}.${number}` | "latest",
"strict"
>;
type checkOption = ExpectType<
typeof environment,
"staging" | "prod",
"strict"
>;
},
);
const releaseCommand = SC.create(
"release",
{
subject: [deployCommand],
},
() => {
console.log("select a release sub-command");
},
);Voir aussi
exec- Exécute une commande racine depuis les arguments du process.createOption- Construit une option à valeur unique.createArrayOption- Construit une option tableau.
