From f65a3cc06df9faca3615f30eb4d3bf889efa5765 Mon Sep 17 00:00:00 2001 From: "Carlos R. L. Rodrigues" <37986729+carlos-r-l-rodrigues@users.noreply.github.com> Date: Fri, 6 Dec 2024 09:16:02 -0300 Subject: [PATCH] fix(utils): avoid optional properties on graphql generated file (#10476) FIXES: SUP-367 --- .changeset/green-pants-remain.md | 5 ++++ .../utils/src/graphql/graphql-to-ts-types.ts | 25 +++++++++++-------- 2 files changed, 19 insertions(+), 11 deletions(-) create mode 100644 .changeset/green-pants-remain.md diff --git a/.changeset/green-pants-remain.md b/.changeset/green-pants-remain.md new file mode 100644 index 0000000000..6875fb1cc0 --- /dev/null +++ b/.changeset/green-pants-remain.md @@ -0,0 +1,5 @@ +--- +"@medusajs/utils": patch +--- + +fix: avoid optional fields on graphql generated types diff --git a/packages/core/utils/src/graphql/graphql-to-ts-types.ts b/packages/core/utils/src/graphql/graphql-to-ts-types.ts index b449f6f252..7082ae0277 100644 --- a/packages/core/utils/src/graphql/graphql-to-ts-types.ts +++ b/packages/core/utils/src/graphql/graphql-to-ts-types.ts @@ -1,7 +1,7 @@ import { codegen } from "@graphql-codegen/core" -import { type GraphQLSchema, parse, printSchema } from "graphql" import * as typescriptPlugin from "@graphql-codegen/typescript" import { ModuleJoinerConfig } from "@medusajs/types" +import { type GraphQLSchema, parse, printSchema } from "graphql" import { FileSystem } from "../common" function buildEntryPointsTypeMap({ @@ -13,15 +13,15 @@ function buildEntryPointsTypeMap({ }): { entryPoint: string; entityType: any }[] { // build map entry point to there type to be merged and used by the remote query - return joinerConfigs - .flatMap((config) => { - const aliases = Array.isArray(config.alias) - ? config.alias - : config.alias - ? [config.alias] - : [] + return joinerConfigs.flatMap((config) => { + const aliases = Array.isArray(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 entity = alias?.["entity"] return names.map((aliasItem) => { @@ -35,8 +35,8 @@ function buildEntryPointsTypeMap({ } }) }) - }) - .filter(Boolean) + .filter(Boolean) + }) } async function generateTypes({ @@ -111,6 +111,9 @@ export async function gqlSchemaToTypes({ output: "Record", }, }, + avoidOptionals: { + field: true, // Avoid optional fields in types + }, }, filename: "", schema: parse(printSchema(schema as any)),