diff --git a/.changeset/real-colts-doubt.md b/.changeset/real-colts-doubt.md new file mode 100644 index 0000000..7aa53f2 --- /dev/null +++ b/.changeset/real-colts-doubt.md @@ -0,0 +1,5 @@ +--- +"pothos-plugin-effect": patch +--- + +Fix type diff --git a/packages/pothos-plugin-effect/src/global-types.ts b/packages/pothos-plugin-effect/src/global-types.ts index 825d0f4..229e2bb 100644 --- a/packages/pothos-plugin-effect/src/global-types.ts +++ b/packages/pothos-plugin-effect/src/global-types.ts @@ -45,7 +45,7 @@ declare global { Nullable extends FieldNullability, Args extends InputFieldMap, ResolveShape, - ResolveReturnShape extends Effect.Effect, + ResolveReturnShape extends Effect.Effect, >( options: PluginTypes.EffectFieldOptions< Types, @@ -65,7 +65,7 @@ declare global { Nullable extends FieldNullability, Args extends InputFieldMap, ResolveShape, - ResolveReturnShape extends Effect.Effect, + ResolveReturnShape extends Effect.Effect, Fields extends InputFieldMap, InputName extends string, ArgRequired extends boolean, diff --git a/packages/pothos-plugin-effect/src/types.ts b/packages/pothos-plugin-effect/src/types.ts index 4e9a2d6..65ca22d 100644 --- a/packages/pothos-plugin-effect/src/types.ts +++ b/packages/pothos-plugin-effect/src/types.ts @@ -31,37 +31,35 @@ type Resolver< Args, Context, Type, - Return extends Effect.Effect, + Return extends Effect.Effect, > = ( parent: Parent, args: Args, context: Context, info: GraphQLResolveInfo, -) => [Effect.Effect.Success] extends [Type] - ? [Type] extends [readonly (infer Item)[] | null | undefined] - ? ListResolveValue - : Effect.Effect< - MaybePromise>, - unknown, - InferRequirements - > - : `Error: The resolved Effect is an invalid type.`; +) => [Type] extends [readonly (infer Item)[] | null | undefined] + ? ListResolveValue + : Effect.Effect< + MaybePromise>, + unknown, + InferRequirements + >; type ListResolveValue< R extends Runtime.Runtime, Type, Item, - Return extends Effect.Effect, + Return extends Effect.Effect, > = [Return] extends [Stream.Stream] ? GeneratorResolver | Return : null extends Type ? Effect.Effect< - MaybeOption[]>, + MaybePromise[]>>, unknown, InferRequirements > : Effect.Effect< - readonly MaybeOption[], + MaybePromise[]>, unknown, InferRequirements >; @@ -90,7 +88,7 @@ interface FieldOptionsByKind< Nullable extends FieldNullability, Args extends InputFieldMap, ResolveShape, - ResolveReturnShape extends Effect.Effect, + ResolveReturnShape extends Effect.Effect, > { Query: Omit< PothosSchemaTypes.QueryFieldOptions< @@ -213,7 +211,7 @@ export type EffectFieldOptions< Args extends InputFieldMap, Kind extends FieldKind, ResolveShape, - ResolveReturnShape extends Effect.Effect, + ResolveReturnShape extends Effect.Effect, > = FieldOptionsByKind< Types, ParentShape, @@ -232,7 +230,7 @@ export type EffectFieldWithInputOptions< Args extends InputFieldMap, Kind extends FieldKind, ResolveShape, - ResolveReturnShape extends Effect.Effect, + ResolveReturnShape extends Effect.Effect, Fields extends InputFieldMap, InputName extends string, ArgRequired extends boolean, diff --git a/packages/pothos-plugin-effect/tests/schema/base.ts b/packages/pothos-plugin-effect/tests/schema/base.ts index 028f9b5..98a991a 100644 --- a/packages/pothos-plugin-effect/tests/schema/base.ts +++ b/packages/pothos-plugin-effect/tests/schema/base.ts @@ -8,7 +8,8 @@ builder.queryFields((t) => ({ }), intList: t.effect({ type: ['Int'], - resolve: () => Effect.succeed([1, 2, 3]), + nullable: false, + resolve: () => Effect.succeed([1, 2, '3']), }), string: t.effect({ type: 'String', diff --git a/packages/pothos-plugin-effect/tests/schema/drizzle.ts b/packages/pothos-plugin-effect/tests/schema/drizzle.ts index eaa2a9a..b6c3be6 100644 --- a/packages/pothos-plugin-effect/tests/schema/drizzle.ts +++ b/packages/pothos-plugin-effect/tests/schema/drizzle.ts @@ -15,12 +15,12 @@ export const PostSchema = builder builder.queryFields((t) => ({ posts: t.effect({ - type: PostSchema, + type: [PostSchema], nullable: true, resolve: () => Effect.gen(function* () { const postService = yield* PostService; - return postService.getPost(); + return postService.getPosts(); }), }), })); diff --git a/packages/pothos-plugin-effect/tests/setupTest.ts b/packages/pothos-plugin-effect/tests/setupTest.ts index c899d6e..181a077 100644 --- a/packages/pothos-plugin-effect/tests/setupTest.ts +++ b/packages/pothos-plugin-effect/tests/setupTest.ts @@ -46,7 +46,7 @@ const makePostService = Effect.gen(function* () { const drizzle = yield* Drizzle; return { - getPost: () => drizzle.query.posts.findFirst(), + getPosts: () => drizzle.query.posts.findMany(), }; });