createArrayOption
Creates an option that parses a delimited list into a typed array.
Example
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 }) => {
});Syntax
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
>Parameters
name(string) : option name used as--name.spec(EligibleSpec) : parser or clean spec for each array element.params(optional) : option metadata and array constraints.params.required(true, optional) : throws when option is missing.params.min(number, optional) : minimum number of values.params.max(number, optional) : maximum number of values.params.separator(string, default",") : input separator.params.description(string, optional) : help description.params.aliases(string[], optional) : short aliases.
Return value
- Required mode:
Option<GenericName, [..items]>. - Optional mode:
Option<GenericName, [..items] | undefined>.
Notes
- Primitive parsers and clean primitive contracts are coerced from CLI string input automatically.
See also
createOption- Builds a single-value option.createBooleanOption- Builds a boolean flag option.create- Builds a command using this option.
