@@ -6,8 +6,10 @@ import {
66 getAPIVersion ,
77 GroupVersionKind ,
88 Import ,
9- OutputFile
9+ OutputFile ,
10+ GenerateOptions as BaseGenerateOptions
1011} from "@kubernetes-models/generate" ;
12+ import { GenerateOptions } from "../generate" ;
1113import { formatComment , trimSuffix } from "@kubernetes-models/string-util" ;
1214import { getRelativePath , getSchemaPath } from "../utils" ;
1315
@@ -19,7 +21,8 @@ function getFieldType(key: string[]): string | undefined {
1921
2022function generateDefinition (
2123 gvk : GroupVersionKind ,
22- def : Definition
24+ def : Definition ,
25+ options : GenerateOptions
2326) : OutputFile {
2427 const apiVersion = getAPIVersion ( gvk ) ;
2528 const className = gvk . kind ;
@@ -66,8 +69,9 @@ constructor(data?: ModelData<${interfaceName}>) {
6669 } ) ;
6770
6871 imports . push ( {
69- name : "Model" ,
70- path : "@kubernetes-models/base"
72+ alias : "Model" ,
73+ name : options . customBaseClassName as string ,
74+ path : options . customBaseClassImportPath as string
7175 } ) ;
7276
7377 imports . push ( {
@@ -114,14 +118,22 @@ setValidateFunc(${className}, validate as ValidateFunc<${interfaceName}>);
114118 } ;
115119}
116120
117- const generateDefinitions : Generator = async ( definitions ) => {
121+ const generateDefinitions : Generator = async ( definitions , options = { } ) => {
118122 const output : OutputFile [ ] = [ ] ;
119123
124+ // Convert base options to local options format
125+ const localOptions : GenerateOptions = {
126+ input : "" ,
127+ outputPath : "" ,
128+ customBaseClassName : options . baseClassName ,
129+ customBaseClassImportPath : options . baseClassImportPath
130+ } ;
131+
120132 for ( const def of definitions ) {
121133 const gvks = def . gvk ;
122134
123135 if ( gvks && gvks . length ) {
124- output . push ( generateDefinition ( gvks [ 0 ] , def ) ) ;
136+ output . push ( generateDefinition ( gvks [ 0 ] , def , localOptions ) ) ;
125137 }
126138 }
127139
0 commit comments