Skip to content

createArgument

Crée un parseur d'argument positionnel à utiliser dans subjects.

Exemple

ts
import { 
SC
} from "@duplojs/server-utils";
import {
DP
} from "@duplojs/utils";
const
sourceArgument
=
SC
.
createArgument
(
"source",
DP
.
string
(),
{
description
: "Source file path",
}, ); const
targetArgument
=
SC
.
createArgument
(
"target",
DP
.
string
(),
{
description
: "Target file path",
optional
: true,
}, );
SC
.
create
(
"copy", {
subjects
: [
sourceArgument
,
targetArgument
],
}, ({
args
}) => {
console
.
log
("copy from",
args
.
source
, "to",
args
.
target
?? "(stdout)");
}, );

Syntaxe

typescript
function createArgument<
  GenericName extends string,
  GenericSpec extends EligibleSpec
>(
  name: GenericName,
  spec: GenericSpec,
  params?: {
    description?: string
    optional?: false
  }
): Argument<GenericName, EligibleSpecOutput<GenericSpec>>

function createArgument<
  GenericName extends string,
  GenericSpec extends EligibleSpec
>(
  name: GenericName,
  spec: GenericSpec,
  params?: {
    description?: string
    optional: boolean
  }
): Argument<GenericName, EligibleSpecOutput<GenericSpec> | undefined>

Paramètres

  • name (string) : clé d'argument exposée dans args.
  • spec (EligibleSpec) : spec parser/clean utilisée pour parser et valider la valeur positionnelle reçue.
  • params (optionnel) : métadonnées de l'argument.
  • params.description (string, optionnel) : description dans le help.
  • params.optional (boolean, défaut false) : autorise l'absence de l'argument.

Valeur de retour

  • Argument : définition d'argument à placer dans subjects de create ou exec.

Notes

  • Les arguments positionnels sont consommés dans l'ordre de déclaration.
  • Dans les handlers d'exécution, les valeurs parsées sont disponibles via args.<name>.
  • Utiliser uniquement des valeurs EligibleSpec (specs primitives, literals, unions, pipe/transform, file, specs clean).

Voir aussi

  • create - Construit un noeud de commande avec subjects.
  • exec - Exécute une commande racine depuis les arguments du process.

Diffusé sous licence MIT.