Skip to content

Commit 67c5e56

Browse files
committed
refactor: plugin install
1 parent 4b2514e commit 67c5e56

File tree

1 file changed

+9
-19
lines changed

1 file changed

+9
-19
lines changed

src/fields/index.ts

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,31 +17,21 @@ import FieldReset from '@/fields/core/FieldReset.vue'
1717
import 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

Comments
 (0)