Skip to content

Commit 99890c0

Browse files
committed
Refactoring
1 parent 08ed1c8 commit 99890c0

22 files changed

+260
-253
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"test-win": "mocha --opts ./src/tests/config/mocha.opts --config ../../src/tests/config/win.json ./out/tests",
4949
"test-custom": "mocha --opts ./src/tests/config/mocha.opts --config ../../src/tests/config/custom.json ./out/tests"
5050
},
51-
"main": "./out/nativescript/nsMain",
51+
"main": "./out/main",
5252
"activationEvents": [
5353
"*"
5454
],

src/common/Version.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
export class Version {
2+
public static parse(versionStr: string): number[] {
3+
if (versionStr === null) {
4+
return null;
5+
}
6+
let version: number[] = versionStr.split('.').map<number>((str, index, array) => parseInt(str));
7+
for(let i = version.length; i < 3; i++) {
8+
version.push(0);
9+
}
10+
return version;
11+
}
12+
13+
public static stringify(version: number[]): string {
14+
return `${version[0]}.${version[1]}.${version[2]}`;
15+
}
16+
17+
public static compareBySubminor(v1, v2): number {
18+
return (v1[0] - v2[0] != 0) ? (v1[0] - v2[0]) : (v1[1] - v2[1] != 0) ? v1[1] - v2[1] : v1[2] - v2[2];
19+
}
20+
}

src/adapter/adapterProxy.ts renamed to src/debug-adapter/adapter/adapterProxy.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
* Copyright (C) Microsoft Corporation. All rights reserved.
33
*--------------------------------------------------------*/
44

5-
import * as utils from '../webkit/utilities';
5+
import * as utils from '../utilities';
66
import {DebugProtocol} from 'vscode-debugprotocol';
7-
import {IDebugTransformer, IDebugAdapter} from '../webkit/WebKitAdapterInterfaces';
7+
import {IDebugTransformer, IDebugAdapter} from '../WebKitAdapterInterfaces';
88

99
export type EventHandler = (event: DebugProtocol.Event) => void;
1010

src/adapter/lineNumberTransformer.ts renamed to src/debug-adapter/adapter/lineNumberTransformer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*--------------------------------------------------------*/
44

55
import {DebugProtocol} from 'vscode-debugprotocol';
6-
import {IDebugTransformer, ISetBreakpointsResponseBody, IStackTraceResponseBody} from '../webkit/WebKitAdapterInterfaces';
6+
import {IDebugTransformer, ISetBreakpointsResponseBody, IStackTraceResponseBody} from '../WebKitAdapterInterfaces';
77

88
/**
99
* Converts from 1 based lines on the client side to 0 based lines on the target side

src/adapter/pathTransformer.ts renamed to src/debug-adapter/adapter/pathTransformer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
* Copyright (C) Microsoft Corporation. All rights reserved.
33
*--------------------------------------------------------*/
44

5-
import * as utils from '../webkit/utilities';
5+
import * as utils from '../utilities';
66
import {DebugProtocol} from 'vscode-debugprotocol';
77
import * as path from 'path';
8-
import {ISetBreakpointsArgs, IDebugTransformer, ILaunchRequestArgs, IAttachRequestArgs, IStackTraceResponseBody} from '../webkit/WebKitAdapterInterfaces';
8+
import {ISetBreakpointsArgs, IDebugTransformer, ILaunchRequestArgs, IAttachRequestArgs, IStackTraceResponseBody} from '../WebKitAdapterInterfaces';
99

