Skip to content
This repository has been archived by the owner on Apr 3, 2024. It is now read-only.

Commit

Permalink
fix: predicate well-formatted url on node version
Browse files Browse the repository at this point in the history
  • Loading branch information
kjin committed Oct 3, 2018
1 parent 1e6bd43 commit 0d35fad
Showing 1 changed file with 21 additions and 2 deletions.
23 changes: 21 additions & 2 deletions src/agent/v8/inspector-debugapi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,17 @@ import * as utils from '../util/utils';
import * as debugapi from './debugapi';
import {V8Inspector} from './v8inspector';

/**
* An interface that describes options that set behavior when interacting with
* the V8 Inspector API.
*/
interface InspectorOptions {
/**
* Whether to add a 'file://' prefix to a URL when setting breakpoints.
*/
useWellFormattedUrl: boolean;
}

export class BreakpointData {
constructor(
public id: inspector.Debugger.BreakpointId,
Expand Down Expand Up @@ -58,6 +69,8 @@ export class InspectorDebugApi implements debugapi.DebugApi {
// stackdriver breakpoint id.
breakpointMapper: {[id: string]: stackdriver.BreakpointId[]} = {};
numBreakpoints = 0;
// Options for behavior when interfacing with the Inspector API.
private inspectorOptions: InspectorOptions;
v8Inspector: V8Inspector;
constructor(
logger: consoleLogLevel.Logger, config: ResolvedDebugAgentConfig,
Expand All @@ -80,6 +93,10 @@ export class InspectorDebugApi implements debugapi.DebugApi {
this.logger.error(error);
}
});
this.inspectorOptions = {
// Well-Formatted URL is required in Node 10.11.1+.
useWellFormattedUrl: utils.satisfies(process.version, '>10.11.0')
};
this.v8Inspector = new V8Inspector(this.session);
}

Expand Down Expand Up @@ -367,10 +384,12 @@ export class InspectorDebugApi implements debugapi.DebugApi {
let v8BreakpointId; // v8/inspector breakpoint id
if (!this.locationMapper[locationStr]) {
// The first time when a breakpoint was set to this location.

const url = this.inspectorOptions.useWellFormattedUrl ?
`file://${matchingScript}` :
matchingScript;
const res = this.v8Inspector.setBreakpointByUrl({
lineNumber: line - 1,
url: `file://${matchingScript}`,
url,
columnNumber: column - 1,
condition: breakpoint.condition || undefined
});
Expand Down

0 comments on commit 0d35fad

Please sign in to comment.