diff --git a/extensions/terminal-suggest/scripts/update-specs.js b/extensions/terminal-suggest/scripts/update-specs.js index 7fbac83d6c1..63084a09445 100644 --- a/extensions/terminal-suggest/scripts/update-specs.js +++ b/extensions/terminal-suggest/scripts/update-specs.js @@ -33,6 +33,15 @@ const specSpecificReplaceStrings = new Map([ ], [ 'message: async ({ executeCommand }) =>', 'message: async ({ executeCommand }: any) =>' + ], [ + 'if (parts.length > 1) {', + 'if (parts && parts.length > 1) {' + ], [ + 'if (seen.has(suggestion.name)) return false;', + 'if (!suggestion) return false;\n\t\t\t\tif (seen.has(suggestion.name)) return false;' + ], [ + 'return pp(', + 'return pp?.(' ] ]], ['kill', [[ @@ -63,10 +72,15 @@ const specSpecificReplaceStrings = new Map([ [ 'if (parts.length > 1) {', 'if (parts && parts.length > 1) {' - ], - [ + ], [ 'const packages = postProcess(', - 'const packages = postProcess?.(' + 'if (postProcess === undefined) return undefined;\n\t\tconst packages = postProcess(' + ], [ + ').map(({ name }) => name as string);', + ')?.filter((e) => e !== null).map(({ name }) => name as string);' + ], [ + '.filter((name) => nodeClis.has(name))', + '?.filter((name) => nodeClis.has(name))' ] ]], ['ssh', [[ diff --git a/extensions/terminal-suggest/src/completions/upstream/git.ts b/extensions/terminal-suggest/src/completions/upstream/git.ts index 63af2af6984..03668c69e2d 100644 --- a/extensions/terminal-suggest/src/completions/upstream/git.ts +++ b/extensions/terminal-suggest/src/completions/upstream/git.ts @@ -69,7 +69,7 @@ const postProcessBranches = .map((branch) => { let name = branch.trim(); const parts = branch.match(/\S+/g); - if (parts.length > 1) { + if (parts && parts.length > 1) { if (parts[0] === "*") { // We are in a detached HEAD state if (branch.includes("HEAD detached")) { @@ -108,6 +108,7 @@ const postProcessBranches = }; }) .filter((suggestion) => { + if (!suggestion) return false; if (seen.has(suggestion.name)) return false; seen.add(suggestion.name); return true; @@ -259,7 +260,7 @@ export const gitGenerators: Record = { custom: async (tokens, executeShellCommand) => { const pp = postProcessBranches({ insertWithoutRemotes: true }); if (tokens.includes("-r")) { - return pp( + return pp?.( ( await executeShellCommand({ command: "git", @@ -274,7 +275,7 @@ export const gitGenerators: Record = { tokens ); } else { - return pp( + return pp?.( ( await executeShellCommand({ command: "git", diff --git a/extensions/terminal-suggest/src/completions/upstream/pnpm.ts b/extensions/terminal-suggest/src/completions/upstream/pnpm.ts index 8faff2a66e4..deaa454f750 100644 --- a/extensions/terminal-suggest/src/completions/upstream/pnpm.ts +++ b/extensions/terminal-suggest/src/completions/upstream/pnpm.ts @@ -991,7 +991,8 @@ const completionSpec: Fig.Spec = { script: string[]; }; - const packages = postProcess?.( + if (postProcess === undefined) return undefined; + const packages = postProcess( ( await executeShellCommand({ command: script[0], @@ -999,10 +1000,10 @@ const completionSpec: Fig.Spec = { }) ).stdout, tokens - ).map(({ name }) => name as string); + )?.filter((e) => e !== null).map(({ name }) => name as string); const subcommands = packages - .filter((name) => nodeClis.has(name)) + ?.filter((name) => nodeClis.has(name)) .map((name) => ({ name, loadSpec: name, diff --git a/extensions/terminal-suggest/tsconfig.json b/extensions/terminal-suggest/tsconfig.json index 27bfe671c9e..a61b7c78469 100644 --- a/extensions/terminal-suggest/tsconfig.json +++ b/extensions/terminal-suggest/tsconfig.json @@ -10,9 +10,7 @@ // Needed to suppress warnings in upstream completions "noImplicitReturns": false, - "noUnusedParameters": false, - "strictNullChecks": false, - "noUnusedLocals": false + "noUnusedParameters": false }, "include": [ "src/**/*",