11import { exec } from 'node:child_process' ;
2- import * as vscode from 'vscode' ;
3- import { QuickPickItemKind } from 'vscode' ;
4- import preferredPM from 'preferred-pm ' ;
2+ import { workspace , commands , window , type ExtensionContext , QuickPickItemKind , env , Uri } from 'vscode' ;
3+
4+ import { detectPackageManager } from './detectPackageManager ' ;
55import { DirectoryEntry } from './types' ;
66import {
77 ENTRY_OPTION ,
@@ -14,15 +14,17 @@ import {
1414 ValidKeyword
1515} from './utils' ;
1616
17- export async function activate ( context : vscode . ExtensionContext ) {
18- const workspacePath = vscode . workspace . workspaceFolders ?. [ 0 ] . uri . fsPath ?? vscode . workspace . rootPath ;
19- const manager = vscode . workspace . getConfiguration ( 'npm' ) . get < string > ( 'packageManager' , 'npm' ) ;
17+ export async function activate ( context : ExtensionContext ) {
18+ const workspacePath = workspace . workspaceFolders ?. [ 0 ] . uri . fsPath ?? workspace . rootPath ;
19+ const manager = workspace . getConfiguration ( 'npm' ) . get < string > ( 'packageManager' , 'npm' ) ;
2020
2121 const shouldCheckPreferred = workspacePath && ( ! manager || manager === 'auto' ) ;
22- const preferredManager = shouldCheckPreferred ? ( ( await preferredPM ( workspacePath ) ) ?. name ?? 'npm' ) : manager ;
22+ const preferredManager = shouldCheckPreferred
23+ ? ( ( await detectPackageManager ( { cwd : workspacePath } ) ) ?? 'npm' )
24+ : manager ;
2325
24- const disposable = vscode . commands . registerCommand ( 'extension.showQuickPick' , async ( ) => {
25- const packagesPick = vscode . window . createQuickPick < DirectoryEntry > ( ) ;
26+ const disposable = commands . registerCommand ( 'extension.showQuickPick' , async ( ) => {
27+ const packagesPick = window . createQuickPick < DirectoryEntry > ( ) ;
2628
2729 packagesPick . placeholder = STRINGS . PLACEHOLDER_BUSY ;
2830 packagesPick . title = STRINGS . DEFAULT_TITLE ;
@@ -112,7 +114,7 @@ export async function activate(context: vscode.ExtensionContext) {
112114 { label : ENTRY_OPTION . GO_BACK }
113115 ] . filter ( ( option ) => ! ! option && typeof option === 'object' ) ;
114116
115- const optionPick = vscode . window . createQuickPick ( ) ;
117+ const optionPick = window . createQuickPick ( ) ;
116118 optionPick . title = `Actions for "${ selectedEntry . label } "` ;
117119 optionPick . placeholder = 'Select an action' ;
118120 optionPick . items = possibleActions ;
@@ -125,51 +127,51 @@ export async function activate(context: vscode.ExtensionContext) {
125127 case ENTRY_OPTION . INSTALL : {
126128 exec ( getCommandToRun ( selectedEntry , preferredManager ) , { cwd : workspacePath } , ( error , stout ) => {
127129 if ( error ) {
128- vscode . window . showErrorMessage (
130+ window . showErrorMessage (
129131 `An error occurred while trying to install the \`${ selectedEntry . npmPkg } \` package: ${ error . message } `
130132 ) ;
131133 return ;
132134 }
133- vscode . window . showInformationMessage (
135+ window . showInformationMessage (
134136 `\`${ selectedEntry . npmPkg } \` package has been installed${ selectedEntry . dev ? ' as `devDependency`' : '' } in current workspace using \`${ preferredManager } \`: ${ stout } `
135137 ) ;
136138 optionPick . hide ( ) ;
137139 } ) ;
138140 break ;
139141 }
140142 case ENTRY_OPTION . VISIT_HOMEPAGE : {
141- vscode . env . openExternal ( vscode . Uri . parse ( selectedEntry . github . urls . homepage ! ) ) ;
143+ env . openExternal ( Uri . parse ( selectedEntry . github . urls . homepage ! ) ) ;
142144 break ;
143145 }
144146 case ENTRY_OPTION . VISIT_REPO : {
145- vscode . env . openExternal ( vscode . Uri . parse ( selectedEntry . githubUrl ) ) ;
147+ env . openExternal ( Uri . parse ( selectedEntry . githubUrl ) ) ;
146148 break ;
147149 }
148150 case ENTRY_OPTION . VISIT_NPM : {
149- vscode . env . openExternal ( vscode . Uri . parse ( `https://www.npmjs.com/package/${ selectedEntry . npmPkg } ` ) ) ;
151+ env . openExternal ( Uri . parse ( `https://www.npmjs.com/package/${ selectedEntry . npmPkg } ` ) ) ;
150152 break ;
151153 }
152154 case ENTRY_OPTION . VIEW_BUNDLEPHOBIA : {
153- vscode . env . openExternal ( vscode . Uri . parse ( `https://bundlephobia.com/package/${ selectedEntry . npmPkg } ` ) ) ;
155+ env . openExternal ( Uri . parse ( `https://bundlephobia.com/package/${ selectedEntry . npmPkg } ` ) ) ;
154156 break ;
155157 }
156158 case ENTRY_OPTION . VIEW_LICENSE : {
157- vscode . env . openExternal ( vscode . Uri . parse ( selectedEntry . github . license . url ) ) ;
159+ env . openExternal ( Uri . parse ( selectedEntry . github . license . url ) ) ;
158160 break ;
159161 }
160162 case ENTRY_OPTION . COPY_NAME : {
161- vscode . env . clipboard . writeText ( selectedEntry . npmPkg ) ;
162- vscode . window . showInformationMessage ( 'Package name copied to clipboard' ) ;
163+ env . clipboard . writeText ( selectedEntry . npmPkg ) ;
164+ window . showInformationMessage ( 'Package name copied to clipboard' ) ;
163165 break ;
164166 }
165167 case ENTRY_OPTION . COPY_REPO_URL : {
166- vscode . env . clipboard . writeText ( selectedEntry . githubUrl ) ;
167- vscode . window . showInformationMessage ( 'Repository URL copied to clipboard' ) ;
168+ env . clipboard . writeText ( selectedEntry . githubUrl ) ;
169+ window . showInformationMessage ( 'Repository URL copied to clipboard' ) ;
168170 break ;
169171 }
170172 case ENTRY_OPTION . COPY_NPM_URL : {
171- vscode . env . clipboard . writeText ( `https://www.npmjs.com/package/${ selectedEntry . npmPkg } ` ) ;
172- vscode . window . showInformationMessage ( 'npm registry URL copied to clipboard' ) ;
173+ env . clipboard . writeText ( `https://www.npmjs.com/package/${ selectedEntry . npmPkg } ` ) ;
174+ window . showInformationMessage ( 'npm registry URL copied to clipboard' ) ;
173175 break ;
174176 }
175177 case ENTRY_OPTION . GO_BACK : {
0 commit comments