refactor: optimize mapFields caching in JSONLogicSearchClassBase (#23686)

This commit is contained in:
Aniket Katkar 2025-10-02 17:26:13 +05:30 committed by GitHub
parent d567935667
commit 5e09fc6e15
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 6 deletions

View File

@ -17,7 +17,7 @@
"account": "Аккаунт",
"account-email": "Адрес электронной почты",
"account-name": "Наименование аккаунта",
"acknowledged": "Признанный",
"acknowledged": "Признанный",
"action": "Действие",
"action-plural": "Действия",
"action-required": "Требуется действие",
@ -2591,9 +2591,9 @@
"user-mentioned-in-comment": "{{user}} упомянул(а) вас в комментарии.",
"user-verified-successfully": "Пользователь проверен",
"valid-url-endpoint": "Конечные точки должны быть действительным URL",
"valid-urls-required": "Пожалуйста, введите действительные URL (например, https://example.com)",
"validation-error-assets": "Пожалуйста, проверьте добавляемые объекты",
"value-must-be-greater-than": "Значение «{{field}}» должно быть больше чем {{minimum}}",
"valid-urls-required": "Пожалуйста, введите действительные URL (например, https://example.com)",
"value-should-equal-to-value": "Значение должно быть равно {{value}}.",
"value-should-not-equal-to-value": "Значение не должно быть равно {{value}}.",
"version-released-try-now": "Выпущена версия {{version}} <0>Посмотрите, что нового!</0>",
@ -2683,4 +2683,4 @@
"unexpected-response": "Неожиданный ответ от сервера.",
"update-entity-success": "Объект «{{entity}}» обновлен."
}
}
}

View File

@ -183,7 +183,7 @@ class JSONLogicSearchClassBase {
},
};
mapFields: Record<string, FieldOrGroup>;
private _mapFieldsCache?: Record<string, FieldOrGroup>;
defaultSelectOperators = [
'select_equals',
@ -194,8 +194,12 @@ class JSONLogicSearchClassBase {
'is_not_null',
];
constructor() {
this.mapFields = {
public get mapFields(): Record<string, FieldOrGroup> {
if (this._mapFieldsCache) {
return this._mapFieldsCache;
}
this._mapFieldsCache = {
[EntityReferenceFields.SERVICE]: {
label: t('label.service'),
type: 'select',
@ -419,6 +423,8 @@ class JSONLogicSearchClassBase {
},
},
};
return this._mapFieldsCache;
}
public getMapFields = () => {