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 dansargs.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éfautfalse) : autorise l'absence de l'argument.
Valeur de retour
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).
