Skip to content

createArrayOption

Crée une option qui parse une liste séparée en tableau typé.

Exemple

ts
import { 
SC
} from "@duplojs/server-utils";
import {
DP
, type
ExpectType
} from "@duplojs/utils";
const
command
=
SC
.
create
(
"batch", {
options
: [
SC
.
createArrayOption
(
"tags",
DP
.
string
(),
),
SC
.
createArrayOption
(
"files",
DP
.
string
(),
{
required
: true,
min
: 1,
separator
: ";",
}, ), ], }, ({
options
}) => {
type
check
=
ExpectType
<
typeof
options
,
{
tags
: string[] | undefined;
files
: [string, ...string[]];
}, "strict" >; }, ); await
command
.
execute
([
"--tags=api,docs", "--files=src/a.ts;src/b.ts", ]);

Syntaxe

typescript
function createArrayOption<
  GenericName extends string,
  GenericSchema extends EligibleDataParser,
  GenericMinValues extends number
>(
  name: GenericName,
  schema: GenericSchema,
  params: {
    description?: string
    aliases?: readonly string[]
    min?: GenericMinValues
    max?: number
    required: true
    separator?: string
  }
): Option<
  GenericName,
  [
    ...A.CreateTuple<DP.Output<GenericSchema>, GenericMinValues>,
    ...DP.Output<GenericSchema>[]
  ]
>

function createArrayOption<
  GenericName extends string,
  GenericSchema extends EligibleDataParser,
  GenericMinValues extends number
>(
  name: GenericName,
  schema: GenericSchema,
  params?: {
    description?: string
    aliases?: readonly string[]
    min?: GenericMinValues
    max?: number
    separator?: string
  }
): Option<
  GenericName,
  | [
      ...A.CreateTuple<DP.Output<GenericSchema>, GenericMinValues>,
      ...DP.Output<GenericSchema>[]
    ]
  | undefined
>

Paramètres

  • name (string) : nom de l'option utilisé comme --name.
  • schema (EligibleDataParser) : parseur de 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>.

Voir aussi

Diffusé sous licence MIT.