Use standard tslint rules for source-control example

This commit is contained in:
Matt Bierner
2019-05-10 14:45:55 -07:00
parent 5553fee13b
commit 12a3528bae
5 changed files with 41 additions and 38 deletions

View File

@ -32,28 +32,28 @@ export function activate(context: vscode.ExtensionContext) {
context.subscriptions.push(vscode.commands.registerCommand("extension.source-control.refresh", async () => {
let sourceControl = await pickSourceControl();
if (sourceControl) sourceControl.refresh();
if (sourceControl) { sourceControl.refresh(); }
}));
context.subscriptions.push(vscode.commands.registerCommand("extension.source-control.discard", async () => {
let sourceControl = await pickSourceControl();
if (sourceControl) sourceControl.resetFilesToCheckedOutVersion();
if (sourceControl) { sourceControl.resetFilesToCheckedOutVersion(); }
}));
context.subscriptions.push(vscode.commands.registerCommand("extension.source-control.commit", async () => {
let sourceControl = await pickSourceControl();
if (sourceControl) sourceControl.commitAll();
if (sourceControl) { sourceControl.commitAll(); }
}));
context.subscriptions.push(vscode.commands.registerCommand("extension.source-control.checkout",
async (sourceControl: FiddleSourceControl, newVersion?: number) => {
sourceControl = sourceControl || await pickSourceControl();
if (sourceControl) sourceControl.tryCheckout(newVersion);
if (sourceControl) { sourceControl.tryCheckout(newVersion); }
}));
}
async function pickSourceControl(): Promise<FiddleSourceControl | undefined> {
// todo: when/if the SourceControl exposes a 'selected' property, use that instead
if (fiddleSourceControlRegister.size == 0) return undefined;
else if (fiddleSourceControlRegister.size == 1) return [...fiddleSourceControlRegister.values()][0];
if (fiddleSourceControlRegister.size === 0) { return undefined; }
else if (fiddleSourceControlRegister.size === 1) { return [...fiddleSourceControlRegister.values()][0]; }
else {
let picks = [...fiddleSourceControlRegister.values()].map(fsc => new RepositoryPick(fsc));
@ -85,7 +85,7 @@ async function tryOpenFiddle(context: vscode.ExtensionContext, fiddleId?: string
}
async function openFiddle(context: vscode.ExtensionContext, fiddleId?: string, workspaceUri?: vscode.Uri) {
if (workspaceUri && fiddleSourceControlRegister.has(workspaceUri)) vscode.window.showErrorMessage("Another Fiddle was already open in this workspace. Open a new workspace first.");
if (workspaceUri && fiddleSourceControlRegister.has(workspaceUri)) { vscode.window.showErrorMessage("Another Fiddle was already open in this workspace. Open a new workspace first."); }
if (!fiddleId) {
fiddleId = (await vscode.window.showInputBox({ prompt: 'Paste JSFiddle ID and optionally version', placeHolder: 'slug or slug/version, e.g. u8B29/1', value: 'demo' })) || '';
@ -97,7 +97,7 @@ async function openFiddle(context: vscode.ExtensionContext, fiddleId?: string, w
await selectWorkspaceFolder(context, fiddleId);
workspaceFolder = await clearWorkspaceFolder(workspaceFolder);
if (!workspaceFolder) return; // canceled by user
if (!workspaceFolder) { return; } // canceled by user
// show the file explorer with the three new files
vscode.commands.executeCommand("workbench.view.explorer");
@ -132,14 +132,14 @@ function registerFiddleSourceControl(fiddleSourceControl: FiddleSourceControl, c
}
function initializeFromConfigurationFile(context: vscode.ExtensionContext): void {
if (!vscode.workspace.workspaceFolders) return;
if (!vscode.workspace.workspaceFolders) { return; }
vscode.workspace.workspaceFolders.forEach(folder => {
const configurationPath = path.join(folder.uri.fsPath, CONFIGURATION_FILE);
exists(configurationPath, configFileExists => {
if (configFileExists) {
readFile(configurationPath, { flag: 'r' }, async (err, data) => {
if (err) vscode.window.showErrorMessage(err.message);
if (err) { vscode.window.showErrorMessage(err.message); }
try {
let fiddleSourceControl = await FiddleSourceControl.fromConfiguration(<FiddleConfiguration>JSON.parse(data.toString("utf-8")), folder, context, false);
registerFiddleSourceControl(fiddleSourceControl, context);
@ -161,7 +161,7 @@ async function selectWorkspaceFolder(context: vscode.ExtensionContext, fiddleId:
if (vscode.workspace.workspaceFolders && vscode.workspace.workspaceFolders.length > 1) {
selectedFolder = await vscode.window.showWorkspaceFolderPick({ placeHolder: 'Pick workspace folder to create files in.' });
if (!selectedFolder) return undefined;
if (!selectedFolder) { return undefined; }
workspaceFolderIndex = selectedFolder.index;
workspaceFolderUri = selectedFolder.uri;
@ -186,7 +186,7 @@ async function selectWorkspaceFolder(context: vscode.ExtensionContext, fiddleId:
}
let workSpacesToReplace = typeof workspaceFolderIndex === 'number' && workspaceFolderIndex > -1 ? 1 : 0;
if (workspaceFolderIndex === undefined || workspaceFolderIndex < 0) workspaceFolderIndex = 0;
if (workspaceFolderIndex === undefined || workspaceFolderIndex < 0) { workspaceFolderIndex = 0; }
// replace or insert the workspace
if (workspaceFolderUri) {
@ -198,14 +198,14 @@ async function selectWorkspaceFolder(context: vscode.ExtensionContext, fiddleId:
async function clearWorkspaceFolder(workspaceFolder?: vscode.WorkspaceFolder): Promise<vscode.WorkspaceFolder | undefined> {
if (!workspaceFolder) return undefined;
if (!workspaceFolder) { return undefined; }
// check if the workspace is empty, or clear it
let existingWorkspaceFiles = readdirSync(workspaceFolder.uri.fsPath);
if (existingWorkspaceFiles.length > 0) {
let answer = await vscode.window.showQuickPick(["Yes", "No"],
{ placeHolder: `Remove ${existingWorkspaceFiles.length} file(s) from the workspace before cloning the remote repository?` });
if (answer === undefined) return undefined;
if (answer === undefined) { return undefined; }
if (answer === "Yes") {
existingWorkspaceFiles

View File

@ -28,7 +28,7 @@ export class JSFiddleDocumentContentProvider implements TextDocumentContentProvi
}
provideTextDocumentContent(uri: Uri, token: CancellationToken): ProviderResult<string> {
if (token.isCancellationRequested) return "Canceled";
if (token.isCancellationRequested) { return "Canceled"; }
let fiddleSlug = basename(uri.fsPath);
// strip off the file extension
@ -36,7 +36,7 @@ export class JSFiddleDocumentContentProvider implements TextDocumentContentProvi
let fiddlePart = toExtension(uri);
let fiddle = this.fiddles.get(fiddleSlug);
if (!fiddle) return "Resource not found: " + uri.toString();
if (!fiddle) { return "Resource not found: " + uri.toString(); }
return fiddle.data[fiddlePart];
}

View File

@ -15,9 +15,9 @@ export interface FiddleData {
}
export function areIdentical(first: FiddleData, second: FiddleData): boolean {
return first.html == second.html
&& first.css == second.css
&& first.js == second.js;
return first.html === second.html
&& first.css === second.css
&& first.js === second.js;
}
export const JSFIDDLE_SCHEME = 'jsfiddle';
@ -69,10 +69,10 @@ export async function downloadFiddle(slug: string, version: number | undefined):
if (slug === "demo") {
// use mock fiddle
if (demoVersionOffset === undefined && version === undefined) version = 0;
if (demoVersionOffset === undefined) demoVersionOffset = version;
if (demoVersionOffset === undefined && version === undefined) { version = 0; }
if (demoVersionOffset === undefined) { demoVersionOffset = version; }
let maxDemoVersion = DEMO.length - 1 + demoVersionOffset;
if (version === undefined) version = maxDemoVersion;
if (version === undefined) { version = maxDemoVersion; }
if (version >= 0 && version <= maxDemoVersion) {
// mock all versions committed in previous sessions by the first version
@ -81,7 +81,7 @@ export async function downloadFiddle(slug: string, version: number | undefined):
return new Fiddle(slug, version, fiddleData);
}
else {
throw "Invalid demo fiddle version.";
throw new Error("Invalid demo fiddle version.");
}
}
@ -90,7 +90,7 @@ export async function downloadFiddle(slug: string, version: number | undefined):
return new Promise<Fiddle>((resolve, reject) => {
JSFiddle.getFiddle(id, (err: any, fiddleData: any) => {
// handle error
if (err) reject(err);
if (err) { reject(err); }
let fiddle = new Fiddle(slug, version, fiddleData);

View File

@ -82,7 +82,7 @@ export class FiddleSourceControl implements vscode.Disposable {
// here we assume nobody updated the Fiddle on the server since we refreshed the list of versions
try {
let newFiddle = await uploadFiddle(this.fiddle.slug, this.fiddle.version + 1, html, js, css);
if (!newFiddle) return;
if (!newFiddle) { return; }
this.setFiddle(newFiddle, false);
this.jsFiddleScm.inputBox.value = '';
} catch (ex) {
@ -112,11 +112,11 @@ export class FiddleSourceControl implements vscode.Disposable {
}
async tryCheckout(newVersion: number | undefined): Promise<void> {
if (!Number.isFinite(this.latestFiddleVersion)) return;
if (!Number.isFinite(this.latestFiddleVersion)) { return; }
if (newVersion === undefined) {
let allVersions = [...Array(this.latestFiddleVersion + 1).keys()]
.map(ver => new VersionQuickPickItem(ver, ver == this.fiddle.version));
.map(ver => new VersionQuickPickItem(ver, ver === this.fiddle.version));
let newVersionPick = await vscode.window.showQuickPick(allVersions, { canPickMany: false, placeHolder: 'Select a version...' });
if (newVersionPick) {
newVersion = newVersionPick.version;
@ -126,7 +126,7 @@ export class FiddleSourceControl implements vscode.Disposable {
}
}
if (newVersion === this.fiddle.version) return; // the same version was selected
if (newVersion === this.fiddle.version) { return; } // the same version was selected
if (this.changedResources.resourceStates.length) {
let changedResourcesCount = this.changedResources.resourceStates.length;
@ -143,9 +143,9 @@ export class FiddleSourceControl implements vscode.Disposable {
}
private setFiddle(newFiddle: Fiddle, overwrite: boolean) {
if (newFiddle.version > this.latestFiddleVersion) this.latestFiddleVersion = newFiddle.version;
if (newFiddle.version > this.latestFiddleVersion) { this.latestFiddleVersion = newFiddle.version; }
this.fiddle = newFiddle;
if (overwrite) this.resetFilesToCheckedOutVersion(); // overwrite local file content
if (overwrite) { this.resetFilesToCheckedOutVersion(); } // overwrite local file content
this._onRepositoryChange.fire(this.fiddle);
this.refreshStatusBar();
@ -240,7 +240,7 @@ export class FiddleSourceControl implements vscode.Disposable {
}
onResourceChange(_uri: vscode.Uri): void {
if (this.timeout) clearTimeout(this.timeout);
if (this.timeout) { clearTimeout(this.timeout); }
this.timeout = setTimeout(() => this.tryUpdateChangedGroup(), 500);
}
@ -285,7 +285,7 @@ export class FiddleSourceControl implements vscode.Disposable {
/** Determines whether the resource is different, regardless of line endings. */
isDirty(doc: vscode.TextDocument): boolean {
let originalText = this.fiddle.data[toExtension(doc.uri)];
return originalText.replace('\r', '') != doc.getText().replace('\r', '');
return originalText.replace('\r', '') !== doc.getText().replace('\r', '');
}
toSourceControlResourceState(docUri: vscode.Uri, deleted: boolean): vscode.SourceControlResourceState {