1use crate::options::LocksOptions;
2use crate::LocksService;
3use axum::Router;
4use nestrs_core::{DynamicModule, ProviderRegistry};
5use std::any::TypeId;
6use std::sync::Arc;
7
8pub struct LocksModule;
9
10impl LocksModule {
11 pub fn register(options: LocksOptions) -> DynamicModule {
12 let mut registry = ProviderRegistry::new();
13 let service = Arc::new(LocksService::from_options(&options));
14 registry.register_use_value::<LocksService>(service);
15 registry.register_use_value::<LocksOptions>(Arc::new(options));
16 DynamicModule::from_parts(
17 registry,
18 Router::new(),
19 vec![TypeId::of::<LocksService>(), TypeId::of::<LocksOptions>()],
20 )
21 }
22}