blob: fc08b32d6d472d60733040f3822a4d51805cbcac [file]
// Copyright 2024 The Flutter Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd.
/// Describes an instance of the Dart Tooling Daemon.
@Deprecated('Use DtdInfo instead')
typedef DTDConnectionInfo = ({String? uri, String? secret});
/// Information about a Dart Tooling Daemon instance.
class DtdInfo {
DtdInfo(this.localUri, {Uri? exposedUri, this.secret})
: exposedUri = exposedUri ?? localUri;
/// The URI for connecting to DTD from the backend.
///
/// This is usually a `http://localhost/` address that is accessible to tools
/// running in the same location as the DTD process. It may NOT be accessible
/// to frontends that run in another location - for example the DevTools
/// frontend running in a browser (or embedded in an IDE) in a remote/web IDE
/// session.
final Uri localUri;
/// The exposed URI for connecting to DTD from the frontend.
///
/// In a remote session, this can be an address provided by the hosting
/// infrastructure/proxy that tunnels through to the backend running the DTD
/// process which might look like `https://foo-123.cloud-ide.foo/`.
///
/// For a non-remote session, this will be the same value as [localUri].
final Uri exposedUri;
/// The secret token that allows calling privileged DTD APIs.
///
/// This may not always be available if DTD was spawned by another process
/// and it should never be shared with external code.
final String? secret;
}