lazy() function
Home > @rimitive/core > lazy
lazy() function
Section titled “lazy() function”Mark a module with async create() as lazy.
Lazy modules are awaited during composition. When compose() includes lazy modules, it returns a Promise that resolves after all async modules are initialized.
Signature:
export declare function lazy<TName extends string, TImpl, TDeps>(module: Module<TName, Promise<TImpl>, TDeps>): LazyModule<TName, TImpl, TDeps>;Parameters
Section titled “Parameters”|
Parameter |
Type |
Description |
|---|---|---|
|
module |
Module<TName, Promise<TImpl>, TDeps> |
Returns:
LazyModule<TName, TImpl, TDeps>
Example
Section titled “Example”const DbModule = defineModule({ name: 'db', create: async () => { const pool = await createPool(); await pool.connect(); return pool; },});
// Must wrap async modules with lazy()const svc = await compose(lazy(DbModule), CacheModule);
// After await, db is fully resolved - sync accesssvc.db.query('SELECT 1');