Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. [gelöst] ts, src unter build durch adapter-config.d.ts

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] ts, src unter build durch adapter-config.d.ts

    This topic has been deleted. Only users with topic management privileges can see it.
    • greyhound
      greyhound last edited by greyhound

      Hallo ts-Experten,
      ein aus meiner Sicht nerviges Detail ist die Erzeugung des src-Verzeichnisses unterhalb von build (./build/src) wenn
      a) es eine Datei adapter-config.d.ts unterhalb von src (Standard unterhalb von src/lib) gibt
      und
      b) sich die io-package.json im root des Projektes befindet.

      Verschiebe ich die io-package.json ins ./src, dann bekomme ich auch die gewünschte build-Verzeichnisstruktur ohne "src".
      Die adapter-config.d.ts kann man ja schwerlich weglassen.

      Aber warum ändert das Vorhandensein der adapter-config.d.ts die build-Verzeichnisstruktur?

      Mit dem Verschieben der io-package.json könnte ich ganz gut leben, aber leider der js-controller nicht, der sucht leider nicht, sondern geht davon aus, dass sie im root-Verzeichnis des Adapters liegt und damit schlägt die Installation fehl.

      Meine Lösung sieht jetzt wie folgt aus;
      a) die echte io-package.json im root-Verzeichnis des Adapters wie gehabt
      b) in ./src eine dummy - io-package.json

      {
          "native": {}
      }
      

      c) die adapter-config.d.ts in ./src/lib verweist auf die dummy - io-package.json in ./src

      // This file extends the AdapterConfig type from "@types/iobroker"
      // using the actual properties present in io-package.json
      // in order to provide typings for adapter.config properties
      
      import { native } from '../io-package.json';
      
      type _AdapterConfig = Partial<typeof native>;
      
      // Augment the globally declared type ioBroker.AdapterConfig
      declare global {
      	namespace ioBroker {
      		// tslint-disable-next-line:no-empty-interface
      		interface AdapterConfig extends _AdapterConfig {
      			// Do not enter anything here!
      		}
      
      	}
      }
      

      Damit entfällt das lästige Umbauen des Build-Verzeichnisses. Aber vielleicht findet ja auch noch jemand die Ursache, warum die adapter-config.d.ts die build-Verzeichnisstruktur ändert.

      UncleSam AlCalzone 2 Replies Last reply Reply Quote 0
      • UncleSam
        UncleSam Developer @greyhound last edited by

        @greyhound Hast du das Projekt mit der aktuellsten Version des Adapter Creators erstellt? Wenn nicht, würde ich das mal machen, denn grundsätzlich funktioniert das bei mir in mehreren Adaptern problemlos.

        greyhound 1 Reply Last reply Reply Quote 0
        • AlCalzone
          AlCalzone Developer @greyhound last edited by

          @greyhound sagte in ts, src unter build durch adapter-config.d.ts, workarround:

          Aber vielleicht findet ja auch noch jemand die Ursache

          Ja, das liegt daran, dass die io-package.json von außerhalb src referenziert wird. Aber wo hast du das in einem TS-Adapter her? Ich habe das bewusst nur in JS so "magisch" gelöst, weil da eben nicht kompiliert wird.
          Unter TS musst du leider die adapter-config.d.ts von Hand mit den Config-Optionen versehen:
          https://github.com/ioBroker/ioBroker.template/blob/master/TypeScript/src/lib/adapter-config.d.ts

          1 Reply Last reply Reply Quote 1
          • greyhound
            greyhound @UncleSam last edited by

            @UncleSam
            Hi, nein, Basis war ein Klon von fb-presence-Adapter. Und bei einem auch einige Monate (oder fast ein Jahr) alten Adapter hatte ich das selbe Problem. Muss schauen wie ich Zeit finde, meinen mit der neuen Creator-Version zu vergleichen.
            Hatte mich glaube dann auch beim tradfri-Adapter gewundert, wie da mit regex gezaubert wird.
            Schien also so, als ob ich nicht allein bin.

            UncleSam AlCalzone 2 Replies Last reply Reply Quote 0
            • UncleSam
              UncleSam Developer @greyhound last edited by

              @greyhound sagte in ts, src unter build durch adapter-config.d.ts, workarround:

              Muss schauen wie ich Zeit finde, meinen mit der neuen Creator-Version zu vergleichen.

              Im Creator hat sich viel getan, da lohnt es sich, den Adapter mal "leer" neu zu erstellen und dann von Hand deinen Code rein zu nehmen (oder halt als Diff, aber das ist auch sehr aufwändig und dazu noch fehleranfällig).

              1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer @greyhound last edited by

                @greyhound sagte in ts, src unter build durch adapter-config.d.ts, workarround:

                Hatte mich glaube dann auch beim tradfri-Adapter gewundert, wie da mit regex gezaubert wird.

                Das waren meine traurigen Versuche, diese Limitation auszuhebeln. Danach hab ich mich entschieden, dass die zusätzliche Komplexität den minimalen Benefit nicht wert ist.

                1 Reply Last reply Reply Quote 0
                • greyhound
                  greyhound last edited by

                  Habe meinen ts Adapter aktualisiert, so viel war es dann doch nicht, werde ihn die Tage veröffentlichen, nichts besonderes nur ein weiterer TR-064-Adapter für die Fritz!Box

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  612
                  Online

                  31.9k
                  Users

                  80.1k
                  Topics

                  1.3m
                  Posts

                  adapter adapter-config.json build src typescript
                  3
                  7
                  494
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo