UNPKG

@prefecthq/prefect-ui-library

Version:

This library is the Vue and Typescript component library for [Prefect 2](https://github.com/PrefectHQ/prefect) and [Prefect Cloud 2](https://www.prefect.io/cloud/). _The components and utilities in this project are not meant to be used independently_.

44 lines (33 loc) 1.48 kB
import { isBlockDocumentReferenceValue } from '@/models/api/BlockDocumentCreateRequest' import { SchemaResolver } from '@/services/schemas/resolvers/schemas' import { getSchemaValueDefinition } from '@/services/schemas/utilities' import { Schema, SchemaProperties, SchemaProperty } from '@/types' import { mapValues } from '@/utilities/object' export const schemaBlockReferenceDefaultValuesResolver: SchemaResolver = (schema: Schema): Schema => { const { properties, ...rest } = schema const resolved: Schema = rest resolved.properties = resolveSchemaPropertyBlockReferenceDefaultValues(properties) return resolved } function resolveSchemaPropertyBlockReferenceDefaultValues(properties: SchemaProperties | undefined): SchemaProperties | undefined { if (!properties) { return undefined } return mapValues(properties, (key, property) => resolveSchemaPropertyBlockReferenceDefaultValue(property)) } function resolveSchemaPropertyBlockReferenceDefaultValue(property: SchemaProperty | undefined): SchemaProperty | undefined { if (!property) { return undefined } const resolved: SchemaProperty = { ...property } if (isBlockDocumentReferenceValue(property.default)) { const definition = getSchemaValueDefinition(property, property.default) if (definition) { resolved.default = { blockDocumentId: property.default.$ref.block_document_id, blockTypeSlug: definition.blockTypeSlug, } } } return resolved }