1010
interface IPendingBreakpoint {
1111
resolve: () => void;

src/adapter/sourceMaps/pathUtilities.ts renamed to src/debug-adapter/adapter/sourceMaps/pathUtilities.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import * as Path from 'path';
88
import * as URL from 'url';
99

10-
import * as utils from '../../webkit/utilities';
10+
import * as utils from '../../utilities';
1111

1212
export function getPathRoot(p: string) {
1313
if (p) {

src/adapter/sourceMaps/sourceMapTransformer.ts renamed to src/debug-adapter/adapter/sourceMaps/sourceMapTransformer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import * as path from 'path';
66
import * as fs from 'fs';
77
import {DebugProtocol} from 'vscode-debugprotocol';
88
import {ISourceMaps, SourceMaps} from './sourceMaps';
9-
import {ISetBreakpointsArgs, IDebugTransformer, ILaunchRequestArgs, IAttachRequestArgs, ISetBreakpointsResponseBody, IStackTraceResponseBody} from '../../webkit/WebKitAdapterInterfaces';
10-
import * as utils from '../../webkit/utilities';
9+
import {ISetBreakpointsArgs, IDebugTransformer, ILaunchRequestArgs, IAttachRequestArgs, ISetBreakpointsResponseBody, IStackTraceResponseBody} from '../../WebKitAdapterInterfaces';
10+
import * as utils from '../../utilities';
1111

1212
interface IPendingBreakpoint {
1313
resolve: () => void;

src/adapter/sourceMaps/sourceMaps.ts renamed to src/debug-adapter/adapter/sourceMaps/sourceMaps.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import * as URL from 'url';
99
import * as FS from 'fs';
1010
import {SourceMapConsumer} from 'source-map';
1111
import * as PathUtils from './pathUtilities';
12-
import * as utils from '../../webkit/utilities';
13-
import {Logger} from '../../webkit/utilities';
12+
import * as utils from '../../utilities';
13+
import {Logger} from '../../utilities';
1414

1515

1616
export interface MappingResult {
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
export interface INSDebugConnection {
2+
on(eventName: string, handler: (msg: any) => void): void;
3+
4+
close(): void;
5+
6+
debugger_setBreakpointByUrl(url: string, lineNumber: number, columnNumber: number, condition?: string): Promise<WebKitProtocol.Debugger.SetBreakpointByUrlResponse>
7+
8+
debugger_removeBreakpoint(breakpointId: string): Promise<WebKitProtocol.Response>
9+
10+
debugger_stepOver(): Promise<WebKitProtocol.Response>;
11+
12+
debugger_stepIn(): Promise<WebKitProtocol.Response>;
13+
14+
debugger_stepOut(): Promise<WebKitProtocol.Response>;
15+
16+
debugger_resume(): Promise<WebKitProtocol.Response>;
17+
18+
debugger_pause(): Promise<WebKitProtocol.Response>;
19+
20+
debugger_evaluateOnCallFrame(callFrameId: string, expression: string, objectGroup?, returnByValue?: boolean): Promise<WebKitProtocol.Debugger.EvaluateOnCallFrameResponse>;
21+
22+
debugger_setPauseOnExceptions(state: string): Promise<WebKitProtocol.Response>;
23+
24+
debugger_getScriptSource(scriptId: WebKitProtocol.Debugger.ScriptId): Promise<WebKitProtocol.Debugger.GetScriptSourceResponse>;
25+
26+
runtime_getProperties(objectId: string, ownProperties: boolean, accessorPropertiesOnly: boolean): Promise<WebKitProtocol.Runtime.GetPropertiesResponse>;
27+
28+
runtime_evaluate(expression: string, objectGroup?: any, contextId?: number, returnByValue?: boolean): Promise<WebKitProtocol.Runtime.EvaluateResponse>;
29+
}

src/nativescript/android/androidDebugConnection.ts renamed to src/debug-adapter/connection/androidConnection.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import * as http from 'http';
22
import {EventEmitter} from 'events';
3-
import * as utils from '../../webkit/utilities';
4-
import {Logger} from '../../webkit/utilities';
3+
import * as utils from '../utilities';
4+
import {Logger} from '../utilities';
55
import * as Net from 'net';
6-
import * as ns from '../nativescript'
6+
import * as ns from '../../services/NsCliService';
7+
import { INSDebugConnection } from './INSDebugConnection';
78

89

910
interface IMessageWithId {
@@ -39,7 +40,6 @@ class Callbacks {
3940

4041
}
4142

42-
4343
class ResReqNetSocket extends EventEmitter {
4444
private _pendingRequests = new Map<number, any>();
4545

@@ -213,7 +213,7 @@ class ResReqNetSocket extends EventEmitter {
213213
}
214214

215215

216-
export class AndroidDebugConnection implements ns.INSDebugConnection {
216+
export class AndroidConnection implements INSDebugConnection {
217217
private _nextId = 1;
218218
//private _socket: ResReqWebSocket;
219219
//private _socket: ResReqHttpSocket;

src/webkit/webKitConnection.ts renamed to src/debug-adapter/connection/iosConnection.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
import * as net from 'net';
66
import * as stream from 'stream';
77
import {EventEmitter} from 'events';
8-
import * as utils from './utilities';
9-
import {Logger} from './utilities';
10-
import * as ns from '../nativescript/nativescript';
8+
import {INSDebugConnection} from './INSDebugConnection';
9+
import * as utils from '../utilities';
10+
import {Logger} from '../utilities';
11+
import * as ns from '../../services/NsCliService';
1112

1213
interface IMessageWithId {
1314
id: number;
@@ -139,7 +140,7 @@ class ResReqTcpSocket extends EventEmitter {
139140
/**
140141
* Connects to a target supporting the webkit protocol and sends and receives messages
141142
*/
142-
export class WebKitConnection implements ns.INSDebugConnection {
143+
export class IosConnection implements INSDebugConnection {
143144
private _nextId = 1;
144145
private _socket: ResReqTcpSocket;
145146

File renamed without changes.

src/webkit/utilities.ts renamed to src/debug-adapter/utilities.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22
* Copyright (C) Microsoft Corporation. All rights reserved.
33
*--------------------------------------------------------*/
44

5+
// TODO: Some functions can be moved to common.
6+
57
import * as http from 'http';
68
import * as os from 'os';
79
import * as fs from 'fs';
810
import * as url from 'url';
911
import * as path from 'path';
10-
import {ILaunchRequestArgs, IAttachRequestArgs} from '../webkit/WebKitAdapterInterfaces';
12+
import {ILaunchRequestArgs, IAttachRequestArgs} from './WebKitAdapterInterfaces';
1113

1214
const DEFAULT_CHROME_PATH = {
1315
OSX: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
File renamed without changes.

src/webkit/webKitDebugAdapter.ts renamed to src/debug-adapter/webKitDebugAdapter.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ import {spawn, ChildProcess} from 'child_process';
66
import * as path from 'path';
77
import {Handles, StoppedEvent, InitializedEvent, TerminatedEvent, OutputEvent} from 'vscode-debugadapter';
88
import {DebugProtocol} from 'vscode-debugprotocol';
9-
import {WebKitConnection} from './webKitConnection';
10-
import {AndroidDebugConnection} from '../nativescript/android/androidDebugConnection';
9+
import {INSDebugConnection} from './connection/INSDebugConnection';
10+
import {IosConnection} from './connection/iosConnection';
11+
import {AndroidConnection} from './connection/androidConnection';
1112
import * as utils from './utilities';
1213
import {formatConsoleMessage} from './consoleHelper';
13-
import * as ns from '../nativescript/nativescript';
14+
import * as ns from '../services/NsCliService';
1415
import {ILaunchRequestArgs, IAttachRequestArgs, IDebugAdapter, ISetBreakpointsArgs, ISetBreakpointsResponseBody, IBreakpoint,
1516
IStackTraceResponseBody, IScopesResponseBody, IVariablesResponseBody, ISourceResponseBody, IThreadsResponseBody, IEvaluateResponseBody} from './WebKitAdapterInterfaces';
1617

@@ -37,7 +38,7 @@ export class WebKitDebugAdapter implements IDebugAdapter {
3738
private _setBreakpointsRequestQ: Promise<any>;
3839

3940
private _chromeProc: ChildProcess;
40-
private _webKitConnection: ns.INSDebugConnection;
41+
private _webKitConnection: INSDebugConnection;
4142
private _eventHandler: (event: DebugProtocol.Event) => void;
4243
private appRoot: string;
4344
private platform: string;
@@ -136,7 +137,7 @@ export class WebKitDebugAdapter implements IDebugAdapter {
136137

137138
return iosProject.debug(args)
138139
.then((socketFilePath) => {
139-
let iosConnection: WebKitConnection = new WebKitConnection();
140+
let iosConnection: IosConnection = new IosConnection();
140141
this.setConnection(iosConnection, args);
141142
return iosConnection.attach(socketFilePath);
142143
});
@@ -149,7 +150,7 @@ export class WebKitDebugAdapter implements IDebugAdapter {
149150
androidProject.on('TNS.outputMessage', (message, level) => thisAdapter.onTnsOutputMessage.apply(thisAdapter, [message, level]));
150151

151152
this.onTnsOutputMessage("Getting debug port");
152-
let androidConnection: AndroidDebugConnection = null;
153+
let androidConnection: AndroidConnection = null;
153154

154155
let runDebugCommand: Promise<any> = (args.request == 'launch') ? androidProject.debug(args) : Promise.resolve();
155156

@@ -158,10 +159,8 @@ export class WebKitDebugAdapter implements IDebugAdapter {
158159
return androidProject.getDebugPort(args).then(debugPort => {
159160
port = debugPort;
160161
if (!thisAdapter._webKitConnection) {
161-
return androidProject.createConnection().then(connection => {
162-
androidConnection = connection;
163-
this.setConnection(connection, args);
164-
});
162+
androidConnection = new AndroidConnection();
163+
this.setConnection(androidConnection, args);
165164
}
166165
}).then(() => {
167166
this.onTnsOutputMessage("Attaching to debug application");
@@ -170,7 +169,7 @@ export class WebKitDebugAdapter implements IDebugAdapter {
170169
});
171170
}
172171

173-
private setConnection(connection: ns.INSDebugConnection, args: IAttachRequestArgs | ILaunchRequestArgs) : ns.INSDebugConnection {
172+
private setConnection(connection: INSDebugConnection, args: IAttachRequestArgs | ILaunchRequestArgs) : INSDebugConnection {
174173
connection.on('Debugger.paused', params => this.onDebuggerPaused(params));
175174
connection.on('Debugger.resumed', () => this.onDebuggerResumed());
176175
connection.on('Debugger.scriptParsed', params => this.onScriptParsed(params));

src/webkit/webKitDebugSession.ts renamed to src/debug-adapter/webKitDebugSession.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ import {DebugProtocol} from 'vscode-debugprotocol';
77
import {WebKitDebugAdapter} from './webKitDebugAdapter';
88
import {Logger} from './utilities';
99

10-
import {AdapterProxy} from '../adapter/adapterProxy';
11-
import {LineNumberTransformer} from '../adapter/lineNumberTransformer';
12-
import {PathTransformer} from '../adapter/pathTransformer';
13-
import {SourceMapTransformer} from '../adapter/sourceMaps/sourceMapTransformer';
10+
import {AdapterProxy} from './adapter/adapterProxy';
11+
import {LineNumberTransformer} from './adapter/lineNumberTransformer';
12+
import {PathTransformer} from './adapter/pathTransformer';
13+
import {SourceMapTransformer} from './adapter/sourceMaps/sourceMapTransformer';
1414

1515
export class WebKitDebugSession extends DebugSession {
1616
private _adapterProxy: AdapterProxy;

src/nativescript/nsMain.ts renamed to src/main.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import * as vscode from 'vscode';
22
import * as child from 'child_process';
3-
import * as ns from './nativescript';
3+
import * as ns from './services/NsCliService';
4+
import {ExtensionVersionInfo} from './services/ExtensionVersionInfo';
45

56
function performVersionsCheck(context: vscode.ExtensionContext) {
67
// Check the state of the existing NativeScript CLI
@@ -10,20 +11,20 @@ function performVersionsCheck(context: vscode.ExtensionContext) {
1011
}
1112
else {
1213
// Checks whether a new version of the extension is available
13-
let extensionVersionPromise: Promise<ns.ExtensionVersionInfo> = null;
14+
let extensionVersionPromise: Promise<ExtensionVersionInfo> = null;
1415

1516
// Check the cache for extension version information
1617
let extensionVersion: any = context.globalState.get<any>('ExtensionVersionInfo');
1718
if (extensionVersion) {
18-
let extensionVersionInfo = new ns.ExtensionVersionInfo(extensionVersion.latestVersionMetadata, extensionVersion.timestamp);
19+
let extensionVersionInfo = new ExtensionVersionInfo(extensionVersion.latestVersionMetadata, extensionVersion.timestamp);
1920
if (extensionVersionInfo.getTimestamp() > Date.now() - 24 * 60 * 60 * 1000 /* Cache the version for a day */) {
2021
extensionVersionPromise = Promise.resolve(extensionVersionInfo);
2122
}
2223
}
2324

2425
if (!extensionVersionPromise) {
2526
// Takes the slow path and checks for newer version in the VS Code Marketplace
26-
extensionVersionPromise = ns.ExtensionVersionInfo.createFromMarketplace();
27+
extensionVersionPromise = ExtensionVersionInfo.createFromMarketplace();
2728
}
2829
extensionVersionPromise.then(extensionInfo => {
2930
if (extensionInfo) {

0 commit comments

Comments
 (0)