@@ -17,31 +17,21 @@ import FieldReset from '@/fields/core/FieldReset.vue'
1717import FieldButton from '@/fields/core/FieldButton.vue'
1818
1919
20- const fieldComponents : Component [ ] = [
20+ const fieldComponents = {
2121 FieldColor, FieldText, FieldCheckBox, FieldPassword, FieldSelect, FieldSelectNative, FieldRadio,
2222 FieldNumber, FieldSubmit, FieldReset, FieldButton, FieldSwitch, FieldTextarea, FieldMask
2323]
24+ } as const
2425
25- export default {
26- install ( app : App , aliases : Record < string , string > ) {
27- for ( const fieldComponent of fieldComponents ) {
28- let componentName
29-
30- if ( 'name' in fieldComponent ) {
31- componentName = fieldComponent . name
32- } else {
33- /** Composition API components */
34- componentName = fieldComponent . __name
35- }
26+ type FieldComponentNames = keyof typeof fieldComponents
3627
37- if ( ! componentName ) throw new Error ( 'Something went wrong' )
28+ export default {
29+ install ( app : App , aliases : Partial < Record < FieldComponentNames , string > > ) {
30+ const componentEntries = Object . entries ( fieldComponents ) as [ FieldComponentNames , Component ] [ ]
3831
39- const alias = aliases [ componentName ]
40- if ( alias ) {
41- app . component ( alias , fieldComponent )
42- } else {
43- app . component ( componentName , fieldComponent )
44- }
32+ for ( const [ name , component ] of componentEntries ) {
33+ const alias : string | undefined = aliases [ name ]
34+ app . component ( alias ?? name , component )
4535 }
4636 }
4737}
0 commit comments