fix(utils): avoid optional properties on graphql generated file (#10476)
FIXES: SUP-367
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@medusajs/utils": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
fix: avoid optional fields on graphql generated types
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import { codegen } from "@graphql-codegen/core"
|
import { codegen } from "@graphql-codegen/core"
|
||||||
import { type GraphQLSchema, parse, printSchema } from "graphql"
|
|
||||||
import * as typescriptPlugin from "@graphql-codegen/typescript"
|
import * as typescriptPlugin from "@graphql-codegen/typescript"
|
||||||
import { ModuleJoinerConfig } from "@medusajs/types"
|
import { ModuleJoinerConfig } from "@medusajs/types"
|
||||||
|
import { type GraphQLSchema, parse, printSchema } from "graphql"
|
||||||
import { FileSystem } from "../common"
|
import { FileSystem } from "../common"
|
||||||
|
|
||||||
function buildEntryPointsTypeMap({
|
function buildEntryPointsTypeMap({
|
||||||
@@ -13,15 +13,15 @@ function buildEntryPointsTypeMap({
|
|||||||
}): { entryPoint: string; entityType: any }[] {
|
}): { entryPoint: string; entityType: any }[] {
|
||||||
// build map entry point to there type to be merged and used by the remote query
|
// build map entry point to there type to be merged and used by the remote query
|
||||||
|
|
||||||
return joinerConfigs
|
return joinerConfigs.flatMap((config) => {
|
||||||
.flatMap((config) => {
|
const aliases = Array.isArray(config.alias)
|
||||||
const aliases = Array.isArray(config.alias)
|
? config.alias
|
||||||
? config.alias
|
: config.alias
|
||||||
: config.alias
|
? [config.alias]
|
||||||
? [config.alias]
|
: []
|
||||||
: []
|
|
||||||
|
|
||||||
return aliases.flatMap((alias) => {
|
return aliases
|
||||||
|
.flatMap((alias) => {
|
||||||
const names = Array.isArray(alias.name) ? alias.name : [alias.name]
|
const names = Array.isArray(alias.name) ? alias.name : [alias.name]
|
||||||
const entity = alias?.["entity"]
|
const entity = alias?.["entity"]
|
||||||
return names.map((aliasItem) => {
|
return names.map((aliasItem) => {
|
||||||
@@ -35,8 +35,8 @@ function buildEntryPointsTypeMap({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
.filter(Boolean)
|
||||||
.filter(Boolean)
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
async function generateTypes({
|
async function generateTypes({
|
||||||
@@ -111,6 +111,9 @@ export async function gqlSchemaToTypes({
|
|||||||
output: "Record<string, unknown>",
|
output: "Record<string, unknown>",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
avoidOptionals: {
|
||||||
|
field: true, // Avoid optional fields in types
|
||||||
|
},
|
||||||
},
|
},
|
||||||
filename: "",
|
filename: "",
|
||||||
schema: parse(printSchema(schema as any)),
|
schema: parse(printSchema(schema as any)),
|
||||||
|
|||||||
Reference in New Issue
Block a user