naystack 1.4.15 → 1.4.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,16 +5,16 @@ import { AuthorizedContext, Context } from './types.mjs';
5
5
  type ReturnOptions = Parameters<typeof Query>[1];
6
6
  type ArgsOptions = Parameters<typeof Arg>[2];
7
7
  type NormalizeNullUndefined<T> = {
8
- [K in keyof T as null extends T[K] ? K : never]?: T[K];
8
+ [K in keyof T as null extends T[K] ? K : never]?: Exclude<T[K], undefined>;
9
9
  } & {
10
- [K in keyof T as null extends T[K] ? never : K]: T[K];
10
+ [K in keyof T as null extends T[K] ? never : K]: undefined extends T[K] ? Exclude<T[K], undefined> | null : T[K];
11
11
  };
12
12
  type NullableOptions<T, X extends boolean> = T & {
13
13
  nullable: X;
14
14
  };
15
- type ParsedGQLType<T> = T extends StringConstructor ? string : T extends NumberConstructor ? number : T extends BooleanConstructor ? boolean : T extends GraphQLScalarType<infer U> ? U : T extends ClassType<infer U> ? NormalizeNullUndefined<U> : T extends Record<infer K, string | number> ? T[K] : void;
16
- type ParsedGQLTypeWithArray<T> = T extends Array<infer U> ? ParsedGQLType<U>[] : ParsedGQLType<T>;
17
- type ParsedGQLTypeWithNullability<T, IsNullable extends boolean> = IsNullable extends true ? ParsedGQLTypeWithArray<T> | null | undefined : ParsedGQLTypeWithArray<T>;
15
+ type ParsedGQLType<T, MergeNullUndefined extends boolean> = T extends StringConstructor ? string : T extends NumberConstructor ? number : T extends BooleanConstructor ? boolean : T extends GraphQLScalarType<infer U> ? U : T extends ClassType<infer U> ? MergeNullUndefined extends true ? NormalizeNullUndefined<U> : U : T extends Record<infer K, string | number> ? T[K] : void;
16
+ type ParsedGQLTypeWithArray<T, MergeNullUndefined extends boolean> = T extends Array<infer U> ? ParsedGQLType<U, MergeNullUndefined>[] : ParsedGQLType<T, MergeNullUndefined>;
17
+ type ParsedGQLTypeWithNullability<T, IsNullable extends boolean, MergeNullUndefined extends boolean> = IsNullable extends true ? ParsedGQLTypeWithArray<T, MergeNullUndefined> | null | undefined : ParsedGQLTypeWithArray<T, MergeNullUndefined>;
18
18
  interface BaseDefinition<T, U, IsAuth extends boolean = false, OutputNullable extends boolean = false, InputNullable extends boolean = false> {
19
19
  output: T;
20
20
  outputOptions?: NullableOptions<ReturnOptions, OutputNullable>;
@@ -23,12 +23,12 @@ interface BaseDefinition<T, U, IsAuth extends boolean = false, OutputNullable ex
23
23
  authorized?: IsAuth;
24
24
  }
25
25
  interface QueryDefinition<T, U, IsAuth extends boolean = false, OutputNullable extends boolean = false, InputNullable extends boolean = false> extends BaseDefinition<T, U, IsAuth, OutputNullable, InputNullable> {
26
- fn: (ctx: IsAuth extends true ? AuthorizedContext : Context, data: ParsedGQLTypeWithNullability<U, InputNullable>) => Promise<ParsedGQLTypeWithNullability<T, OutputNullable>> | ParsedGQLTypeWithNullability<T, OutputNullable>;
26
+ fn: (ctx: IsAuth extends true ? AuthorizedContext : Context, data: ParsedGQLTypeWithNullability<U, InputNullable, false>) => Promise<ParsedGQLTypeWithNullability<T, OutputNullable, true>> | ParsedGQLTypeWithNullability<T, OutputNullable, true>;
27
27
  mutation?: boolean;
28
28
  }
