Migrate all samples to eslint 9

Switches all samples to use eslint 9 with flat configs. I've tried to migrate existing settings as much as possible. However our eslint configs were also inconsistent so I've tried to align these too
This commit is contained in:
Matt Bierner
2024-10-26 17:44:03 -07:00
parent 7ce43a47d7
commit 73e249b3c1
403 changed files with 74894 additions and 51564 deletions

View File

@ -22,8 +22,7 @@ export async function activate(context: vscode.ExtensionContext) {
try {
await initializeFromConfigurationFile(context);
}
catch (err) {
} catch (err) {
console.log('Failed to initialize a Fiddle workspace.');
vscode.window.showErrorMessage(err);
}
@ -39,27 +38,37 @@ export async function activate(context: vscode.ExtensionContext) {
context.subscriptions.push(vscode.commands.registerCommand("extension.source-control.refresh",
async (sourceControlPane: vscode.SourceControl) => {
const sourceControl = await pickSourceControl(sourceControlPane);
if (sourceControl) { sourceControl.refresh(); }
if (sourceControl) {
sourceControl.refresh();
}
}));
context.subscriptions.push(vscode.commands.registerCommand("extension.source-control.discard",
async (sourceControlPane: vscode.SourceControl) => {
const sourceControl = await pickSourceControl(sourceControlPane);
if (sourceControl) { sourceControl.resetFilesToCheckedOutVersion(); }
if (sourceControl) {
sourceControl.resetFilesToCheckedOutVersion();
}
}));
context.subscriptions.push(vscode.commands.registerCommand("extension.source-control.commit",
async (sourceControlPane: vscode.SourceControl) => {
const sourceControl = await pickSourceControl(sourceControlPane);
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(null);
if (sourceControl) { sourceControl.tryCheckout(newVersion); }
if (sourceControl) {
sourceControl.tryCheckout(newVersion);
}
}));
context.subscriptions.push(vscode.commands.registerCommand("extension.source-control.browse",
async (sourceControlPane: vscode.SourceControl) => {
const sourceControl = await pickSourceControl(sourceControlPane);
if (sourceControl) { sourceControl.openInBrowser(); }
if (sourceControl) {
sourceControl.openInBrowser();
}
}));
@ -87,9 +96,11 @@ async function pickSourceControl(sourceControlPane: vscode.SourceControl): Promi
// 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]; }
else {
if (fiddleSourceControlRegister.size === 0) {
return undefined;
} else if (fiddleSourceControlRegister.size === 1) {
return [...fiddleSourceControlRegister.values()][0];
} else {
const picks = [...fiddleSourceControlRegister.values()].map(fsc => new RepositoryPick(fsc));
@ -112,15 +123,16 @@ async function pickSourceControl(sourceControlPane: vscode.SourceControl): Promi
async function tryOpenFiddle(context: vscode.ExtensionContext, fiddleId?: string, workspaceUri?: vscode.Uri): Promise<void> {
try {
await openFiddle(context, fiddleId, workspaceUri);
}
catch (ex) {
} catch (ex) {
vscode.window.showErrorMessage(ex);
console.log(ex);
}
}
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' })) || '';
@ -131,7 +143,9 @@ async function openFiddle(context: vscode.ExtensionContext, fiddleId?: string, w
vscode.workspace.getWorkspaceFolder(workspaceUri) :
await selectWorkspaceFolder(context, fiddleId);
if (! await clearWorkspaceFolder(workspaceFolder.uri)) { return; }
if (! await clearWorkspaceFolder(workspaceFolder.uri)) {
return;
}
// show the file explorer with the three new files
vscode.commands.executeCommand("workbench.view.explorer");
@ -182,7 +196,9 @@ function unregisterFiddleSourceControl(folderUri: vscode.Uri): void {
* @param context extension context
*/
async function initializeFromConfigurationFile(context: vscode.ExtensionContext): Promise<void> {
if (!vscode.workspace.workspaceFolders) { return; }
if (!vscode.workspace.workspaceFolders) {
return;
}
const folderPromises = vscode.workspace.workspaceFolders.map(async (folder) => await initializeFolderFromConfigurationFile(folder, context));
await Promise.all(folderPromises);
@ -195,7 +211,7 @@ async function initializeFolderFromConfigurationFile(folder: vscode.WorkspaceFol
if (configFileExists) {
const data = await afs.readFile(configurationPath);
const fiddleConfiguration = <FiddleConfiguration>JSON.parse(data.toString(UTF8));
const fiddleConfiguration: FiddleConfiguration = JSON.parse(data.toString(UTF8));
const fiddleSourceControl = await FiddleSourceControl.fromConfiguration(fiddleConfiguration, folder, context, !fiddleConfiguration.downloaded);
registerFiddleSourceControl(fiddleSourceControl, context);
if (!fiddleConfiguration.downloaded) {
@ -229,7 +245,9 @@ async function selectWorkspaceFolder(context: vscode.ExtensionContext, fiddleId:
canPickMany: false, ignoreFocusOut: true, placeHolder: 'Pick workspace folder to create files in.'
});
if (!selectedFolderPick) { return null; }
if (!selectedFolderPick) {
return null;
}
if (selectedFolderPick instanceof ExistingWorkspaceFolderPick) {
selectedFolder = selectedFolderPick.workspaceFolder;
@ -248,10 +266,12 @@ async function selectWorkspaceFolder(context: vscode.ExtensionContext, fiddleId:
workspaceFolderUri = folderUris[0];
// was such workspace folder already open?
workspaceFolderIndex = vscode.workspace.workspaceFolders && firstIndex(vscode.workspace.workspaceFolders, (folder1: any) => folder1.uri.toString() === workspaceFolderUri!.toString());
workspaceFolderIndex = vscode.workspace.workspaceFolders && firstIndex(vscode.workspace.workspaceFolders, (folder1) => folder1.uri.toString() === workspaceFolderUri!.toString());
}
if (! await clearWorkspaceFolder(workspaceFolderUri)) { return null; }
if (! await clearWorkspaceFolder(workspaceFolderUri)) {
return null;
}
const fiddleConfiguration = parseFiddleId(fiddleId);
@ -260,14 +280,15 @@ async function selectWorkspaceFolder(context: vscode.ExtensionContext, fiddleId:
if (folderOpeningMode === FolderOpeningMode.AddToWorkspace || folderOpeningMode === undefined) {
const 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) {
vscode.workspace.updateWorkspaceFolders(workspaceFolderIndex, workSpacesToReplace, { uri: workspaceFolderUri });
}
}
else if (folderOpeningMode === FolderOpeningMode.OpenFolder) {
} else if (folderOpeningMode === FolderOpeningMode.OpenFolder) {
vscode.commands.executeCommand("vscode.openFolder", workspaceFolderUri);
}
@ -276,14 +297,18 @@ async function selectWorkspaceFolder(context: vscode.ExtensionContext, fiddleId:
async function clearWorkspaceFolder(workspaceFolderUri: vscode.Uri): Promise<boolean> {
if (!workspaceFolderUri) { return undefined; }
if (!workspaceFolderUri) {
return undefined;
}
// check if the workspace is empty, or clear it
const existingWorkspaceFiles: string[] = await afs.readdir(workspaceFolderUri.fsPath);
if (existingWorkspaceFiles.length > 0) {
const answer = await vscode.window.showQuickPick(["Yes", "No"],
{ placeHolder: `Remove ${existingWorkspaceFiles.length} file(s) from the folder ${workspaceFolderUri.fsPath} before cloning the remote repository?` });
if (!answer) { return false; }
if (!answer) {
return false;
}
if (answer === "Yes") {
existingWorkspaceFiles
@ -343,7 +368,9 @@ class NewWorkspaceFolderPick extends WorkspaceFolderPick {
}
}
enum FolderOpeningMode { AddToWorkspace, OpenFolder }
enum FolderOpeningMode {
AddToWorkspace, OpenFolder
}
const newWorkspaceFolderPick = new NewWorkspaceFolderPick("Select/create a local folder to add to this workspace...", FolderOpeningMode.AddToWorkspace);
const newFolderPick = new NewWorkspaceFolderPick("Select/create a local folder...", FolderOpeningMode.OpenFolder);

View File

@ -1,3 +1,4 @@
// eslint-disable-next-line @typescript-eslint/no-require-imports
import JSFiddle = require("jsfiddle");
import { QuickDiffProvider, Uri, CancellationToken, ProviderResult, WorkspaceFolder, workspace, window, env } from "vscode";
import * as path from 'path';
@ -26,7 +27,7 @@ export class FiddleRepository implements QuickDiffProvider {
constructor(private workspaceFolder: WorkspaceFolder, private fiddleSlug: string) { }
provideOriginalResource?(uri: Uri, token: CancellationToken): ProviderResult<Uri> {
provideOriginalResource?(uri: Uri, _token: CancellationToken): ProviderResult<Uri> {
// converts the local file uri to jsfiddle:file.ext
const relativePath = workspace.asRelativePath(uri.fsPath);
return Uri.parse(`${JSFIDDLE_SCHEME}:${relativePath}`);
@ -117,6 +118,7 @@ export async function uploadFiddle(slug: string, version: number, html: string,
return undefined;
}
// eslint-disable-next-line no-constant-condition
if (false) {
// this, sadly, does not work as advertised
const data = {

View File

@ -53,7 +53,6 @@ export class FiddleSourceControl implements vscode.Disposable {
private static async fromFiddle(fiddleSlug: string, fiddleVersion: number, workspaceFolder: vscode.WorkspaceFolder, context: vscode.ExtensionContext, overwrite: boolean): Promise<FiddleSourceControl> {
const fiddle = await downloadFiddle(fiddleSlug, fiddleVersion);
const workspacePath = workspaceFolder.uri.fsPath;
return new FiddleSourceControl(context, workspaceFolder, fiddle, overwrite);
}
@ -130,7 +129,6 @@ export class FiddleSourceControl implements vscode.Disposable {
if (newVersion === this.fiddle.version) { return; } // the same version was selected
if (this.changedResources.resourceStates.length) {
const changedResourcesCount = this.changedResources.resourceStates.length;
vscode.window.showErrorMessage(`There is one or more changed resources. Discard or commit your local changes before checking out another version.`);
}
else {
@ -279,10 +277,9 @@ export class FiddleSourceControl implements vscode.Disposable {
let latestVersion = this.fiddle.version || 0;
while (true) {
try {
const latestFiddle = await downloadFiddle(this.fiddle.slug, latestVersion);
this.latestFiddleVersion = latestVersion;
latestVersion++;
} catch (ex) {
} catch {
// typically the ex.statusCode == 404, when there is no further version
break;
}
@ -309,7 +306,7 @@ export class FiddleSourceControl implements vscode.Disposable {
if (areIdentical(this.fiddle.data, latestFiddle.data)) {
currentFiddle = latestFiddle;
}
} catch (ex) {
} catch {
// typically the ex.statusCode == 404, when there is no further version
break;
}