@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_.
28 lines (22 loc) • 865 B
text/typescript
import { BlockDocumentReferencesResponse, BlockDocumentValue } from '@/models'
import { isSchemaValues, SchemaValues } from '@/types/schemas'
import { mapValues } from '@/utilities'
export function schemaValuesBlockReferencesResolver(values: SchemaValues, references: BlockDocumentReferencesResponse | undefined): SchemaValues {
if (references === undefined || Object.keys(references).length === 0) {
return values
}
return mapValues(values, (key, value) => {
const reference = references[key]
if (reference) {
const resolved: BlockDocumentValue = {
blockTypeSlug: reference.block_document.block_type.slug,
blockDocumentId: reference.block_document.id,
}
return resolved
}
if (isSchemaValues(value)) {
return schemaValuesBlockReferencesResolver(value, references)
}
return value
})
}