@rotomeca/utils - v7.0.3
    Preparing search index...

    Class AStartObjectAbstract

    Classe de base abstraite fournissant un cycle de vie structuré : initialisation puis exécution.

    Les sous-classes doivent surcharger _p_init et _p_main pour injecter leur logique métier. Le cycle de vie est déclenché via la méthode statique Start, seul point d'entrée prévu pour instancier un AStartObject.

    class MyService extends AStartObject {
    private port!: number;

    protected _p_init(port: number): void {
    this.port = port;
    }

    protected _p_main(): void {
    console.log(`Listening on port ${this.port}`);
    }
    }

    MyService.Start(3000);
    // Output: Listening on port 3000
    Index

    Constructors

    Methods

    Constructors

    Methods

    • Hook d'initialisation, appelé une seule fois avant _p_main.

      Surchargez cette méthode pour effectuer le travail de setup (chargement de configuration, injection de dépendances, etc.).

      Parameters

      • ...args: unknown[]

        Arguments transmis depuis Start.

      Returns void

      protected _p_init(port: number): void {
      this.port = port;
      }
    • Hook d'exécution principale, appelé une seule fois après _p_init.

      Surchargez cette méthode pour implémenter la logique cœur de l'objet (démarrage d'un serveur, lancement d'un processus, etc.).

      Returns void

      protected _p_main(): void {
      this.server.listen(this.port);
      }
    • Méthode factory statique : instancie la sous-classe concrète, exécute son cycle de vie complet et retourne l'instance prête à l'emploi.

      C'est le seul point d'entrée prévu pour créer un AStartObject. Les étapes sont, dans l'ordre :

      1. Instanciation de la sous-classe concrète.
      2. Appel de _init(...args) → dispatche vers _p_init.
      3. Appel de _main() → dispatche vers _p_main.
      4. Retour de l'instance complètement initialisée.

      TypeScript interdit new this() sur une classe abstraite, même depuis une méthode statique. Le cast as unknown as ConcreteConstructor<Y> est inévitable à cet endroit précis : il est localisé, documenté, et sans fuite vers l'extérieur. L'invariant est garanti par le fait que Start ne peut être appelée que sur une sous-classe concrète — TypeScript lèvera une erreur à la construction sinon.

      Type Parameters

      • Y extends AStartObject

        Type de la sous-classe concrète instanciée.

      Parameters

      • ...args: unknown[]

        Arguments transmis à _p_init de la sous-classe.

      Returns Y

      Une instance complètement initialisée de la sous-classe concrète.

      const app = MyApp.Start(3000, true);