Skip to content

Commit 1f16a5f

Browse files
committed
fix: fix renderTmpl.utils context
1 parent 537ebdd commit 1f16a5f

File tree

2 files changed

+48
-12
lines changed

2 files changed

+48
-12
lines changed

Diff for: index.d.ts

+8
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,14 @@ export interface GenerateApiConfiguration {
718718
typeName?: string,
719719
formattersMap?: Record<MAIN_SCHEMA_TYPES, (content: ModelType) => string>,
720720
) => ModelType;
721+
safeAddNullToType: (
722+
schema: { type: string; nullable?: boolean; "x-nullable"?: boolean },
723+
type: unknown,
724+
) => string;
725+
isNeedToAddNull: (
726+
schema: { type: string; nullable?: boolean; "x-nullable"?: boolean },
727+
type: unknown,
728+
) => boolean;
721729
formatters: Record<
722730
MAIN_SCHEMA_TYPES,
723731
(content: string | object | string[] | object[]) => string

Diff for: src/code-gen-process.js

+40-12
Original file line numberDiff line numberDiff line change
@@ -204,32 +204,60 @@ class CodeGenProcess {
204204
}
205205

206206
getRenderTemplateData = () => {
207+
const { schemaParserFabric } = this
208+
const { schemaFormatters } = schemaParserFabric
207209
return {
208210
utils: {
209211
Ts: this.config.Ts,
210212
formatDescription:
211-
this.schemaParserFabric.schemaFormatters.formatDescription,
213+
schemaParserFabric.schemaFormatters.formatDescription.bind(
214+
schemaFormatters,
215+
),
212216
internalCase: internalCase,
213217
classNameCase: pascalCase,
214218
pascalCase: pascalCase,
215-
getInlineParseContent: this.schemaParserFabric.getInlineParseContent,
216-
getParseContent: this.schemaParserFabric.getParseContent,
217-
getComponentByRef: this.schemaComponentsMap.get,
218-
parseSchema: this.schemaParserFabric.parseSchema,
219-
checkAndAddNull: this.schemaParserFabric.schemaUtils.safeAddNullToType,
219+
getInlineParseContent:
220+
schemaParserFabric.getInlineParseContent.bind(
221+
schemaParserFabric,
222+
),
223+
getParseContent: schemaParserFabric.getParseContent.bind(
224+
schemaParserFabric,
225+
),
226+
getComponentByRef: this.schemaComponentsMap.get.bind(
227+
this.schemaComponentsMap,
228+
),
229+
parseSchema: schemaParserFabric.parseSchema.bind(
230+
schemaParserFabric,
231+
),
232+
checkAndAddNull:
233+
schemaParserFabric.schemaUtils.safeAddNullToType.bind(
234+
schemaParserFabric.schemaUtils,
235+
),
220236
safeAddNullToType:
221-
this.schemaParserFabric.schemaUtils.safeAddNullToType,
237+
schemaParserFabric.schemaUtils.safeAddNullToType.bind(
238+
schemaParserFabric.schemaUtils,
239+
),
222240
isNeedToAddNull:
223-
this.schemaParserFabric.schemaUtils.isNullMissingInType,
224-
inlineExtraFormatters: this.schemaParserFabric.schemaFormatters.inline,
225-
formatters: this.schemaParserFabric.schemaFormatters.base,
226-
formatModelName: this.typeNameFormatter.format,
241+
schemaParserFabric.schemaUtils.isNullMissingInType.bind(
242+
schemaParserFabric.schemaUtils,
243+
),
244+
inlineExtraFormatters: Object.keys(schemaFormatters.inline).reduce((prev, each) => {
245+
return prev[each] = schemaFormatters.inline[each].bind(schemaFormatters)
246+
}, {}),
247+
formatters: Object.keys(schemaFormatters.base).reduce((prev, each) => {
248+
return prev[each] = schemaFormatters.base[each].bind(schemaFormatters)
249+
}, {}),
250+
formatModelName: this.typeNameFormatter.format.bind(
251+
this.typeNameFormatter,
252+
),
227253
fmtToJSDocLine: function fmtToJSDocLine(line, { eol = true }) {
228254
return ` * ${line}${eol ? "\n" : ""}`;
229255
},
230256
NameResolver: NameResolver,
231257
_,
232-
require: this.templatesWorker.requireFnFromTemplate,
258+
require: this.templatesWorker.requireFnFromTemplate.bind(
259+
this.templatesWorker,
260+
),
233261
},
234262
config: this.config,
235263
};

0 commit comments

Comments
 (0)