Skip to content

Commit

Permalink
refactor(lib): use promise version of fs.readdir
Browse files Browse the repository at this point in the history
  • Loading branch information
micalevisk committed Apr 23, 2023
1 parent dd5962e commit ea9cdf5
Showing 1 changed file with 16 additions and 18 deletions.
34 changes: 16 additions & 18 deletions lib/package-managers/package-manager.factory.ts
@@ -1,4 +1,4 @@
import { readdir } from 'fs';
import * as fs from 'fs';
import { AbstractPackageManager } from './abstract.package-manager';
import { NpmPackageManager } from './npm.package-manager';
import { PackageManager } from './package-manager';
Expand All @@ -20,22 +20,20 @@ export class PackageManagerFactory {
}

public static async find(): Promise<AbstractPackageManager> {
return new Promise<AbstractPackageManager>((resolve) => {
readdir(process.cwd(), (error, files) => {
if (error) {
resolve(this.create(PackageManager.NPM));
} else {
if (files.findIndex((filename) => filename === 'yarn.lock') > -1) {
resolve(this.create(PackageManager.YARN));
} else if (
files.findIndex((filename) => filename === 'pnpm-lock.yaml') > -1
) {
resolve(this.create(PackageManager.PNPM));
} else {
resolve(this.create(PackageManager.NPM));
}
}
});
});
const DEFAULT_PACKAGE_MANAGER = PackageManager.NPM;

try {
const files = await fs.promises.readdir(process.cwd());

const hasYarnLockFile = files.includes('yarn.lock');
if (hasYarnLockFile) return this.create(PackageManager.YARN);

const hasPnpmLockFile = files.includes('pnpm-lock.yaml');
if (hasPnpmLockFile) return this.create(PackageManager.PNPM);

return this.create(DEFAULT_PACKAGE_MANAGER);
} catch (error) {
return this.create(DEFAULT_PACKAGE_MANAGER);
}
}
}

0 comments on commit ea9cdf5

Please sign in to comment.