29
29
  declare function query<T, U, IsAuth extends boolean = false, OutputNullable extends boolean = false, InputNullable extends boolean = false>(fn: QueryDefinition<T, U, IsAuth, OutputNullable, InputNullable>["fn"], options: Omit<QueryDefinition<T, U, IsAuth, OutputNullable, InputNullable>, "fn">): QueryDefinition<T, U, IsAuth, OutputNullable, InputNullable>;
30
30
  interface FieldResolverDefinition<T, U, Root, IsAuth extends boolean = false, OutputNullable extends boolean = false, InputNullable extends boolean = false> extends BaseDefinition<T, U, IsAuth, OutputNullable, InputNullable> {
31
- fn: (root: Root, ctx: IsAuth extends true ? AuthorizedContext : Context, data: ParsedGQLTypeWithNullability<U, InputNullable>) => Promise<ParsedGQLTypeWithNullability<T, OutputNullable>> | ParsedGQLTypeWithNullability<T, OutputNullable>;
31
+ fn: (root: Root, ctx: IsAuth extends true ? AuthorizedContext : Context, data: ParsedGQLTypeWithNullability<U, InputNullable, false>) => Promise<ParsedGQLTypeWithNullability<T, OutputNullable, true>> | ParsedGQLTypeWithNullability<T, OutputNullable, true>;
32
32
  }
33
33
  declare function field<T, U, IsAuth extends boolean, Root, OutputNullable extends boolean = false, InputNullable extends boolean = false>(fn: FieldResolverDefinition<T, U, Root, IsAuth, OutputNullable, InputNullable>["fn"], options: Omit<FieldResolverDefinition<T, U, Root, IsAuth, OutputNullable, InputNullable>, "fn">): FieldResolverDefinition<T, U, Root, IsAuth, OutputNullable, InputNullable>;
