synapse-storage
Version:
Набор инструментов для управления состоянием и апи-запросами
60 lines (58 loc) • 2.98 kB
JavaScript
/**
* @example
* ```typescript
* // Строгая проверка - выбросит ошибку при любых различиях
* const storage1 = new MemoryStorage({
* name: 'user',
* singleton: {
* enabled: true,
* mergeStrategy: ConfigMergeStrategy.STRICT
* },
* initialState: { name: 'John' }
* })
*
* // Глубокое слияние - объединит объекты
* const storage2 = new MemoryStorage({
* name: 'settings',
* singleton: {
* enabled: true,
* mergeStrategy: ConfigMergeStrategy.DEEP_MERGE
* },
* initialState: { theme: 'dark', notifications: { email: true } }
* })
* ```
*/ var models_ConfigMergeStrategy = /*#__PURE__*/ function(ConfigMergeStrategy) {
/**
* Строгая проверка - выбрасывает ошибку при любых отличиях в конфигурации
*
* Используйте когда требуется абсолютная идентичность конфигураций
* для обеспечения предсказуемого поведения
*/ ConfigMergeStrategy["STRICT"] = "strict";
/**
* Первая конфигурация побеждает - игнорирует последующие конфигурации
*
* **По умолчанию**. Безопасная стратегия, которая использует настройки
* первого созданного экземпляра и игнорирует все последующие
*/ ConfigMergeStrategy["FIRST_WINS"] = "first_wins";
/**
* Глубокое слияние объектов - рекурсивно объединяет initialState
*
* Полезно когда разные компоненты должны дополнять начальное состояние.
* Примитивные значения из первой конфигурации сохраняются
*/ ConfigMergeStrategy["DEEP_MERGE"] = "deep_merge";
/**
* Последняя конфигурация перезаписывает предыдущие (кроме name)
*
* **Осторожно!** Может привести к непредсказуемому поведению,
* так как результат зависит от порядка создания компонентов
*/ ConfigMergeStrategy["OVERRIDE"] = "override";
/**
* Предупреждение в консоли + использование первой конфигурации
*
* Как FIRST_WINS, но с подробными предупреждениями в консоли
* о конфликтующих настройках. Полезно для отладки
*/ ConfigMergeStrategy["WARN_AND_USE_FIRST"] = "warn_and_use_first";
return ConfigMergeStrategy;
}({});
export { models_ConfigMergeStrategy as ConfigMergeStrategy };
//# sourceMappingURL=models.js.map