File

src/client/stackdriver/debug.ts

Index

Properties

Properties

name
name: string
Type : string
version
version: string
Type : string
import {GoogleAuthOptions, Service} from '@google-cloud/common';

export interface PackageInfo {
  name: string;
  version: string;
}

export interface DebugOptions extends GoogleAuthOptions {
  /**
   * The API endpoint of the service used to make requests.
   * Defaults to `clouddebugger.googleapis.com`.
   */
  apiEndpoint?: string;
}

export class Debug extends Service {
  options!: DebugOptions;
  packageInfo!: PackageInfo;

  /**
   * <p class="notice">
   *   **This is an experimental release of Stackdriver Debug.** This API is not
   *   covered by any SLA of deprecation policy and may be subject to backwards
   *   incompatible changes.
   * </p>
   *
   * This module provides Stackdriver Debugger support for Node.js applications.
   * [Stackdriver Debugger](https://cloud.google.com/debug/) is a feature of
   * [Google Cloud Platform](https://cloud.google.com/) that lets you debug your
   * applications in production without stopping or pausing your application.
   *
   * This module provides an agent that lets you automatically enable debugging
   * without changes to your application.
   *
   * @constructor
   * @alias module:debug
   *
   * @resource [What is Stackdriver Debug]{@link
   * https://cloud.google.com/debug/}
   *
   * @param options - [Authentication options](#/docs)
   */
  constructor(
    options: DebugOptions = {},
    packageJson: {
      name: string;
      version: string;
    }
  ) {
    if (new.target !== Debug) {
      return new Debug(options, packageJson);
    }
    options.apiEndpoint = options.apiEndpoint || 'clouddebugger.googleapis.com';
    const config = {
      projectIdRequired: false,
      apiEndpoint: options.apiEndpoint,
      baseUrl: `https://${options.apiEndpoint}/v2`,
      scopes: ['https://www.googleapis.com/auth/cloud_debugger'],
      packageJson,
    };

    // TODO: Update Service to provide types
    // TODO: Determine if we should check if `options` is `undefined` or
    //       `null` here and, if so, provide a default value.
    super(config, options);

    // FIXME(ofrobots): We need our own copy of options because Service may
    // default to '{{projectId}}' when options doesn't contain the `projectId`.
    // property. This breaks the SSOT principle. Remove this when
    // https://github.com/googleapis/google-cloud-node/issues/1891
    // is resolved.
    this.options = options;

    this.packageInfo = {name: packageJson.name, version: packageJson.version};
  }
}

results matching ""

    No results matching ""