Initial Commit
This commit is contained in:
38
packages/devtools/tooling/cli/src/parser/parser.schemas.ts
Normal file
38
packages/devtools/tooling/cli/src/parser/parser.schemas.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import z from "zod";
|
||||
|
||||
export const OptionTypeSchema = z.enum([
|
||||
"string",
|
||||
"boolean",
|
||||
"number",
|
||||
"array",
|
||||
]);
|
||||
|
||||
export const OptionConfigSchema = z.object({
|
||||
type: OptionTypeSchema.optional(),
|
||||
short: z.string().optional(),
|
||||
description: z.string().optional(),
|
||||
default: z.unknown().optional(),
|
||||
required: z.boolean().optional(),
|
||||
choices: z.array(z.string()).optional(),
|
||||
});
|
||||
|
||||
export const ArgumentConfigSchema = z.object({
|
||||
name: z.string(),
|
||||
description: z.string().optional(),
|
||||
required: z.boolean(),
|
||||
variadic: z.boolean(),
|
||||
default: z.unknown().optional(),
|
||||
});
|
||||
|
||||
export const ParserConfigSchema = z.object({
|
||||
options: z.record(z.string(), OptionConfigSchema).optional(),
|
||||
arguments: z.array(ArgumentConfigSchema).optional(),
|
||||
allowUnknown: z.boolean().optional(),
|
||||
stopEarly: z.boolean().optional(),
|
||||
});
|
||||
|
||||
export const ParsedArgsSchema = z.object({
|
||||
options: z.record(z.string(), z.unknown()),
|
||||
positionals: z.record(z.string(), z.unknown()),
|
||||
rest: z.array(z.string()),
|
||||
});
|
||||
Reference in New Issue
Block a user