11#!/usr/bin/env node
2+
23import * as fs from "node:fs" ;
34import * as path from "node:path" ;
45
@@ -67,7 +68,6 @@ import type {
6768} from "./TypeSource" ;
6869import { urlsFromURLGrammar } from "./URLGrammar" ;
6970
70- // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
7171const packageJSON = require ( "../package.json" ) ;
7272
7373const wordWrap : ( s : string ) => string = _wordwrap ( 90 ) ;
@@ -389,13 +389,14 @@ function makeLangTypeLabel(targetLanguages: readonly TargetLanguage[]): string {
389389 . join ( "|" ) ;
390390}
391391
392- function negatedInferenceFlagName ( name : string ) : string {
392+ function negatedInferenceFlagName ( inputName : string ) : string {
393+ let name = inputName ;
393394 const prefix = "infer" ;
394395 if ( name . startsWith ( prefix ) ) {
395396 name = name . slice ( prefix . length ) ;
396397 }
397398
398- return "no" + capitalize ( name ) ;
399+ return `no ${ capitalize ( name ) } ` ;
399400}
400401
401402function dashedFromCamelCase ( name : string ) : string {
@@ -469,6 +470,7 @@ function makeOptionDefinitions(
469470 return {
470471 name : dashedFromCamelCase ( negatedInferenceFlagName ( name ) ) ,
471472 optionType : "boolean" as const ,
473+ // biome-ignore lint/style/useTemplate: <explanation>
472474 description : flag . negationDescription + "." ,
473475 kind : "cli" as const ,
474476 } ;
@@ -674,16 +676,15 @@ const sectionsAfterRenderers: UsageSection[] = [
674676
675677export function parseCLIOptions (
676678 argv : string [ ] ,
677- targetLanguage ? : TargetLanguage ,
679+ inputTargetLanguage ? : TargetLanguage ,
678680) : CLIOptions {
679681 if ( argv . length === 0 ) {
680- return inferCLIOptions ( { help : true } , targetLanguage ) ;
682+ return inferCLIOptions ( { help : true } , inputTargetLanguage ) ;
681683 }
682684
683- const targetLanguages =
684- targetLanguage === undefined
685- ? defaultTargetLanguages
686- : [ targetLanguage ] ;
685+ const targetLanguages = inputTargetLanguage
686+ ? [ inputTargetLanguage ]
687+ : defaultTargetLanguages ;
687688 const optionDefinitions = makeOptionDefinitions ( targetLanguages ) ;
688689
689690 // We can only fully parse the options once we know which renderer is selected,
@@ -692,9 +693,11 @@ export function parseCLIOptions(
692693 // twice. This is the first parse to get the renderer:
693694 const incompleteOptions = inferCLIOptions (
694695 parseOptions ( optionDefinitions , argv , true ) ,
695- targetLanguage ,
696+ inputTargetLanguage ,
696697 ) ;
697- if ( targetLanguage === undefined ) {
698+
699+ let targetLanguage = inputTargetLanguage as TargetLanguage ;
700+ if ( inputTargetLanguage === undefined ) {
698701 const languageName = isLanguageName ( incompleteOptions . lang )
699702 ? incompleteOptions . lang
700703 : "typescript" ;
@@ -828,7 +831,11 @@ async function typeSourcesForURIs(
828831 case "schema" :
829832 return uris . map (
830833 ( uri ) =>
831- ( { kind : "schema" , name, uris : [ uri ] } ) as SchemaTypeSource ,
834+ ( {
835+ kind : "schema" ,
836+ name,
837+ uris : [ uri ] ,
838+ } ) as SchemaTypeSource ,
832839 ) ;
833840 default:
834841 return panic (
@@ -879,15 +886,18 @@ function makeTypeScriptSource(fileNames: string[]): SchemaTypeSource {
879886}
880887
881888export function jsonInputForTargetLanguage (
882- targetLanguage : string | TargetLanguage ,
889+ _targetLanguage : string | TargetLanguage ,
883890 languages ?: TargetLanguage [ ] ,
884891 handleJSONRefs = false ,
885892) : JSONInput < Readable > {
886- if ( typeof targetLanguage === "string" ) {
887- const languageName = isLanguageName ( targetLanguage )
888- ? targetLanguage
893+ let targetLanguage : TargetLanguage ;
894+ if ( typeof _targetLanguage === "string" ) {
895+ const languageName = isLanguageName ( _targetLanguage )
896+ ? _targetLanguage
889897 : "typescript" ;
890898 targetLanguage = defined ( languageNamed ( languageName , languages ) ) ;
899+ } else {
900+ targetLanguage = _targetLanguage ;
891901 }
892902
893903 const compressedJSON = new CompressedJSONFromStream (
@@ -983,7 +993,7 @@ export async function makeQuicktypeOptions(
983993 let leadingComments : string [ ] | undefined = undefined ;
984994 let fixedTopLevels = false ;
985995 switch ( options . srcLang ) {
986- case "graphql" :
996+ case "graphql" : {
987997 let schemaString : string | undefined = undefined ;
988998 let wroteSchemaToFile = false ;
989999 if ( options . graphqlIntrospect !== undefined ) {
@@ -1040,6 +1050,7 @@ export async function makeQuicktypeOptions(
10401050
10411051 sources = gqlSources ;
10421052 break ;
1053+ }
10431054 case "json ":
10441055 case "schema ":
10451056 sources = await getSources ( options ) ;
0 commit comments