createArrayOption
Crée une option qui parse une liste séparée en tableau typé.
Exemple
ts
import { SC } from "@duplojs/server-utils";
import { C, DP } from "@duplojs/utils";
const UserId = C.createNewType("user-id", DP.number(), C.Positive);
await SC.exec({
options: [
SC.createArrayOption(
"tags",
DP.string(),
),
SC.createArrayOption(
"files",
DP.string(),
{
required: true,
min: 1,
separator: ";",
},
),
SC.createArrayOption("emails", C.Email),
SC.createArrayOption("userIds", UserId),
],
}, ({ options }) => {
});Syntaxe
typescript
function createArrayOption<
GenericName extends string,
GenericSpec extends EligibleSpec,
GenericMinValues extends number
>(
name: GenericName,
spec: GenericSpec,
params: {
description?: string
aliases?: readonly string[]
min?: GenericMinValues
max?: number
required: true
separator?: string
}
): Option<
GenericName,
[
...A.CreateTuple<ComputeOptionSpec<GenericSpec>, GenericMinValues>,
...ComputeOptionSpec<GenericSpec>[]
]
>
function createArrayOption<
GenericName extends string,
GenericSpec extends EligibleSpec,
GenericMinValues extends number
>(
name: GenericName,
spec: GenericSpec,
params?: {
description?: string
aliases?: readonly string[]
min?: GenericMinValues
max?: number
separator?: string
}
): Option<
GenericName,
| [
...A.CreateTuple<ComputeOptionSpec<GenericSpec>, GenericMinValues>,
...ComputeOptionSpec<GenericSpec>[]
]
| undefined
>Paramètres
name(string) : nom de l'option utilisé comme--name.spec(EligibleSpec) : parseur ou spec clean pour chaque élément du tableau.params(optionnel) : métadonnées et contraintes de tableau.params.required(true, optionnel) : déclenche une erreur si l'option est absente.params.min(number, optionnel) : nombre minimal de valeurs.params.max(number, optionnel) : nombre maximal de valeurs.params.separator(string, par défaut",") : séparateur d'entrée.params.description(string, optionnel) : description dans le help.params.aliases(string[], optionnel) : alias courts.
Valeur de retour
- Mode requis:
Option<GenericName, [..items]>. - Mode optionnel:
Option<GenericName, [..items] | undefined>.
Notes
- Les parsers primitifs et les contrats clean primitifs sont coercés automatiquement depuis l'entrée CLI en chaîne.
Voir aussi
createOption- Construit une option à valeur unique.createBooleanOption- Construit une option drapeau booléenne.create- Construit une commande utilisant cette option.
