Skip to content

Commit

Permalink
fix(Metadata): generic AttributeMetadata
Browse files Browse the repository at this point in the history
  • Loading branch information
wmakeev committed Aug 24, 2022
1 parent 3fd992f commit 06b1641
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 18 deletions.
35 changes: 17 additions & 18 deletions src/model/Metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,26 +21,25 @@ export type MetadataMeta<T extends MetadataMetaType = MetadataMetaType> = {
}
}

export type AttributeMetadata = Entity<'attributemetadata'> & {
/** Наименование пользовательского поля */
readonly name: string
export type AttributeMetadata<T extends AttributeType = AttributeType> =
Entity<'attributemetadata'> & {
/** Наименование пользовательского поля */
readonly name: string

readonly required: boolean
readonly required: boolean

// TODO Только для документов (нужно разделять ради этого?)
readonly show: boolean
} & (
| {
/** Тип значения пользовательского поля */
readonly type: 'customentity'

readonly customEntityMeta: Meta<'customentitymetadata'>
}
| {
/** Тип значения пользовательского поля */
readonly type: Exclude<AttributeType, 'customentity'>
}
)
// TODO Только для документов (нужно разделять ради этого?)
readonly show: boolean
} & (T extends 'customentity'
? {
/** Тип значения пользовательского поля */
readonly type: T
readonly customEntityMeta: Meta<'customentitymetadata'>
}
: {
/** Тип значения пользовательского поля */
readonly type: T
})

export type DocumentMetadata<T extends DocumentMetaType = DocumentMetaType> =
MetadataMeta<T> & {
Expand Down
5 changes: 5 additions & 0 deletions test/model/Metadata.test-d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,8 @@ t6.customEntityMeta.type
if (t6.type === 'customentity') {
expectType<'customentitymetadata'>(t6.customEntityMeta.type)
}

const t7 = {} as AttributeMetadata<'customentity'>

expectType<'customentity'>(t7.type)
expectType<'customentitymetadata'>(t7.customEntityMeta.type)

0 comments on commit 06b1641

Please sign in to comment.