UNPKG

@mondaycom/apps-cli

Version:

A cli tool to manage apps (and monday-code projects) in monday.com

42 lines (41 loc) 1.28 kB
import { z } from 'zod'; import { getValidAppFeatureTypes } from '../app-feature-types-service.js'; import { BUILD_TYPES_MANIFEST_FORMAT } from '../../types/services/app-features-service.js'; import { ManifestHostingType } from '../../types/services/manifest-service.js'; const ManifestHostingSchema = z .object({ type: z.nativeEnum(ManifestHostingType), path: z.string(), }) .strict(); export const ManifestFeatureSchema = z.object({ type: z.string().refine(val => getValidAppFeatureTypes().includes(val), val => ({ message: `Unknown app feature type: ${val}`, })), name: z.string().optional(), build: z .object({ source: z.nativeEnum(BUILD_TYPES_MANIFEST_FORMAT), suffix: z.string().optional(), }) .optional(), }); export const ManifestFileSchema = z .object({ version: z.string(), app: z .object({ id: z.string().optional(), name: z.string().optional(), hosting: z .object({ cdn: ManifestHostingSchema.optional(), server: ManifestHostingSchema.optional(), }) .strict() .optional(), features: z.array(ManifestFeatureSchema).optional(), }) .strict(), }) .strict();