34
34
  declare function QueryLibrary<T extends Record<string, QueryDefinition<any, any, any, any, any>>>(queries: T): {
@@ -5,16 +5,16 @@ import { AuthorizedContext, Context } from './types.js';
5
5
  type ReturnOptions = Parameters<typeof Query>[1];
6
6
  type ArgsOptions = Parameters<typeof Arg>[2];
7
7
  type NormalizeNullUndefined<T> = {
8
- [K in keyof T as null extends T[K] ? K : never]?: T[K];
8
+ [K in keyof T as null extends T[K] ? K : never]?: Exclude<T[K], undefined>;
9
9
  } & {
10
- [K in keyof T as null extends T[K] ? never : K]: T[K];
10
+ [K in keyof T as null extends T[K] ? never : K]: undefined extends T[K] ? Exclude<T[K], undefined> | null : T[K];
11
11
  };
12
12
  type NullableOptions<T, X extends boolean> = T & {
13
13
  nullable: X;
14
14
  };
15
- type ParsedGQLType<T> = T extends StringConstructor ? string : T extends NumberConstructor ? number : T extends BooleanConstructor ? boolean : T extends GraphQLScalarType<infer U> ? U : T extends ClassType<infer U> ? NormalizeNullUndefined<U> : T extends Record<infer K, string | number> ? T[K] : void;
16
- type ParsedGQLTypeWithArray<T> = T extends Array<infer U> ? ParsedGQLType<U>[] : ParsedGQLType<T>;
17
- type ParsedGQLTypeWithNullability<T, IsNullable extends boolean> = IsNullable extends true ? ParsedGQLTypeWithArray<T> | null | undefined : ParsedGQLTypeWithArray<T>;
15
+ type ParsedGQLType<T, MergeNullUndefined extends boolean> = T extends StringConstructor ? string : T extends NumberConstructor ? number : T extends BooleanConstructor ? boolean : T extends GraphQLScalarType<infer U> ? U : T extends ClassType<infer U> ? MergeNullUndefined extends true ? NormalizeNullUndefined<U> : U : T extends Record<infer K, string | number> ? T[K] : void;
16
+ type ParsedGQLTypeWithArray<T, MergeNullUndefined extends boolean> = T extends Array<infer U> ? ParsedGQLType<U, MergeNullUndefined>[] : ParsedGQLType<T, MergeNullUndefined>;
17
+ type ParsedGQLTypeWithNullability<T, IsNullable extends boolean, MergeNullUndefined extends boolean> = IsNullable extends true ? ParsedGQLTypeWithArray<T, MergeNullUndefined> | null | undefined : ParsedGQLTypeWithArray<T, MergeNullUndefined>;
18
18
  interface BaseDefinition<T, U, IsAuth extends boolean = false, OutputNullable extends boolean = false, InputNullable extends boolean = false> {
19
19
  output: T;
20
20
  outputOptions?: NullableOptions<ReturnOptions, OutputNullable>;
@@ -23,12 +23,12 @@ interface BaseDefinition<T, U, IsAuth extends boolean = false, OutputNullable ex
23
23
  authorized?: IsAuth;
24
24
  }
25
25
  interface QueryDefinition<T, U, IsAuth extends boolean = false, OutputNullable extends boolean = false, InputNullable extends boolean = false> extends BaseDefinition<T, U, IsAuth, OutputNullable, InputNullable> {
26
- fn: (ctx: IsAuth extends true ? AuthorizedContext : Context, data: ParsedGQLTypeWithNullability<U, InputNullable>) => Promise<ParsedGQLTypeWithNullability<T, OutputNullable>> | ParsedGQLTypeWithNullability<T, OutputNullable>;
26
+ fn: (ctx: IsAuth extends true ? AuthorizedContext : Context, data: ParsedGQLTypeWithNullability<U, InputNullable, false>) => Promise<ParsedGQLTypeWithNullability<T, OutputNullable, true>> | ParsedGQLTypeWithNullability<T, OutputNullable, true>;
27
27
  mutation?: boolean;
28
28
  }
29
29
  declare function query<T, U, IsAuth extends boolean = false, OutputNullable extends boolean = false, InputNullable extends boolean = false>(fn: QueryDefinition<T, U, IsAuth, OutputNullable, InputNullable>["fn"], options: Omit<QueryDefinition<T, U, IsAuth, OutputNullable, InputNullable>, "fn">): QueryDefinition<T, U, IsAuth, OutputNullable, InputNullable>;
30
30
  interface FieldResolverDefinition<T, U, Root, IsAuth extends boolean = false, OutputNullable extends boolean = false, InputNullable extends boolean = false> extends BaseDefinition<T, U, IsAuth, OutputNullable, InputNullable> {
31
- fn: (root: Root, ctx: IsAuth extends true ? AuthorizedContext : Context, data: ParsedGQLTypeWithNullability<U, InputNullable>) => Promise<ParsedGQLTypeWithNullability<T, OutputNullable>> | ParsedGQLTypeWithNullability<T, OutputNullable>;
31
+ fn: (root: Root, ctx: IsAuth extends true ? AuthorizedContext : Context, data: ParsedGQLTypeWithNullability<U, InputNullable, false>) => Promise<ParsedGQLTypeWithNullability<T, OutputNullable, true>> | ParsedGQLTypeWithNullability<T, OutputNullable, true>;
32
32
  }
33
33
  declare function field<T, U, IsAuth extends boolean, Root, OutputNullable extends boolean = false, InputNullable extends boolean = false>(fn: FieldResolverDefinition<T, U, Root, IsAuth, OutputNullable, InputNullable>["fn"], options: Omit<FieldResolverDefinition<T, U, Root, IsAuth, OutputNullable, InputNullable>, "fn">): FieldResolverDefinition<T, U, Root, IsAuth, OutputNullable, InputNullable>;
34
34
  declare function QueryLibrary<T extends Record<string, QueryDefinition<any, any, any, any, any>>>(queries: T): {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "naystack",
3
- "version": "1.4.15",
3
+ "version": "1.4.16",
4
4
  "description": "A stack built with Next + GraphQL + S3 + Auth",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",