Member Junction
    Preparing search index...

    Function RegisterForStartup

    • 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

      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
      // 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);
      }
      }
    • Decorator to mark a singleton class for automatic loading at application startup. Similar naming convention to

      Parameters

      Returns <T extends StartupClassConstructor>(constructor: T) => T

      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
      // 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);
      }
      }