@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_.
24 lines (19 loc) • 674 B
text/typescript
import { merge } from 'lodash'
import { ComputedRef, MaybeRef, computed, ref } from 'vue'
import { SchemaResponse } from '@/models'
import { mapper } from '@/services'
import { Schema } from '@/types'
export type UseOptionalPropertiesSchema = {
schema: ComputedRef<Schema>,
}
export function useOptionalPropertiesSchema(rawSchema: MaybeRef<SchemaResponse | Schema>): UseOptionalPropertiesSchema {
const rawSchemaRef = ref(rawSchema)
const computedSchema = computed(() => {
const newSchema = merge({}, rawSchemaRef.value)
newSchema.required = []
return mapper.map('SchemaResponse', newSchema, 'Schema')
})
return {
schema: computedSchema,
}
}