Skip to content

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>
): Command

Paramè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çoit options typées et subject typé optionnel.

Valeur de retour

  • Command : objet commande exécutable avec execute(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.

Diffusé sous licence MIT.