Skip to content

Commit 6302793

Browse files
committed
fix: respect NO_INTERACTIVE and NO_INTERACTION environment variables
1 parent a382ae6 commit 6302793

File tree

15 files changed

+44
-3
lines changed

15 files changed

+44
-3
lines changed

.changeset/green-wolves-join.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@hey-api/openapi-ts': patch
3+
---
4+
5+
fix: respect NO_INTERACTIVE and NO_INTERACTION environment variables

packages/openapi-ts/bin/index.cjs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,14 @@ async function start() {
9393
'useOptions',
9494
]);
9595

96+
const isInteractive =
97+
process.stdin.isTTY &&
98+
process.stdout.isTTY &&
99+
!process.env.CI &&
100+
!process.env.NO_INTERACTIVE &&
101+
!process.env.NO_INTERACTION;
102+
userConfig.interactive = isInteractive;
103+
96104
if (params.plugins === true) {
97105
userConfig.plugins = [];
98106
} else if (params.plugins) {

packages/openapi-ts/src/config/init.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ export const initConfigs = async (
5252
dryRun = false,
5353
experimentalParser = true,
5454
exportCore = true,
55+
interactive = false,
5556
name,
5657
request,
5758
useOptions = true,
@@ -113,6 +114,7 @@ export const initConfigs = async (
113114
experimentalParser,
114115
exportCore: false,
115116
input,
117+
interactive,
116118
logs,
117119
name,
118120
output,

packages/openapi-ts/src/error.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import colors from 'ansi-colors';
66
import { findPackageJson } from './generate/tsConfig';
77
import { ensureDirSync } from './generate/utils';
88

9-
export const isInteractive = process.stdin.isTTY && process.stdout.isTTY;
10-
119
export class ConfigError extends Error {}
1210

1311
export class HeyApiError extends Error {
@@ -154,8 +152,10 @@ export const printCrashReport = ({
154152

155153
export const shouldReportCrash = async ({
156154
error,
155+
isInteractive,
157156
}: {
158157
error: unknown;
158+
isInteractive: boolean | undefined;
159159
}): Promise<boolean> => {
160160
if (!isInteractive || error instanceof ConfigError) {
161161
return false;

packages/openapi-ts/src/generate/__tests__/class.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ describe('generateLegacyClientClass', () => {
2525
timeout: 60_000,
2626
},
2727
},
28+
interactive: false,
2829
logs: {
2930
file: true,
3031
level: 'info',

packages/openapi-ts/src/generate/__tests__/core.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ describe('generateLegacyCore', () => {
4040
timeout: 60_000,
4141
},
4242
},
43+
interactive: false,
4344
logs: {
4445
file: true,
4546
level: 'info',
@@ -174,6 +175,7 @@ describe('generateLegacyCore', () => {
174175
timeout: 60_000,
175176
},
176177
},
178+
interactive: false,
177179
logs: {
178180
file: true,
179181
level: 'info',
@@ -291,6 +293,7 @@ describe('generateLegacyCore', () => {
291293
timeout: 60_000,
292294
},
293295
},
296+
interactive: false,
294297
logs: {
295298
file: true,
296299
level: 'info',

packages/openapi-ts/src/generate/legacy/__tests__/index.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ describe('generateIndexFile', () => {
2525
timeout: 60_000,
2626
},
2727
},
28+
interactive: false,
2829
logs: {
2930
file: true,
3031
level: 'info',

packages/openapi-ts/src/generate/legacy/__tests__/output.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ describe('generateLegacyOutput', () => {
3838
timeout: 60_000,
3939
},
4040
},
41+
interactive: false,
4142
logs: {
4243
file: true,
4344
level: 'info',

packages/openapi-ts/src/index.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ export const createClient = async (
8383
} catch (error) {
8484
const config = configs[0] as Config | undefined;
8585
const dryRun = config ? config.dryRun : resolvedConfig?.dryRun;
86+
const isInteractive = config
87+
? config.interactive
88+
: resolvedConfig?.interactive;
8689
const logs = config?.logs ?? getLogs(resolvedConfig);
8790

8891
let logPath: string | undefined;
@@ -93,7 +96,7 @@ export const createClient = async (
9396

9497
if (logs.level !== 'silent') {
9598
printCrashReport({ error, logPath });
96-
if (await shouldReportCrash({ error })) {
99+
if (await shouldReportCrash({ error, isInteractive })) {
97100
await openGitHubIssueWithCrashReport(error);
98101
}
99102
}

packages/openapi-ts/src/plugins/@hey-api/schemas/__tests__/schemas.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ describe('generateLegacySchemas', () => {
2727
timeout: 60_000,
2828
},
2929
},
30+
interactive: false,
3031
logs: {
3132
file: true,
3233
level: 'info',
@@ -162,6 +163,7 @@ describe('generateLegacySchemas', () => {
162163
timeout: 60_000,
163164
},
164165
},
166+
interactive: false,
165167
logs: {
166168
file: true,
167169
level: 'info',

0 commit comments

Comments
 (0)