• Decorator to mark a singleton class for automatic loading at application startup. Similar naming convention to

    Type Parameters

    • T extends StartupClassConstructor

    Parameters

    • constructor: T

    Returns T

    Register Class

    for consistency.

    The decorated class must:

    1. Implement IStartupSink interface
    2. Have a static 'Instance' property (singleton pattern)

    This decorator also prevents tree-shaking by creating a runtime reference to the class during module initialization.

    Can be used with or without parentheses:

    • @RegisterForStartup - uses default options
    • @RegisterForStartup() - uses default options
    • @RegisterForStartup({ priority: 10 }) - uses custom options

    Example

    // With options
    @RegisterForStartup({ priority: 10, severity: 'fatal', description: 'Encryption services' })
    class EncryptionEngine extends BaseEngine<EncryptionEngine> implements IStartupSink {
    public async HandleStartup(contextUser?: UserInfo, provider?: IMetadataProvider): Promise<void> {
    await this.Config(false, contextUser, provider);
    }
    }

    // Without options (uses defaults)
    @RegisterForStartup
    class SimpleEngine extends BaseEngine<SimpleEngine> implements IStartupSink {
    public async HandleStartup(contextUser?: UserInfo, provider?: IMetadataProvider): Promise<void> {
    await this.Config(false, contextUser, provider);
    }
    }
  • Parameters

    Returns (<T>(constructor) => T)

      • <T>(constructor): T
      • Type Parameters

        • T extends StartupClassConstructor

        Parameters

        • constructor: T

        Returns T