Skip to content

Commit 1703de6

Browse files
rokiyamasdirix
andauthored
Use MaybeReadOnly types for Vue root component props
It's recommended to freeze the 'renderers' prop when using JSON Forms Vue to improve performance. This commit extends the types of all props in the JSON Forms Vue root component which might be freezed by the user. Co-authored-by: Stefan Dirix <sdirix@eclipsesource.com>
1 parent 79288d2 commit 1703de6

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

packages/vue/vue/src/components/JsonForms.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import {
2525
i18nReducer,
2626
JsonFormsI18nState
2727
} from '@jsonforms/core';
28-
import { JsonFormsChangeEvent } from '../types';
28+
import { JsonFormsChangeEvent, MaybeReadonly } from '../types';
2929
import DispatchRenderer from './DispatchRenderer.vue';
3030
3131
import Ajv from 'ajv';
@@ -57,11 +57,11 @@ export default defineComponent({
5757
},
5858
renderers: {
5959
required: true,
60-
type: Array as PropType<JsonFormsRendererRegistryEntry[]>
60+
type: Array as PropType<MaybeReadonly<JsonFormsRendererRegistryEntry[]>>
6161
},
6262
cells: {
6363
required: false,
64-
type: Array as PropType<JsonFormsCellRendererRegistryEntry[]>,
64+
type: Array as PropType<MaybeReadonly<JsonFormsCellRendererRegistryEntry[]>>,
6565
default: () => []
6666
},
6767
config: {
@@ -76,7 +76,7 @@ export default defineComponent({
7676
},
7777
uischemas: {
7878
required: false,
79-
type: Array as PropType<JsonFormsUISchemaRegistryEntry[]>,
79+
type: Array as PropType<MaybeReadonly<JsonFormsUISchemaRegistryEntry[]>>,
8080
default: () => []
8181
},
8282
validationMode: {

packages/vue/vue/src/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,5 @@ export interface InjectJsonFormsDispatch {
1313
}
1414

1515
export type JsonFormsChangeEvent = Pick<JsonFormsCore, 'data' | 'errors'>
16+
17+
export type MaybeReadonly<T> = T | Readonly<T>

0 commit comments

Comments
 (0)