// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for details.
import {ErrorHelper} from "../error/errorHelper";
import {InternalErrorCode} from "../error/internalErrorCode";
import {IRunOptions} from "../launchArgs";
import {Log} from "../log/log";
import {GeneralMobilePlatform} from "../generalMobilePlatform";
import * as Q from "q";
export class ExponentPlatform extends GeneralMobilePlatform {
private exponentTunnelPath: string;
constructor(runOptions: IRunOptions, { remoteExtension = null } = {}) {
super(runOptions, { remoteExtension: remoteExtension });
this.exponentTunnelPath = null;
}
public runApp(): Q.Promise<void> {
const outputMessage = `Application is running on Exponent. Open your exponent app at ${this.exponentTunnelPath} to see it.`;
Log.logMessage(outputMessage);
this.remoteExtension.showInformationMessage(outputMessage);
return Q.resolve<void>(void 0);
}
public enableJSDebuggingMode(): Q.Promise<void> {
Log.logMessage("Application is running on Exponent. Please shake device and select 'Debug JS Remotely' to enable debugging.");
return Q.resolve<void>(void 0);
}
public startPackager(): Q.Promise<void> {
Log.logMessage("Starting Exponent Packager.");
return this.remoteExtension.startExponentPackager()
.then(exponentUrl => {
if (!exponentUrl) {
return Q.reject<void>(ErrorHelper.getInternalError(InternalErrorCode.ExpectedExponentTunnelPath,
"No link provided by exponent. Is your project correctly setup?"));
}
this.exponentTunnelPath = exponentUrl;
});
}
}microsoft/vscode-react-native
Publicmirrored fromhttps://github.com/microsoft/vscode-react-nativeAvailable
src/common/exponent/exponentPlatform.ts
43lines · modepreview