Skip to content

Commit c0a5e5d

Browse files
authored
remove fs-extra from dependencies (#212)
1 parent 2ebda03 commit c0a5e5d

12 files changed

Lines changed: 61 additions & 84 deletions

File tree

.changeset/spotty-owls-pull.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@manypkg/find-root": patch
3+
"@manypkg/tools": patch
4+
---
5+
6+
Remove fs-extra from dependencies

packages/find-root/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@
1010
"main": "dist/manypkg-find-root.cjs.js",
1111
"module": "dist/manypkg-find-root.esm.js",
1212
"dependencies": {
13-
"@manypkg/tools": "^1.1.1",
14-
"fs-extra": "^8.1.0"
13+
"@manypkg/tools": "^1.1.1"
1514
},
1615
"devDependencies": {
1716
"@types/node": "^16.11.7",

packages/find-root/src/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import path from "path";
2-
import fs from "fs-extra";
2+
import fs from "fs";
3+
import fsp from "fs/promises";
34

45
import {
56
Tool,
@@ -114,7 +115,7 @@ export async function findRoot(
114115
let rootDir = await findUp(
115116
async (directory) => {
116117
try {
117-
await fs.access(path.join(directory, "package.json"));
118+
await fsp.access(path.join(directory, "package.json"));
118119
return directory;
119120
} catch (err) {
120121
if (!isNoEntryError(err)) {

packages/tools/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
"license": "MIT",
1010
"main": "dist/manypkg-tools.cjs.js",
1111
"dependencies": {
12-
"fs-extra": "^8.1.0",
1312
"globby": "^11.0.0",
1413
"jju": "^1.4.0",
1514
"read-yaml-file": "^1.1.0"

packages/tools/src/BoltTool.ts

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import path from "path";
2-
import fs from "fs-extra";
32

43
import { Tool, PackageJSON, Packages, InvalidMonorepoError } from "./Tool";
54
import {
65
expandPackageGlobs,
76
expandPackageGlobsSync,
87
} from "./expandPackageGlobs";
8+
import { readJson, readJsonSync } from "./utils";
99

1010
export interface BoltPackageJSON extends PackageJSON {
1111
bolt?: {
@@ -18,9 +18,7 @@ export const BoltTool: Tool = {
1818

1919
async isMonorepoRoot(directory: string): Promise<boolean> {
2020
try {
21-
const pkgJson = (await fs.readJson(
22-
path.join(directory, "package.json")
23-
)) as BoltPackageJSON;
21+
const pkgJson = await readJson(directory, "package.json") as BoltPackageJSON;
2422
if (pkgJson.bolt && pkgJson.bolt.workspaces) {
2523
return true;
2624
}
@@ -35,9 +33,7 @@ export const BoltTool: Tool = {
3533

3634
isMonorepoRootSync(directory: string): boolean {
3735
try {
38-
const pkgJson = fs.readJsonSync(
39-
path.join(directory, "package.json")
40-
) as BoltPackageJSON;
36+
const pkgJson = readJsonSync(directory, "package.json") as BoltPackageJSON;
4137
if (pkgJson.bolt && pkgJson.bolt.workspaces) {
4238
return true;
4339
}
@@ -54,9 +50,7 @@ export const BoltTool: Tool = {
5450
const rootDir = path.resolve(directory);
5551

5652
try {
57-
const pkgJson = (await fs.readJson(
58-
path.join(rootDir, "package.json")
59-
)) as BoltPackageJSON;
53+
const pkgJson = await readJson(rootDir, "package.json") as BoltPackageJSON;
6054
if (!pkgJson.bolt || !pkgJson.bolt.workspaces) {
6155
throw new InvalidMonorepoError(
6256
`Directory ${rootDir} is not a valid ${BoltTool.type} monorepo root: missing bolt.workspaces entry`
@@ -88,9 +82,7 @@ export const BoltTool: Tool = {
8882
const rootDir = path.resolve(directory);
8983

9084
try {
91-
const pkgJson = fs.readJsonSync(
92-
path.join(rootDir, "package.json")
93-
) as BoltPackageJSON;
85+
const pkgJson = readJsonSync(rootDir, "package.json") as BoltPackageJSON;
9486
if (!pkgJson.bolt || !pkgJson.bolt.workspaces) {
9587
throw new InvalidMonorepoError(
9688
`Directory ${directory} is not a valid ${BoltTool.type} monorepo root: missing bolt.workspaces entry`

packages/tools/src/LernaTool.ts

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
import path from "path";
2-
import fs from "fs-extra";
32

43
import {
54
Tool,
6-
Package,
75
PackageJSON,
86
Packages,
97
InvalidMonorepoError,
@@ -12,6 +10,7 @@ import {
1210
expandPackageGlobs,
1311
expandPackageGlobsSync,
1412
} from "./expandPackageGlobs";
13+
import { readJson, readJsonSync } from "./utils";
1514

1615
export interface LernaJson {
1716
useWorkspaces?: boolean;
@@ -23,9 +22,7 @@ export const LernaTool: Tool = {
2322

2423
async isMonorepoRoot(directory: string): Promise<boolean> {
2524
try {
26-
const lernaJson = (await fs.readJson(
27-
path.join(directory, "lerna.json")
28-
)) as LernaJson;
25+
const lernaJson = await readJson(directory, "lerna.json") as LernaJson;
2926
if (lernaJson.useWorkspaces !== true) {
3027
return true;
3128
}
@@ -40,9 +37,7 @@ export const LernaTool: Tool = {
4037

4138
isMonorepoRootSync(directory: string): boolean {
4239
try {
43-
const lernaJson = fs.readJsonSync(
44-
path.join(directory, "lerna.json")
45-
) as LernaJson;
40+
const lernaJson = readJsonSync(directory, "lerna.json") as LernaJson;
4641
if (lernaJson.useWorkspaces !== true) {
4742
return true;
4843
}
@@ -59,10 +54,8 @@ export const LernaTool: Tool = {
5954
const rootDir = path.resolve(directory);
6055

6156
try {
62-
const lernaJson = await fs.readJson(path.join(rootDir, "lerna.json"));
63-
const pkgJson = (await fs.readJson(
64-
path.join(rootDir, "package.json")
65-
)) as PackageJSON;
57+
const lernaJson = await readJson(rootDir, "lerna.json") as LernaJson;
58+
const pkgJson = await readJson(rootDir, "package.json") as PackageJSON;
6659
const packageGlobs: string[] = lernaJson.packages || ["packages/*"];
6760

6861
return {
@@ -89,12 +82,8 @@ export const LernaTool: Tool = {
8982
const rootDir = path.resolve(directory);
9083

9184
try {
92-
const lernaJson = fs.readJsonSync(
93-
path.join(rootDir, "lerna.json")
94-
) as LernaJson;
95-
const pkgJson = fs.readJsonSync(
96-
path.join(rootDir, "package.json")
97-
) as PackageJSON;
85+
const lernaJson = readJsonSync(rootDir, "lerna.json") as LernaJson;
86+
const pkgJson = readJsonSync(rootDir, "package.json") as PackageJSON;
9887
const packageGlobs: string[] = lernaJson.packages || ["packages/*"];
9988

10089
return {

packages/tools/src/PnpmTool.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import path from "path";
22
import readYamlFile, { sync as readYamlFileSync } from "read-yaml-file";
3-
import fs from "fs-extra";
43

54
import {
65
Tool,
7-
Package,
86
PackageJSON,
97
Packages,
108
InvalidMonorepoError,
@@ -13,6 +11,7 @@ import {
1311
expandPackageGlobs,
1412
expandPackageGlobsSync,
1513
} from "./expandPackageGlobs";
14+
import { readJson, readJsonSync } from "./utils";
1615

1716
export interface PnpmWorkspaceYaml {
1817
packages?: string[];
@@ -64,9 +63,7 @@ export const PnpmTool: Tool = {
6463
const manifest = await readYamlFile<{ packages?: string[] }>(
6564
path.join(rootDir, "pnpm-workspace.yaml")
6665
);
67-
const pkgJson = (await fs.readJson(
68-
path.join(rootDir, "package.json")
69-
)) as PackageJSON;
66+
const pkgJson = await readJson(rootDir, "package.json") as PackageJSON;
7067
const packageGlobs: string[] = manifest.packages!;
7168

7269
return {
@@ -96,9 +93,7 @@ export const PnpmTool: Tool = {
9693
const manifest = readYamlFileSync<{ packages?: string[] }>(
9794
path.join(rootDir, "pnpm-workspace.yaml")
9895
);
99-
const pkgJson = fs.readJsonSync(
100-
path.join(rootDir, "package.json")
101-
) as PackageJSON;
96+
const pkgJson = readJsonSync(rootDir, "package.json") as PackageJSON;
10297
const packageGlobs: string[] = manifest.packages!;
10398

10499
return {

packages/tools/src/RootTool.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import path from "path";
2-
import fs from "fs-extra";
32

43
import {
54
Tool,
@@ -8,7 +7,7 @@ import {
87
Packages,
98
InvalidMonorepoError,
109
} from "./Tool";
11-
import { expandPackageGlobs } from "./expandPackageGlobs";
10+
import { readJson, readJsonSync } from "./utils";
1211

1312
export const RootTool: Tool = {
1413
type: "root",
@@ -27,9 +26,7 @@ export const RootTool: Tool = {
2726
const rootDir = path.resolve(directory);
2827

2928
try {
30-
const pkgJson: PackageJSON = await fs.readJson(
31-
path.join(rootDir, "package.json")
32-
);
29+
const pkgJson = await readJson(rootDir, "package.json") as PackageJSON;
3330
const pkg: Package = {
3431
dir: rootDir,
3532
relativeDir: ".",
@@ -56,9 +53,7 @@ export const RootTool: Tool = {
5653
const rootDir = path.resolve(directory);
5754

5855
try {
59-
const pkgJson: PackageJSON = fs.readJsonSync(
60-
path.join(rootDir, "package.json")
61-
);
56+
const pkgJson = readJsonSync(rootDir, "package.json") as PackageJSON;
6257
const pkg: Package = {
6358
dir: rootDir,
6459
relativeDir: ".",

packages/tools/src/RushTool.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import path from "path";
2-
import fs from "fs-extra";
2+
import fs from "fs";
3+
import fsp from "fs/promises";
34
import jju from "jju";
45

56
import {
@@ -9,6 +10,7 @@ import {
910
Packages,
1011
InvalidMonorepoError,
1112
} from "./Tool";
13+
import { readJson, readJsonSync } from "./utils";
1214

1315
interface RushJson {
1416
projects: RushProject[];
@@ -24,15 +26,14 @@ export const RushTool: Tool = {
2426

2527
async isMonorepoRoot(directory: string): Promise<boolean> {
2628
try {
27-
await fs.readFile(path.join(directory, "rush.json"), "utf8");
29+
await fsp.readFile(path.join(directory, "rush.json"), "utf8");
2830
return true;
2931
} catch (err) {
3032
if (err && (err as { code: string }).code === "ENOENT") {
3133
return false;
3234
}
3335
throw err;
3436
}
35-
return false;
3637
},
3738

3839
isMonorepoRootSync(directory: string): boolean {
@@ -45,14 +46,13 @@ export const RushTool: Tool = {
4546
}
4647
throw err;
4748
}
48-
return false;
4949
},
5050

5151
async getPackages(directory: string): Promise<Packages> {
5252
const rootDir = path.resolve(directory);
5353

5454
try {
55-
const rushText: string = await fs.readFile(
55+
const rushText: string = await fsp.readFile(
5656
path.join(rootDir, "rush.json"),
5757
"utf8"
5858
);
@@ -69,7 +69,7 @@ export const RushTool: Tool = {
6969
return {
7070
dir,
7171
relativeDir: path.relative(directory, dir),
72-
packageJson: await fs.readJson(path.join(dir, "package.json")),
72+
packageJson: await readJson(dir, "package.json"),
7373
};
7474
})
7575
);
@@ -107,9 +107,7 @@ export const RushTool: Tool = {
107107
path.resolve(rootDir, project.projectFolder)
108108
);
109109
const packages: Package[] = directories.map((dir: string) => {
110-
const packageJson: PackageJSON = fs.readJsonSync(
111-
path.join(dir, "package.json")
112-
);
110+
const packageJson: PackageJSON = readJsonSync(dir, "package.json");
113111
return {
114112
dir,
115113
relativeDir: path.relative(directory, dir),

packages/tools/src/YarnTool.ts

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
import path from "path";
2-
import fs from "fs-extra";
32

43
import {
54
Tool,
6-
Package,
75
PackageJSON,
86
Packages,
97
InvalidMonorepoError,
@@ -12,6 +10,7 @@ import {
1210
expandPackageGlobs,
1311
expandPackageGlobsSync,
1412
} from "./expandPackageGlobs";
13+
import { readJson, readJsonSync } from "./utils";
1514

1615
export interface YarnPackageJSON extends PackageJSON {
1716
workspaces?: string[] | { packages: string[] };
@@ -22,9 +21,7 @@ export const YarnTool: Tool = {
2221

2322
async isMonorepoRoot(directory: string): Promise<boolean> {
2423
try {
25-
const pkgJson = (await fs.readJson(
26-
path.join(directory, "package.json")
27-
)) as YarnPackageJSON;
24+
const pkgJson = await readJson(directory, "package.json") as YarnPackageJSON;
2825
if (pkgJson.workspaces) {
2926
if (
3027
Array.isArray(pkgJson.workspaces) ||
@@ -44,9 +41,7 @@ export const YarnTool: Tool = {
4441

4542
isMonorepoRootSync(directory: string): boolean {
4643
try {
47-
const pkgJson = fs.readJsonSync(
48-
path.join(directory, "package.json")
49-
) as YarnPackageJSON;
44+
const pkgJson = readJsonSync(directory, "package.json") as YarnPackageJSON;
5045
if (pkgJson.workspaces) {
5146
if (
5247
Array.isArray(pkgJson.workspaces) ||
@@ -68,9 +63,7 @@ export const YarnTool: Tool = {
6863
const rootDir = path.resolve(directory);
6964

7065
try {
71-
const pkgJson = (await fs.readJson(
72-
path.join(rootDir, "package.json")
73-
)) as YarnPackageJSON;
66+
const pkgJson = await readJson(rootDir, "package.json") as YarnPackageJSON;
7467
const packageGlobs: string[] = Array.isArray(pkgJson.workspaces)
7568
? pkgJson.workspaces
7669
: pkgJson.workspaces!.packages;
@@ -99,9 +92,7 @@ export const YarnTool: Tool = {
9992
const rootDir = path.resolve(directory);
10093

10194
try {
102-
const pkgJson = fs.readJsonSync(
103-
path.join(rootDir, "package.json")
104-
) as YarnPackageJSON;
95+
const pkgJson = readJsonSync(rootDir, "package.json") as YarnPackageJSON;
10596
const packageGlobs: string[] = Array.isArray(pkgJson.workspaces)
10697
? pkgJson.workspaces
10798
: pkgJson.workspaces!.packages;

0 commit comments

Comments
 (0)