Skip to content

Add prefer-const rule to tslint #3090

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 28, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 28 additions & 28 deletions lib/android-tools-info.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {
@cache()
public getToolsInfo(): IAndroidToolsInfoData {
if (!this.toolsInfo) {
let infoData: IAndroidToolsInfoData = Object.create(null);
const infoData: IAndroidToolsInfoData = Object.create(null);
infoData.androidHomeEnvVar = this.androidHome;
infoData.compileSdkVersion = this.getCompileSdkVersion();
infoData.buildToolsVersion = this.getBuildToolsVersion();
Expand All @@ -46,17 +46,17 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {
public validateInfo(options?: { showWarningsAsErrors: boolean, validateTargetSdk: boolean }): boolean {
let detectedErrors = false;
this.showWarningsAsErrors = options && options.showWarningsAsErrors;
let toolsInfoData = this.getToolsInfo();
let isAndroidHomeValid = this.validateAndroidHomeEnvVariable();
const toolsInfoData = this.getToolsInfo();
const isAndroidHomeValid = this.validateAndroidHomeEnvVariable();
if (!toolsInfoData.compileSdkVersion) {
this.printMessage(`Cannot find a compatible Android SDK for compilation. To be able to build for Android, install Android SDK ${AndroidToolsInfo.MIN_REQUIRED_COMPILE_TARGET} or later.`,
`Run \`\$ ${this.getPathToSdkManagementTool()}\` to manage your Android SDK versions.`);
detectedErrors = true;
}

if (!toolsInfoData.buildToolsVersion) {
let buildToolsRange = this.getBuildToolsRange();
let versionRangeMatches = buildToolsRange.match(/^.*?([\d\.]+)\s+.*?([\d\.]+)$/);
const buildToolsRange = this.getBuildToolsRange();
const versionRangeMatches = buildToolsRange.match(/^.*?([\d\.]+)\s+.*?([\d\.]+)$/);
let message = `You can install any version in the following range: '${buildToolsRange}'.`;

// Improve message in case buildToolsRange is something like: ">=22.0.0 <=22.0.0" - same numbers on both sides
Expand All @@ -83,11 +83,11 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {
}

if (options && options.validateTargetSdk) {
let targetSdk = toolsInfoData.targetSdkVersion;
let newTarget = `${AndroidToolsInfo.ANDROID_TARGET_PREFIX}-${targetSdk}`;
const targetSdk = toolsInfoData.targetSdkVersion;
const newTarget = `${AndroidToolsInfo.ANDROID_TARGET_PREFIX}-${targetSdk}`;
if (!_.includes(AndroidToolsInfo.SUPPORTED_TARGETS, newTarget)) {
let supportedVersions = AndroidToolsInfo.SUPPORTED_TARGETS.sort();
let minSupportedVersion = this.parseAndroidSdkString(_.first(supportedVersions));
const supportedVersions = AndroidToolsInfo.SUPPORTED_TARGETS.sort();
const minSupportedVersion = this.parseAndroidSdkString(_.first(supportedVersions));

if (targetSdk && (targetSdk < minSupportedVersion)) {
this.printMessage(`The selected Android target SDK ${newTarget} is not supported. You must target ${minSupportedVersion} or later.`);
Expand All @@ -107,10 +107,10 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {
this.showWarningsAsErrors = options.showWarningsAsErrors;
}

let additionalMessage = "You will not be able to build your projects for Android." + EOL
const additionalMessage = "You will not be able to build your projects for Android." + EOL
+ "To be able to build for Android, verify that you have installed The Java Development Kit (JDK) and configured it according to system requirements as" + EOL +
" described in " + this.$staticConfig.SYS_REQUIREMENTS_LINK;
let matchingVersion = (installedJavaVersion || "").match(AndroidToolsInfo.VERSION_REGEX);
const matchingVersion = (installedJavaVersion || "").match(AndroidToolsInfo.VERSION_REGEX);
if (matchingVersion && matchingVersion[1]) {
if (semver.lt(matchingVersion[1], AndroidToolsInfo.MIN_JAVA_VERSION)) {
hasProblemWithJavaVersion = true;
Expand All @@ -126,7 +126,7 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {

public async getPathToAdbFromAndroidHome(): Promise<string> {
if (this.androidHome) {
let pathToAdb = path.join(this.androidHome, "platform-tools", "adb");
const pathToAdb = path.join(this.androidHome, "platform-tools", "adb");
try {
await this.$childProcess.execFile(pathToAdb, ["help"]);
return pathToAdb;
Expand Down Expand Up @@ -212,19 +212,19 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {

private getCompileSdkVersion(): number {
if (!this.selectedCompileSdk) {
let userSpecifiedCompileSdk = this.$options.compileSdk;
const userSpecifiedCompileSdk = this.$options.compileSdk;
if (userSpecifiedCompileSdk) {
let installedTargets = this.getInstalledTargets();
let androidCompileSdk = `${AndroidToolsInfo.ANDROID_TARGET_PREFIX}-${userSpecifiedCompileSdk}`;
const installedTargets = this.getInstalledTargets();
const androidCompileSdk = `${AndroidToolsInfo.ANDROID_TARGET_PREFIX}-${userSpecifiedCompileSdk}`;
if (!_.includes(installedTargets, androidCompileSdk)) {
this.$errors.failWithoutHelp(`You have specified '${userSpecifiedCompileSdk}' for compile sdk, but it is not installed on your system.`);
}

this.selectedCompileSdk = userSpecifiedCompileSdk;
} else {
let latestValidAndroidTarget = this.getLatestValidAndroidTarget();
const latestValidAndroidTarget = this.getLatestValidAndroidTarget();
if (latestValidAndroidTarget) {
let integerVersion = this.parseAndroidSdkString(latestValidAndroidTarget);
const integerVersion = this.parseAndroidSdkString(latestValidAndroidTarget);

if (integerVersion && integerVersion >= AndroidToolsInfo.MIN_REQUIRED_COMPILE_TARGET) {
this.selectedCompileSdk = integerVersion;
Expand All @@ -237,20 +237,20 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {
}

private getTargetSdk(): number {
let targetSdk = this.$options.sdk ? parseInt(this.$options.sdk) : this.getCompileSdkVersion();
const targetSdk = this.$options.sdk ? parseInt(this.$options.sdk) : this.getCompileSdkVersion();
this.$logger.trace(`Selected targetSdk is: ${targetSdk}`);
return targetSdk;
}

private getMatchingDir(pathToDir: string, versionRange: string): string {
let selectedVersion: string;
if (this.$fs.exists(pathToDir)) {
let subDirs = this.$fs.readDirectory(pathToDir);
const subDirs = this.$fs.readDirectory(pathToDir);
this.$logger.trace(`Directories found in ${pathToDir} are ${subDirs.join(", ")}`);

let subDirsVersions = subDirs
const subDirsVersions = subDirs
.map(dirName => {
let dirNameGroups = dirName.match(AndroidToolsInfo.VERSION_REGEX);
const dirNameGroups = dirName.match(AndroidToolsInfo.VERSION_REGEX);
if (dirNameGroups) {
return dirNameGroups[1];
}
Expand All @@ -259,7 +259,7 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {
})
.filter(dirName => !!dirName);
this.$logger.trace(`Versions found in ${pathToDir} are ${subDirsVersions.join(", ")}`);
let version = semver.maxSatisfying(subDirsVersions, versionRange);
const version = semver.maxSatisfying(subDirsVersions, versionRange);
if (version) {
selectedVersion = _.find(subDirs, dir => dir.indexOf(version) !== -1);
}
Expand All @@ -275,16 +275,16 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {
private getBuildToolsVersion(): string {
let buildToolsVersion: string;
if (this.androidHome) {
let pathToBuildTools = path.join(this.androidHome, "build-tools");
let buildToolsRange = this.getBuildToolsRange();
const pathToBuildTools = path.join(this.androidHome, "build-tools");
const buildToolsRange = this.getBuildToolsRange();
buildToolsVersion = this.getMatchingDir(pathToBuildTools, buildToolsRange);
}

return buildToolsVersion;
}

private getAppCompatRange(): string {
let compileSdkVersion = this.getCompileSdkVersion();
const compileSdkVersion = this.getCompileSdkVersion();
let requiredAppCompatRange: string;
if (compileSdkVersion) {
requiredAppCompatRange = `>=${compileSdkVersion} <${compileSdkVersion + 1}`;
Expand All @@ -295,9 +295,9 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {

private getAndroidSupportRepositoryVersion(): string {
let selectedAppCompatVersion: string;
let requiredAppCompatRange = this.getAppCompatRange();
const requiredAppCompatRange = this.getAppCompatRange();
if (this.androidHome && requiredAppCompatRange) {
let pathToAppCompat = path.join(this.androidHome, "extras", "android", "m2repository", "com", "android", "support", "appcompat-v7");
const pathToAppCompat = path.join(this.androidHome, "extras", "android", "m2repository", "com", "android", "support", "appcompat-v7");
selectedAppCompatVersion = this.getMatchingDir(pathToAppCompat, requiredAppCompatRange);
}

Expand All @@ -306,7 +306,7 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {
}

private getLatestValidAndroidTarget(): string {
let installedTargets = this.getInstalledTargets();
const installedTargets = this.getInstalledTargets();
return _.findLast(AndroidToolsInfo.SUPPORTED_TARGETS.sort(), supportedTarget => _.includes(installedTargets, supportedTarget));
}

Expand Down
2 changes: 1 addition & 1 deletion lib/commands/add-platform.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export class AddPlatformCommand implements ICommand {
this.$errors.fail("No platform specified. Please specify a platform to add");
}

for (let arg of args) {
for (const arg of args) {
this.$platformService.validatePlatform(arg, this.$projectData);
const platformData = this.$platformsData.getPlatformData(arg, this.$projectData);
const platformProjectService = platformData.platformProjectService;
Expand Down
8 changes: 4 additions & 4 deletions lib/commands/appstore-list.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ export class ListiOSApps implements ICommand {
this.$errors.fail(`Applications for platform ${this.$devicePlatformsConstants.iOS} can not be built on this OS`);
}

let username = args[0],
password = args[1];
let username = args[0];
let password = args[1];

if (!username) {
username = await this.$prompter.getString("Apple ID", { allowEmpty: false });
Expand All @@ -31,12 +31,12 @@ export class ListiOSApps implements ICommand {
password = await this.$prompter.getPassword("Apple ID password");
}

let iOSApplications = await this.$itmsTransporterService.getiOSApplications({ username, password });
const iOSApplications = await this.$itmsTransporterService.getiOSApplications({ username, password });

if (!iOSApplications || !iOSApplications.length) {
this.$logger.out("Seems you don't have any applications yet.");
} else {
let table: any = createTable(["Application Name", "Bundle Identifier", "Version"], iOSApplications.map(element => {
const table: any = createTable(["Application Name", "Bundle Identifier", "Version"], iOSApplications.map(element => {
return [element.name, element.bundleId, element.version];
}));

Expand Down
24 changes: 12 additions & 12 deletions lib/commands/appstore-upload.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ export class PublishIOS implements ICommand {
}

public async execute(args: string[]): Promise<void> {
let username = args[0],
password = args[1],
mobileProvisionIdentifier = args[2],
codeSignIdentity = args[3],
teamID = this.$options.teamId,
ipaFilePath = this.$options.ipa ? path.resolve(this.$options.ipa) : null;
let username = args[0];
let password = args[1];
const mobileProvisionIdentifier = args[2];
const codeSignIdentity = args[3];
const teamID = this.$options.teamId;
let ipaFilePath = this.$options.ipa ? path.resolve(this.$options.ipa) : null;

if (!username) {
username = await this.$prompter.getString("Apple ID", { allowEmpty: false });
Expand All @@ -54,11 +54,11 @@ export class PublishIOS implements ICommand {
this.$options.release = true;

if (!ipaFilePath) {
let platform = this.$devicePlatformsConstants.iOS;
const platform = this.$devicePlatformsConstants.iOS;
// No .ipa path provided, build .ipa on out own.
const appFilesUpdaterOptions: IAppFilesUpdaterOptions = { bundle: this.$options.bundle, release: this.$options.release };
if (mobileProvisionIdentifier || codeSignIdentity) {
let iOSBuildConfig: IBuildConfig = {
const iOSBuildConfig: IBuildConfig = {
projectDir: this.$options.path,
release: this.$options.release,
device: this.$options.device,
Expand All @@ -77,13 +77,13 @@ export class PublishIOS implements ICommand {
this.$logger.info("No .ipa, mobile provision or certificate set. Perfect! Now we'll build .xcarchive and let Xcode pick the distribution certificate and provisioning profile for you when exporting .ipa for AppStore submission.");
await this.$platformService.preparePlatform(platform, appFilesUpdaterOptions, this.$options.platformTemplate, this.$projectData, this.$options);

let platformData = this.$platformsData.getPlatformData(platform, this.$projectData);
let iOSProjectService = <IOSProjectService>platformData.platformProjectService;
const platformData = this.$platformsData.getPlatformData(platform, this.$projectData);
const iOSProjectService = <IOSProjectService>platformData.platformProjectService;

let archivePath = await iOSProjectService.archive(this.$projectData);
const archivePath = await iOSProjectService.archive(this.$projectData);
this.$logger.info("Archive at: " + archivePath);

let exportPath = await iOSProjectService.exportArchive(this.$projectData, { archivePath, teamID, provision: mobileProvisionIdentifier || this.$options.provision });
const exportPath = await iOSProjectService.exportArchive(this.$projectData, { archivePath, teamID, provision: mobileProvisionIdentifier || this.$options.provision });
this.$logger.info("Export at: " + exportPath);

ipaFilePath = exportPath;
Expand Down
2 changes: 1 addition & 1 deletion lib/commands/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class BuildCommandBase {
}

public async executeCore(args: string[]): Promise<void> {
let platform = args[0].toLowerCase();
const platform = args[0].toLowerCase();
const appFilesUpdaterOptions: IAppFilesUpdaterOptions = { bundle: this.$options.bundle, release: this.$options.release };
await this.$platformService.preparePlatform(platform, appFilesUpdaterOptions, this.$options.platformTemplate, this.$projectData, this.$options);
this.$options.clean = true;
Expand Down
4 changes: 2 additions & 2 deletions lib/commands/clean-app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ export class CleanAppCommandBase implements ICommand {
this.$errors.fail(`Applications for platform ${this.platform} can not be built on this OS`);
}

let platformData = this.$platformsData.getPlatformData(this.platform, this.$projectData);
let platformProjectService = platformData.platformProjectService;
const platformData = this.$platformsData.getPlatformData(this.platform, this.$projectData);
const platformProjectService = platformData.platformProjectService;
await platformProjectService.validate(this.$projectData);
return true;
}
Expand Down
4 changes: 2 additions & 2 deletions lib/commands/debug.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { CONNECTED_STATUS } from "../common/constants";
import { CONNECTED_STATUS } from "../common/constants";
import { isInteractive } from "../common/helpers";
import { cache } from "../common/decorators";
import { DebugCommandErrors } from "../constants";
Expand All @@ -24,7 +24,7 @@ export class DebugPlatformCommand implements ICommand {
public async execute(args: string[]): Promise<void> {
const debugOptions = <IDebugOptions>_.cloneDeep(this.$options.argv);

let debugData = this.$debugDataService.createDebugData(this.$projectData, this.$options);
const debugData = this.$debugDataService.createDebugData(this.$projectData, this.$options);

await this.$platformService.trackProjectType(this.$projectData);
const selectedDeviceForDebug = await this.getDeviceForDebug();
Expand Down
8 changes: 4 additions & 4 deletions lib/commands/install.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ export class InstallCommand implements ICommand {

await this.$pluginsService.ensureAllDependenciesAreInstalled(this.$projectData);

for (let platform of this.$platformsData.platformsNames) {
let platformData = this.$platformsData.getPlatformData(platform, this.$projectData);
for (const platform of this.$platformsData.platformsNames) {
const platformData = this.$platformsData.getPlatformData(platform, this.$projectData);
const frameworkPackageData = this.$projectDataService.getNSValue(this.$projectData.projectDir, platformData.frameworkPackageName);
if (frameworkPackageData && frameworkPackageData.version) {
try {
Expand All @@ -47,9 +47,9 @@ export class InstallCommand implements ICommand {
}

private async installModule(moduleName: string): Promise<void> {
let projectDir = this.$projectData.projectDir;
const projectDir = this.$projectData.projectDir;

let devPrefix = 'nativescript-dev-';
const devPrefix = 'nativescript-dev-';
if (!this.$fs.exists(moduleName) && moduleName.indexOf(devPrefix) !== 0) {
moduleName = devPrefix + moduleName;
}
Expand Down
6 changes: 3 additions & 3 deletions lib/commands/list-platforms.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ export class ListPlatformsCommand implements ICommand {
}

public async execute(args: string[]): Promise<void> {
let installedPlatforms = this.$platformService.getInstalledPlatforms(this.$projectData);
const installedPlatforms = this.$platformService.getInstalledPlatforms(this.$projectData);

if (installedPlatforms.length > 0) {
let preparedPlatforms = this.$platformService.getPreparedPlatforms(this.$projectData);
const preparedPlatforms = this.$platformService.getPreparedPlatforms(this.$projectData);
if (preparedPlatforms.length > 0) {
this.$logger.out("The project is prepared for: ", helpers.formatListOfNames(preparedPlatforms, "and"));
} else {
Expand All @@ -22,7 +22,7 @@ export class ListPlatformsCommand implements ICommand {

this.$logger.out("Installed platforms: ", helpers.formatListOfNames(installedPlatforms, "and"));
} else {
let formattedPlatformsList = helpers.formatListOfNames(this.$platformService.getAvailablePlatforms(this.$projectData), "and");
const formattedPlatformsList = helpers.formatListOfNames(this.$platformService.getAvailablePlatforms(this.$projectData), "and");
this.$logger.out("Available platforms for this OS: ", formattedPlatformsList);
this.$logger.out("No installed platforms found. Use $ tns platform add");
}
Expand Down
2 changes: 1 addition & 1 deletion lib/commands/platform-clean.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export class CleanCommand implements ICommand {
this.$errors.fail("No platform specified. Please specify a platform to clean");
}

for (let platform of args) {
for (const platform of args) {
this.$platformService.validatePlatformInstalled(platform, this.$projectData);

const platformData = this.$platformsData.getPlatformData(platform, this.$projectData);
Expand Down
4 changes: 2 additions & 2 deletions lib/commands/plugin/add-plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ export class AddPluginCommand implements ICommand {
this.$errors.fail("You must specify plugin name.");
}

let installedPlugins = await this.$pluginsService.getAllInstalledPlugins(this.$projectData);
let pluginName = args[0].toLowerCase();
const installedPlugins = await this.$pluginsService.getAllInstalledPlugins(this.$projectData);
const pluginName = args[0].toLowerCase();
if (_.some(installedPlugins, (plugin: IPluginData) => plugin.name.toLowerCase() === pluginName)) {
this.$errors.failWithoutHelp(`Plugin "${pluginName}" is already installed.`);
}
Expand Down
Loading