lean4-code-actions
Version:
Refactorings and snippets for Lean 4
30 lines (21 loc) • 1.06 kB
text/typescript
import { getDuplicatesRefinement } from 'libs/utils/zod'
import { z } from 'zod'
import { GenericArtifactSchema, GenericArtifactUidSchema } from './GenericArtifact'
export const BooleanArtifactSchema = GenericArtifactSchema.extend({
type: z.literal('BooleanArtifact'),
value: z.boolean(),
})
export const BooleanArtifactsSchema = z.array(BooleanArtifactSchema)
.superRefine(getDuplicatesRefinement('Artifact', getBooleanArtifactUid))
export const BooleanArtifactUidSchema = GenericArtifactUidSchema
export type BooleanArtifact = z.infer<typeof BooleanArtifactSchema>
export type BooleanArtifactUid = z.infer<typeof BooleanArtifactUidSchema>
export function validateBooleanArtifact(artifact: BooleanArtifact): BooleanArtifact {
return BooleanArtifactSchema.parse(artifact)
}
export function validateBooleanArtifacts(artifacts: BooleanArtifact[]): BooleanArtifact[] {
return BooleanArtifactsSchema.parse(artifacts)
}
export function getBooleanArtifactUid(artifactUid: BooleanArtifactUid) {
return BooleanArtifactUidSchema.parse(artifactUid)
}