UNPKG

@factorialco/shadowdog

Version:

<img src="https://raw.githubusercontent.com/factorialco/shadowdog/refs/heads/main/logo.png" alt="drawing" width="100"/>

366 lines (365 loc) 11.8 kB
import { z } from 'zod'; export declare const configSchema: z.ZodObject<{ $schema: z.ZodOptional<z.ZodString>; debounceTime: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; defaultIgnoredFiles: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>; plugins: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"name", [z.ZodObject<{ name: z.ZodLiteral<"shadowdog-rake">; options: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>; }, "strip", z.ZodTypeAny, { name: "shadowdog-rake"; options?: {} | undefined; }, { name: "shadowdog-rake"; options?: {} | undefined; }>, z.ZodObject<{ name: z.ZodLiteral<"shadowdog-local-cache">; options: z.ZodDefault<z.ZodObject<{ path: z.ZodDefault<z.ZodString>; read: z.ZodDefault<z.ZodBoolean>; write: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { path: string; read: boolean; write: boolean; }, { path?: string | undefined; read?: boolean | undefined; write?: boolean | undefined; }>>; }, "strip", z.ZodTypeAny, { options: { path: string; read: boolean; write: boolean; }; name: "shadowdog-local-cache"; }, { name: "shadowdog-local-cache"; options?: { path?: string | undefined; read?: boolean | undefined; write?: boolean | undefined; } | undefined; }>, z.ZodObject<{ name: z.ZodLiteral<"shadowdog-remote-aws-s3-cache">; options: z.ZodObject<{ path: z.ZodDefault<z.ZodString>; bucketName: z.ZodString; read: z.ZodDefault<z.ZodBoolean>; write: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { path: string; read: boolean; write: boolean; bucketName: string; }, { bucketName: string; path?: string | undefined; read?: boolean | undefined; write?: boolean | undefined; }>; }, "strip", z.ZodTypeAny, { options: { path: string; read: boolean; write: boolean; bucketName: string; }; name: "shadowdog-remote-aws-s3-cache"; }, { options: { bucketName: string; path?: string | undefined; read?: boolean | undefined; write?: boolean | undefined; }; name: "shadowdog-remote-aws-s3-cache"; }>, z.ZodObject<{ name: z.ZodLiteral<"shadowdog-tag">; options: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>; }, "strip", z.ZodTypeAny, { name: "shadowdog-tag"; options?: {} | undefined; }, { name: "shadowdog-tag"; options?: {} | undefined; }>, z.ZodObject<{ name: z.ZodLiteral<"shadowdog-tree">; options: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>; }, "strip", z.ZodTypeAny, { name: "shadowdog-tree"; options?: {} | undefined; }, { name: "shadowdog-tree"; options?: {} | undefined; }>, z.ZodObject<{ name: z.ZodLiteral<"shadowdog-socket">; options: z.ZodDefault<z.ZodObject<{ path: z.ZodDefault<z.ZodString>; }, "strip", z.ZodTypeAny, { path: string; }, { path?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { options: { path: string; }; name: "shadowdog-socket"; }, { name: "shadowdog-socket"; options?: { path?: string | undefined; } | undefined; }>, z.ZodObject<{ name: z.ZodLiteral<"shadowdog-git">; options: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>; }, "strip", z.ZodTypeAny, { name: "shadowdog-git"; options?: {} | undefined; }, { name: "shadowdog-git"; options?: {} | undefined; }>, z.ZodObject<{ name: z.ZodLiteral<"shadowdog-lock">; options: z.ZodDefault<z.ZodObject<{ path: z.ZodDefault<z.ZodString>; }, "strip", z.ZodTypeAny, { path: string; }, { path?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { options: { path: string; }; name: "shadowdog-lock"; }, { name: "shadowdog-lock"; options?: { path?: string | undefined; } | undefined; }>]>, "many">>>; watchers: z.ZodArray<z.ZodObject<{ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; files: z.ZodDefault<z.ZodArray<z.ZodString, "many">>; invalidators: z.ZodDefault<z.ZodObject<{ files: z.ZodDefault<z.ZodArray<z.ZodString, "many">>; environment: z.ZodDefault<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { files: string[]; environment: string[]; }, { files?: string[] | undefined; environment?: string[] | undefined; }>>; ignored: z.ZodDefault<z.ZodArray<z.ZodString, "many">>; label: z.ZodOptional<z.ZodString>; commands: z.ZodArray<z.ZodObject<{ command: z.ZodString; workingDirectory: z.ZodDefault<z.ZodString>; tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>; artifacts: z.ZodDefault<z.ZodArray<z.ZodObject<{ output: z.ZodString; description: z.ZodOptional<z.ZodString>; ignore: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strict", z.ZodTypeAny, { output: string; description?: string | undefined; ignore?: string[] | undefined; }, { output: string; description?: string | undefined; ignore?: string[] | undefined; }>, "many">>; }, "strict", z.ZodTypeAny, { command: string; workingDirectory: string; tags: string[]; artifacts: { output: string; description?: string | undefined; ignore?: string[] | undefined; }[]; }, { command: string; workingDirectory?: string | undefined; tags?: string[] | undefined; artifacts?: { output: string; description?: string | undefined; ignore?: string[] | undefined; }[] | undefined; }>, "many">; }, "strict", z.ZodTypeAny, { enabled: boolean; files: string[]; invalidators: { files: string[]; environment: string[]; }; ignored: string[]; commands: { command: string; workingDirectory: string; tags: string[]; artifacts: { output: string; description?: string | undefined; ignore?: string[] | undefined; }[]; }[]; label?: string | undefined; }, { commands: { command: string; workingDirectory?: string | undefined; tags?: string[] | undefined; artifacts?: { output: string; description?: string | undefined; ignore?: string[] | undefined; }[] | undefined; }[]; enabled?: boolean | undefined; files?: string[] | undefined; invalidators?: { files?: string[] | undefined; environment?: string[] | undefined; } | undefined; ignored?: string[] | undefined; label?: string | undefined; }>, "many">; }, "strict", z.ZodTypeAny, { debounceTime: number; defaultIgnoredFiles: string[]; plugins: ({ name: "shadowdog-rake"; options?: {} | undefined; } | { options: { path: string; read: boolean; write: boolean; }; name: "shadowdog-local-cache"; } | { options: { path: string; read: boolean; write: boolean; bucketName: string; }; name: "shadowdog-remote-aws-s3-cache"; } | { name: "shadowdog-tag"; options?: {} | undefined; } | { name: "shadowdog-tree"; options?: {} | undefined; } | { options: { path: string; }; name: "shadowdog-socket"; } | { name: "shadowdog-git"; options?: {} | undefined; } | { options: { path: string; }; name: "shadowdog-lock"; })[]; watchers: { enabled: boolean; files: string[]; invalidators: { files: string[]; environment: string[]; }; ignored: string[]; commands: { command: string; workingDirectory: string; tags: string[]; artifacts: { output: string; description?: string | undefined; ignore?: string[] | undefined; }[]; }[]; label?: string | undefined; }[]; $schema?: string | undefined; }, { watchers: { commands: { command: string; workingDirectory?: string | undefined; tags?: string[] | undefined; artifacts?: { output: string; description?: string | undefined; ignore?: string[] | undefined; }[] | undefined; }[]; enabled?: boolean | undefined; files?: string[] | undefined; invalidators?: { files?: string[] | undefined; environment?: string[] | undefined; } | undefined; ignored?: string[] | undefined; label?: string | undefined; }[]; $schema?: string | undefined; debounceTime?: number | undefined; defaultIgnoredFiles?: string[] | undefined; plugins?: ({ name: "shadowdog-rake"; options?: {} | undefined; } | { name: "shadowdog-local-cache"; options?: { path?: string | undefined; read?: boolean | undefined; write?: boolean | undefined; } | undefined; } | { options: { bucketName: string; path?: string | undefined; read?: boolean | undefined; write?: boolean | undefined; }; name: "shadowdog-remote-aws-s3-cache"; } | { name: "shadowdog-tag"; options?: {} | undefined; } | { name: "shadowdog-tree"; options?: {} | undefined; } | { name: "shadowdog-socket"; options?: { path?: string | undefined; } | undefined; } | { name: "shadowdog-git"; options?: {} | undefined; } | { name: "shadowdog-lock"; options?: { path?: string | undefined; } | undefined; })[] | undefined; }>; export type ConfigFile = z.infer<typeof configSchema>; export type WatcherConfig = ConfigFile['watchers'][number]; export type CommandConfig = WatcherConfig['commands'][number]; export type ArtifactConfig = NonNullable<CommandConfig['artifacts']>[number]; export type PluginsConfig = ConfigFile['plugins']; export type InvalidatorConfig = WatcherConfig['invalidators']; export declare const loadConfig: (configFilePath: string) => ConfigFile;