Skip to content

Commit 8bd9eb6

Browse files
authored
Merge pull request #3585 from hey-api/fix/output-header-default
fix: pass default value to output header function
2 parents 83fec67 + c076e4d commit 8bd9eb6

File tree

12 files changed

+52
-14
lines changed

12 files changed

+52
-14
lines changed

.changeset/brown-owls-flow.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@hey-api/shared": patch
3+
---
4+
5+
**utils**: `outputHeaderToPrefix()` function signature change

.changeset/weak-onions-flash.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+
**output**: pass default value to `header` function

packages/openapi-python/src/config/output/config.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ export function getOutput(userConfig: { output: MaybeArray<string | UserOutput>
2424
name: '{{name}}',
2525
suffix: '_gen',
2626
},
27-
header: '# This file is auto-generated by @hey-api/openapi-python',
2827
path: '',
2928
postProcess: [],
3029
preferExportAll: false,

packages/openapi-python/src/createClient.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ export async function createClient({
107107
eventInputPatch.timeEnd();
108108

109109
const eventParser = logger.timeEvent('parser');
110+
const header = config.output.header;
110111
// TODO: allow overriding via config
111112
const project = new Project({
112113
defaultFileName: '__init__',
@@ -125,7 +126,11 @@ export async function createClient({
125126
: undefined,
126127
renderers: [
127128
new PythonRenderer({
128-
header: config.output.header,
129+
header: (ctx) => {
130+
const defaultValue = ['# This file is auto-generated by @hey-api/openapi-python'];
131+
const result = typeof header === 'function' ? header({ ...ctx, defaultValue }) : header;
132+
return result === undefined ? defaultValue : result;
133+
},
129134
preferExportAll: config.output.preferExportAll,
130135
preferFileExtension: config.output.importFileExtension || undefined,
131136
resolveModuleName: config.output.resolveModuleName,

packages/openapi-python/src/generate/client.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,11 @@ export function generateClientBundle({
154154
project: IProject;
155155
}): Map<string, string> | undefined {
156156
const renamed = new Map<string, string>();
157-
const headerPrefix = outputHeaderToPrefix(header, project);
157+
const headerPrefix = outputHeaderToPrefix({
158+
defaultValue: ['# This file is auto-generated by @hey-api/openapi-python'],
159+
header,
160+
project,
161+
});
158162

159163
// copy Hey API clients to output
160164
const isHeyApiClientPlugin = plugin.name.startsWith('@hey-api/client-');

packages/openapi-python/src/py-dsl/utils/render.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ type ExportsOptions = {
1111
preferExportAll?: boolean;
1212
};
1313
type Header = MaybeArray<string> | null | undefined;
14+
type HeaderArg = MaybeFunc<(ctx: RenderContext<PyDsl>) => Header>;
1415
type Imports = Array<ReadonlyArray<ModuleImport>>;
1516

1617
function headerToLines(header: Header): ReadonlyArray<string> {
@@ -32,7 +33,7 @@ export class PythonRenderer implements Renderer {
3233
*
3334
* @private
3435
*/
35-
private _header?: MaybeFunc<(ctx: RenderContext<PyDsl>) => Header>;
36+
private _header?: HeaderArg;
3637
/**
3738
* Whether `export * from 'module'` should be used when possible instead of named exports.
3839
*
@@ -54,7 +55,7 @@ export class PythonRenderer implements Renderer {
5455

5556
constructor(
5657
args: {
57-
header?: MaybeFunc<(ctx: RenderContext<PyDsl>) => Header>;
58+
header?: HeaderArg;
5859
preferExportAll?: boolean;
5960
preferFileExtension?: string;
6061
resolveModuleName?: (moduleName: string) => string | undefined;

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ export function getOutput(userConfig: { output: MaybeArray<string | UserOutput>
3636
suffix: '.gen',
3737
},
3838
format: null,
39-
header: '// This file is auto-generated by @hey-api/openapi-ts',
4039
lint: null,
4140
path: '',
4241
postProcess: [],

packages/openapi-ts/src/createClient.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ export async function createClient({
107107
eventInputPatch.timeEnd();
108108

109109
const eventParser = logger.timeEvent('parser');
110+
const header = config.output.header;
110111
// TODO: allow overriding via config
111112
const project = new Project({
112113
defaultFileName: 'index',
@@ -125,7 +126,11 @@ export async function createClient({
125126
: undefined,
126127
renderers: [
127128
new TypeScriptRenderer({
128-
header: config.output.header,
129+
header: (ctx) => {
130+
const defaultValue = ['// This file is auto-generated by @hey-api/openapi-ts'];
131+
const result = typeof header === 'function' ? header({ ...ctx, defaultValue }) : header;
132+
return result === undefined ? defaultValue : result;
133+
},
129134
preferExportAll: config.output.preferExportAll,
130135
preferFileExtension: config.output.importFileExtension || undefined,
131136
resolveModuleName: config.output.resolveModuleName,

packages/openapi-ts/src/generate/client.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,11 @@ export function generateClientBundle({
157157
project: IProject;
158158
}): Map<string, string> | undefined {
159159
const renamed = new Map<string, string>();
160-
const headerPrefix = outputHeaderToPrefix(header, project);
160+
const headerPrefix = outputHeaderToPrefix({
161+
defaultValue: ['// This file is auto-generated by @hey-api/openapi-ts'],
162+
header,
163+
project,
164+
});
161165

162166
// copy Hey API clients to output
163167
const isHeyApiClientPlugin = plugin.name.startsWith('@hey-api/client-');

packages/openapi-ts/src/ts-dsl/utils/render.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ type ExportsOptions = {
1212
preferExportAll?: boolean;
1313
};
1414
type Header = MaybeArray<string> | null | undefined;
15+
type HeaderArg = MaybeFunc<(ctx: RenderContext<TsDsl>) => Header>;
1516
type Imports = ReadonlyArray<ReadonlyArray<ModuleImport>>;
1617

1718
function headerToLines(header: Header): ReadonlyArray<string> {
@@ -33,7 +34,7 @@ export class TypeScriptRenderer implements Renderer {
3334
*
3435
* @private
3536
*/
36-
private _header?: MaybeFunc<(ctx: RenderContext<TsDsl>) => Header>;
37+
private _header?: HeaderArg;
3738
/**
3839
* Whether `export * from 'module'` should be used when possible instead of named exports.
3940
*
@@ -55,7 +56,7 @@ export class TypeScriptRenderer implements Renderer {
5556

5657
constructor(
5758
args: {
58-
header?: MaybeFunc<(ctx: RenderContext<TsDsl>) => Header>;
59+
header?: HeaderArg;
5960
preferExportAll?: boolean;
6061
preferFileExtension?: string;
6162
resolveModuleName?: (moduleName: string) => string | undefined;

0 commit comments

Comments
 (0)