UNPKG

webcm

Version:

Demonstrative implementation of a web-based manager for utilising Managed Components

27 lines (22 loc) 672 B
import { z } from 'zod' import path from 'path' export const ManifestShape = z.object({ name: z.string(), description: z.string(), allowCustomFields: z.oboolean(), permissions: z.record( z.object({ description: z.string(), required: z.boolean() }) ), }) export type Manifest = z.infer<typeof ManifestShape> export function isManifest(obj: Record<string, unknown>): obj is Manifest { return ManifestShape.safeParse(obj).success } export function mockManifest(componentPath: string): Manifest { return { name: path.basename(componentPath), permissions: {}, description: 'Imported from ' + componentPath, allowCustomFields: false, } }