setupServiceLocator function
Future<void>
setupServiceLocator(
)
Implementation
Future<void> setupServiceLocator() async {
await _initLock.synchronized(() {
if (_isInitialized) {
return; // Prevent double initialization
}
// Register core utilities as factory (stateless)
getIt
..registerFactory<CheckNumeric>(() => CheckNumeric())
..registerFactory<IFocusNode>(() => FlutterFocusNodeAdapter.create())
// Register data sources
..registerFactory<FormDataSource>(() => FormJsonDataSource())
// Register repositories
..registerFactory<FormUiBuilderRepository>(
() => FormUiBuilderRepositoryImpl(dataSource: getIt()),
)
// Register use cases as factory (stateless operations)
..registerFactory<BuildParameterMap>(
() => BuildParameterMap(focusNodeFactory: () => getIt<IFocusNode>()),
)
..registerFactory<BuildFormLogicBundle>(
() => BuildFormLogicBundle(
repository: getIt(),
buildParameterMap: getIt(),
),
)
..registerFactory<BuildFormLogicBundleFromParameterMap>(
() => BuildFormLogicBundleFromParameterMap(buildParameterMap: getIt()),
)
..registerFactory<ValidateTextFieldValue>(
() => ValidateTextFieldValue(checkNumeric: getIt()),
)
..registerFactory<UpdateFieldWithDependencies>(
() => UpdateFieldWithDependencies(),
)
..registerFactory<ValidateFieldOnBlur>(() => ValidateFieldOnBlur())
..registerFactory<UpdateVisibilityState>(() => UpdateVisibilityState())
..registerFactory<ValidationOnSubmit>(() => ValidationOnSubmit());
_isInitialized = true;
});
}