react-doctor 0.2.12 → 0.2.13-dev.adbec28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.js +19 -9
  3. package/package.json +4 -4
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <picture>
2
2
  <source media="(prefers-color-scheme: dark)" srcset="./assets/react-doctor-readme-logo-dark.svg">
3
3
  <source media="(prefers-color-scheme: light)" srcset="./assets/react-doctor-readme-logo-light.svg">
4
- <img alt="React Doctor" src="./assets/react-doctor-readme-logo-light.svg" width="180" height="40">
4
+ <img alt="React Doctor" src="./assets/react-doctor-readme-logo-light.svg" width="239" height="40">
5
5
  </picture>
6
6
 
7
7
  [![version](https://img.shields.io/npm/v/react-doctor?style=flat&colorA=000000&colorB=000000)](https://npmjs.com/package/react-doctor)
package/dist/cli.js CHANGED
@@ -6578,6 +6578,11 @@ const shouldSelectAllChoices = (choiceStates) => {
6578
6578
  return choiceStates.filter((choiceState) => !choiceState.disabled).some((choiceState) => choiceState.selected !== true);
6579
6579
  };
6580
6580
  //#endregion
6581
+ //#region src/cli/utils/unref-stdin.ts
6582
+ const unrefStdin = () => {
6583
+ process.stdin.unref?.();
6584
+ };
6585
+ //#endregion
6581
6586
  //#region src/cli/utils/prompts.ts
6582
6587
  const require$1 = createRequire(import.meta.url);
6583
6588
  const PROMPTS_MULTISELECT_MODULE_PATH = "prompts/lib/elements/multiselect";
@@ -6620,7 +6625,7 @@ const patchMultiselectSubmit = () => {
6620
6625
  const prompts = (questions, options = {}) => {
6621
6626
  patchMultiselectToggleAll();
6622
6627
  patchMultiselectSubmit();
6623
- return basePrompts(questions, { onCancel: options.onCancel ?? onCancel });
6628
+ return basePrompts(questions, { onCancel: options.onCancel ?? onCancel }).finally(unrefStdin);
6624
6629
  };
6625
6630
  //#endregion
6626
6631
  //#region src/cli/utils/resolve-oxlint-node.ts
@@ -6674,7 +6679,7 @@ const resolveOxlintNodeEffect = (isLintEnabled, isQuiet) => Effect.gen(function*
6674
6679
  const resolveOxlintNode = (isLintEnabled, isQuiet) => Effect.runPromise(resolveOxlintNodeEffect(isLintEnabled, isQuiet).pipe(Effect.provide(NodeResolver.layerNode)));
6675
6680
  //#endregion
6676
6681
  //#region src/cli/utils/version.ts
6677
- const VERSION = "0.2.12";
6682
+ const VERSION = "0.2.13-dev.adbec28";
6678
6683
  //#endregion
6679
6684
  //#region src/inspect.ts
6680
6685
  const silentConsole = makeNoopConsole();
@@ -7467,7 +7472,7 @@ const defaultWait = (milliseconds) => new Promise((resolve) => {
7467
7472
  setTimeout(resolve, milliseconds);
7468
7473
  });
7469
7474
  const defaultSelect = async (message) => {
7470
- const { setupReactDoctorChoice } = await basePrompts({
7475
+ const { setupReactDoctorChoice } = await prompts({
7471
7476
  type: "select",
7472
7477
  name: "setupReactDoctorChoice",
7473
7478
  message,
@@ -8802,6 +8807,7 @@ const defaultInstallDependencyRunner = (input) => {
8802
8807
  shell: process.platform === "win32"
8803
8808
  });
8804
8809
  };
8810
+ const formatInstallCommand = (input) => [input.command, ...input.args].join(" ");
8805
8811
  const installReactDoctorDependency = async (options) => {
8806
8812
  const packageJson = readPackageJson(options.projectRoot);
8807
8813
  if (!isRecord(packageJson)) return {
@@ -8814,7 +8820,15 @@ const installReactDoctorDependency = async (options) => {
8814
8820
  dependencyReason: "invalid-dev-dependencies"
8815
8821
  };
8816
8822
  const runnerInput = buildInstallCommand(options.projectRoot);
8817
- await (options.runner ?? defaultInstallDependencyRunner)(runnerInput);
8823
+ try {
8824
+ await (options.runner ?? defaultInstallDependencyRunner)(runnerInput);
8825
+ } catch {
8826
+ return {
8827
+ dependencyStatus: "skipped",
8828
+ dependencyReason: "install-command-failed",
8829
+ installCommand: formatInstallCommand(runnerInput)
8830
+ };
8831
+ }
8818
8832
  return { dependencyStatus: "created" };
8819
8833
  };
8820
8834
  const buildManualGitHookTarget = (hookPath, projectRoot) => ({
@@ -8841,6 +8855,7 @@ const formatDependencyInstallMessage = (result) => {
8841
8855
  if (result.dependencyStatus === "created") return "Installed dev dependency: react-doctor.";
8842
8856
  if (result.dependencyStatus === "existing") return "React Doctor dependency already exists.";
8843
8857
  if (result.dependencyReason === "invalid-dev-dependencies") return "Skipped dev dependency install: devDependencies field is not an object.";
8858
+ if (result.dependencyReason === "install-command-failed") return `Skipped dev dependency install: package manager command failed. Run manually: ${result.installCommand ?? `npm install --save-dev react-doctor@latest`}`;
8844
8859
  return "Skipped dev dependency install: package.json missing or invalid.";
8845
8860
  };
8846
8861
  const installReactDoctorPackageSetup = async (projectRoot, dependencyRunner) => {
@@ -9186,11 +9201,6 @@ const stripUnknownCliFlags = (argv) => {
9186
9201
  ];
9187
9202
  };
9188
9203
  //#endregion
9189
- //#region src/cli/utils/unref-stdin.ts
9190
- const unrefStdin = () => {
9191
- process.stdin.unref?.();
9192
- };
9193
- //#endregion
9194
9204
  //#region src/cli/index.ts
9195
9205
  process.on("SIGINT", exitGracefully);
9196
9206
  process.on("SIGTERM", exitGracefully);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-doctor",
3
- "version": "0.2.12",
3
+ "version": "0.2.13-dev.adbec28",
4
4
  "description": "Diagnose and fix React codebases for security, performance, correctness, accessibility, bundle-size, and architecture issues",
5
5
  "keywords": [
6
6
  "accessibility",
@@ -58,14 +58,14 @@
58
58
  "oxlint": "^1.66.0",
59
59
  "prompts": "^2.4.2",
60
60
  "typescript": ">=5.0.4 <7",
61
- "oxlint-plugin-react-doctor": "0.2.12"
61
+ "oxlint-plugin-react-doctor": "0.2.13-dev.adbec28"
62
62
  },
63
63
  "devDependencies": {
64
64
  "@types/prompts": "^2.4.9",
65
65
  "commander": "^14.0.3",
66
66
  "ora": "^9.4.0",
67
- "@react-doctor/api": "0.2.12",
68
- "@react-doctor/core": "0.2.12"
67
+ "@react-doctor/api": "0.2.13",
68
+ "@react-doctor/core": "0.2.13"
69
69
  },
70
70
  "engines": {
71
71
  "node": "^20.19.0 || >=22.12.0"