@vantreeseba/drizzle-graphql 7.9.0 → 7.9.1

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.
package/dist/index.d.cts CHANGED
@@ -111,19 +111,19 @@ type TableNamedRelations = {
111
111
  };
112
112
  type ColTypeIsNull<TColumn extends Column, TColType> = TColumn['_']['notNull'] extends true ? TColType : TColType | null;
113
113
  type ColTypeIsNullOrUndefinedWithDefault<TColumn extends Column, TColType> = TColumn['_']['notNull'] extends true ? TColumn['_']['hasDefault'] extends true ? TColType | null | undefined : TColumn['defaultFn'] extends undefined ? TColType : TColType | null | undefined : TColType | null | undefined;
114
- type GetColumnGqlDataType<TColumn extends Column> = TColumn['dataType'] extends 'boolean' ? ColTypeIsNull<TColumn, boolean> : TColumn['dataType'] extends 'json' ? TColumn['_']['columnType'] extends 'PgGeometryObject' ? ColTypeIsNull<TColumn, {
114
+ type GetColumnGqlDataType<TColumn extends Column> = TColumn['dataType'] extends 'boolean' ? ColTypeIsNull<TColumn, boolean> : TColumn['dataType'] extends 'json' ? TColumn['columnType'] extends 'PgGeometryObject' ? ColTypeIsNull<TColumn, {
115
115
  x: number;
116
116
  y: number;
117
117
  }> : ColTypeIsNull<TColumn, string> : TColumn['dataType'] extends 'date' | 'string' | 'bigint' ? TColumn['enumValues'] extends [string, ...string[]] ? ColTypeIsNull<TColumn, TColumn['enumValues'][number]> : ColTypeIsNull<TColumn, string> : TColumn['dataType'] extends 'number' ? ColTypeIsNull<TColumn, number> : TColumn['dataType'] extends 'buffer' ? ColTypeIsNull<TColumn, number[]> : TColumn['dataType'] extends 'array' ? TColumn['columnType'] extends 'PgVector' ? ColTypeIsNull<TColumn, number[]> : TColumn['columnType'] extends 'PgGeometry' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, [number, number]> : ColTypeIsNull<TColumn, Array<GetColumnGqlDataType<TColumn extends {
118
118
  baseColumn: Column;
119
119
  } ? TColumn['baseColumn'] : never> extends infer InnerColType ? InnerColType extends null | undefined ? never : InnerColType : never>> : never;
120
- type GetColumnGqlInsertDataType<TColumn extends Column> = TColumn['dataType'] extends 'boolean' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, boolean> : TColumn['dataType'] extends 'json' ? TColumn['_']['columnType'] extends 'PgGeometryObject' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, {
120
+ type GetColumnGqlInsertDataType<TColumn extends Column> = TColumn['dataType'] extends 'boolean' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, boolean> : TColumn['dataType'] extends 'json' ? TColumn['columnType'] extends 'PgGeometryObject' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, {
121
121
  x: number;
122
122
  y: number;
123
123
  }> : ColTypeIsNullOrUndefinedWithDefault<TColumn, string> : TColumn['dataType'] extends 'date' | 'string' | 'bigint' ? TColumn['enumValues'] extends [string, ...string[]] ? ColTypeIsNullOrUndefinedWithDefault<TColumn, TColumn['enumValues'][number]> : ColTypeIsNullOrUndefinedWithDefault<TColumn, string> : TColumn['dataType'] extends 'number' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, number> : TColumn['dataType'] extends 'buffer' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, number[]> : TColumn['dataType'] extends 'array' ? TColumn['columnType'] extends 'PgVector' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, number[]> : TColumn['columnType'] extends 'PgGeometry' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, [number, number]> : ColTypeIsNullOrUndefinedWithDefault<TColumn, Array<GetColumnGqlDataType<TColumn extends {
124
124
  baseColumn: Column;
125
125
  } ? TColumn['baseColumn'] : never> extends infer InnerColType ? InnerColType extends null | undefined ? never : InnerColType : never>> : never;
126
- type GetColumnGqlUpdateDataType<TColumn extends Column> = TColumn['dataType'] extends 'boolean' ? boolean | null | undefined : TColumn['dataType'] extends 'json' ? TColumn['_']['columnType'] extends 'PgGeometryObject' ? {
126
+ type GetColumnGqlUpdateDataType<TColumn extends Column> = TColumn['dataType'] extends 'boolean' ? boolean | null | undefined : TColumn['dataType'] extends 'json' ? TColumn['columnType'] extends 'PgGeometryObject' ? {
127
127
  x: number;
128
128
  y: number;
129
129
  } | null | undefined : string | null | undefined : TColumn['dataType'] extends 'date' | 'string' | 'bigint' ? TColumn['enumValues'] extends [string, ...string[]] ? TColumn['enumValues'][number] | null | undefined : string | null | undefined : TColumn['dataType'] extends 'number' ? number | null | undefined : TColumn['dataType'] extends 'buffer' ? number[] | null | undefined : TColumn['dataType'] extends 'array' ? TColumn['columnType'] extends 'PgVector' ? number[] | null | undefined : TColumn['columnType'] extends 'PgGeometry' ? [number, number] | null | undefined : Array<GetColumnGqlDataType<TColumn extends {
@@ -508,10 +508,10 @@ type DeleteSingleArgs<TTable extends Table> = {
508
508
  where: Filters<TTable>;
509
509
  };
510
510
  type SelectResolver<TTable extends Table, TTables extends Record<string, Table>, TRelations extends Record<string, Relation>> = (source: any, args: Partial<QueryArgs<TTable, false>>, context: any, info: GraphQLResolveInfo) => Promise<keyof TRelations extends infer RelKey ? RelKey extends string ? Array<GetRemappedTableDataType<TTable> & {
511
- [K in RelKey]: TRelations[K] extends One<string> ? GetRemappedTableDataType<ExtractTableByName<TTables, TRelations[K]['referencedTableName']> extends infer T ? T[keyof T] : never> | null : TRelations[K] extends Many<string> ? Array<GetRemappedTableDataType<ExtractTableByName<TTables, TRelations[K]['referencedTableName']> extends infer T ? T[keyof T] : never>> : never;
511
+ [K in RelKey]: TRelations[K] extends One<infer TTargetName, any> ? GetRemappedTableDataType<ExtractTableByName<TTables, TTargetName> extends infer T ? T[keyof T] : never> | null : TRelations[K] extends Many<infer TTargetName> ? Array<GetRemappedTableDataType<ExtractTableByName<TTables, TTargetName> extends infer T ? T[keyof T] : never>> : never;
512
512
  }> : Array<GetRemappedTableDataType<TTable>> : Array<GetRemappedTableDataType<TTable>>>;
513
513
  type SelectSingleResolver<TTable extends Table, TTables extends Record<string, Table>, TRelations extends Record<string, Relation>> = (source: any, args: Partial<QueryArgs<TTable, true>>, context: any, info: GraphQLResolveInfo) => Promise<(keyof TRelations extends infer RelKey ? RelKey extends string ? GetRemappedTableDataType<TTable> & {
514
- [K in RelKey]: TRelations[K] extends One<string> ? GetRemappedTableDataType<ExtractTableByName<TTables, TRelations[K]['referencedTableName']> extends infer T ? T[keyof T] : never> | null : TRelations[K] extends Many<string> ? Array<GetRemappedTableDataType<ExtractTableByName<TTables, TRelations[K]['referencedTableName']> extends infer T ? T[keyof T] : never>> : never;
514
+ [K in RelKey]: TRelations[K] extends One<infer TTargetName, any> ? GetRemappedTableDataType<ExtractTableByName<TTables, TTargetName> extends infer T ? T[keyof T] : never> | null : TRelations[K] extends Many<infer TTargetName> ? Array<GetRemappedTableDataType<ExtractTableByName<TTables, TTargetName> extends infer T ? T[keyof T] : never>> : never;
515
515
  } : GetRemappedTableDataType<TTable> : GetRemappedTableDataType<TTable>) | null>;
516
516
  /** Resolver for `create<Table>Single`: one row in, one row (or `undefined`) out. */
517
517
  type InsertResolver<TTable extends Table, IsReturnless extends boolean> = (source: any, args: Partial<InsertArgs<TTable, true>>, context: any, info: GraphQLResolveInfo) => Promise<IsReturnless extends false ? GetRemappedTableDataType<TTable> | undefined : MutationReturnlessResult>;
package/dist/index.d.ts CHANGED
@@ -111,19 +111,19 @@ type TableNamedRelations = {
111
111
  };
112
112
  type ColTypeIsNull<TColumn extends Column, TColType> = TColumn['_']['notNull'] extends true ? TColType : TColType | null;
113
113
  type ColTypeIsNullOrUndefinedWithDefault<TColumn extends Column, TColType> = TColumn['_']['notNull'] extends true ? TColumn['_']['hasDefault'] extends true ? TColType | null | undefined : TColumn['defaultFn'] extends undefined ? TColType : TColType | null | undefined : TColType | null | undefined;
114
- type GetColumnGqlDataType<TColumn extends Column> = TColumn['dataType'] extends 'boolean' ? ColTypeIsNull<TColumn, boolean> : TColumn['dataType'] extends 'json' ? TColumn['_']['columnType'] extends 'PgGeometryObject' ? ColTypeIsNull<TColumn, {
114
+ type GetColumnGqlDataType<TColumn extends Column> = TColumn['dataType'] extends 'boolean' ? ColTypeIsNull<TColumn, boolean> : TColumn['dataType'] extends 'json' ? TColumn['columnType'] extends 'PgGeometryObject' ? ColTypeIsNull<TColumn, {
115
115
  x: number;
116
116
  y: number;
117
117
  }> : ColTypeIsNull<TColumn, string> : TColumn['dataType'] extends 'date' | 'string' | 'bigint' ? TColumn['enumValues'] extends [string, ...string[]] ? ColTypeIsNull<TColumn, TColumn['enumValues'][number]> : ColTypeIsNull<TColumn, string> : TColumn['dataType'] extends 'number' ? ColTypeIsNull<TColumn, number> : TColumn['dataType'] extends 'buffer' ? ColTypeIsNull<TColumn, number[]> : TColumn['dataType'] extends 'array' ? TColumn['columnType'] extends 'PgVector' ? ColTypeIsNull<TColumn, number[]> : TColumn['columnType'] extends 'PgGeometry' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, [number, number]> : ColTypeIsNull<TColumn, Array<GetColumnGqlDataType<TColumn extends {
118
118
  baseColumn: Column;
119
119
  } ? TColumn['baseColumn'] : never> extends infer InnerColType ? InnerColType extends null | undefined ? never : InnerColType : never>> : never;
120
- type GetColumnGqlInsertDataType<TColumn extends Column> = TColumn['dataType'] extends 'boolean' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, boolean> : TColumn['dataType'] extends 'json' ? TColumn['_']['columnType'] extends 'PgGeometryObject' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, {
120
+ type GetColumnGqlInsertDataType<TColumn extends Column> = TColumn['dataType'] extends 'boolean' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, boolean> : TColumn['dataType'] extends 'json' ? TColumn['columnType'] extends 'PgGeometryObject' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, {
121
121
  x: number;
122
122
  y: number;
123
123
  }> : ColTypeIsNullOrUndefinedWithDefault<TColumn, string> : TColumn['dataType'] extends 'date' | 'string' | 'bigint' ? TColumn['enumValues'] extends [string, ...string[]] ? ColTypeIsNullOrUndefinedWithDefault<TColumn, TColumn['enumValues'][number]> : ColTypeIsNullOrUndefinedWithDefault<TColumn, string> : TColumn['dataType'] extends 'number' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, number> : TColumn['dataType'] extends 'buffer' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, number[]> : TColumn['dataType'] extends 'array' ? TColumn['columnType'] extends 'PgVector' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, number[]> : TColumn['columnType'] extends 'PgGeometry' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, [number, number]> : ColTypeIsNullOrUndefinedWithDefault<TColumn, Array<GetColumnGqlDataType<TColumn extends {
124
124
  baseColumn: Column;
125
125
  } ? TColumn['baseColumn'] : never> extends infer InnerColType ? InnerColType extends null | undefined ? never : InnerColType : never>> : never;
126
- type GetColumnGqlUpdateDataType<TColumn extends Column> = TColumn['dataType'] extends 'boolean' ? boolean | null | undefined : TColumn['dataType'] extends 'json' ? TColumn['_']['columnType'] extends 'PgGeometryObject' ? {
126
+ type GetColumnGqlUpdateDataType<TColumn extends Column> = TColumn['dataType'] extends 'boolean' ? boolean | null | undefined : TColumn['dataType'] extends 'json' ? TColumn['columnType'] extends 'PgGeometryObject' ? {
127
127
  x: number;
128
128
  y: number;
129
129
  } | null | undefined : string | null | undefined : TColumn['dataType'] extends 'date' | 'string' | 'bigint' ? TColumn['enumValues'] extends [string, ...string[]] ? TColumn['enumValues'][number] | null | undefined : string | null | undefined : TColumn['dataType'] extends 'number' ? number | null | undefined : TColumn['dataType'] extends 'buffer' ? number[] | null | undefined : TColumn['dataType'] extends 'array' ? TColumn['columnType'] extends 'PgVector' ? number[] | null | undefined : TColumn['columnType'] extends 'PgGeometry' ? [number, number] | null | undefined : Array<GetColumnGqlDataType<TColumn extends {
@@ -508,10 +508,10 @@ type DeleteSingleArgs<TTable extends Table> = {
508
508
  where: Filters<TTable>;
509
509
  };
510
510
  type SelectResolver<TTable extends Table, TTables extends Record<string, Table>, TRelations extends Record<string, Relation>> = (source: any, args: Partial<QueryArgs<TTable, false>>, context: any, info: GraphQLResolveInfo) => Promise<keyof TRelations extends infer RelKey ? RelKey extends string ? Array<GetRemappedTableDataType<TTable> & {
511
- [K in RelKey]: TRelations[K] extends One<string> ? GetRemappedTableDataType<ExtractTableByName<TTables, TRelations[K]['referencedTableName']> extends infer T ? T[keyof T] : never> | null : TRelations[K] extends Many<string> ? Array<GetRemappedTableDataType<ExtractTableByName<TTables, TRelations[K]['referencedTableName']> extends infer T ? T[keyof T] : never>> : never;
511
+ [K in RelKey]: TRelations[K] extends One<infer TTargetName, any> ? GetRemappedTableDataType<ExtractTableByName<TTables, TTargetName> extends infer T ? T[keyof T] : never> | null : TRelations[K] extends Many<infer TTargetName> ? Array<GetRemappedTableDataType<ExtractTableByName<TTables, TTargetName> extends infer T ? T[keyof T] : never>> : never;
512
512
  }> : Array<GetRemappedTableDataType<TTable>> : Array<GetRemappedTableDataType<TTable>>>;
513
513
  type SelectSingleResolver<TTable extends Table, TTables extends Record<string, Table>, TRelations extends Record<string, Relation>> = (source: any, args: Partial<QueryArgs<TTable, true>>, context: any, info: GraphQLResolveInfo) => Promise<(keyof TRelations extends infer RelKey ? RelKey extends string ? GetRemappedTableDataType<TTable> & {
514
- [K in RelKey]: TRelations[K] extends One<string> ? GetRemappedTableDataType<ExtractTableByName<TTables, TRelations[K]['referencedTableName']> extends infer T ? T[keyof T] : never> | null : TRelations[K] extends Many<string> ? Array<GetRemappedTableDataType<ExtractTableByName<TTables, TRelations[K]['referencedTableName']> extends infer T ? T[keyof T] : never>> : never;
514
+ [K in RelKey]: TRelations[K] extends One<infer TTargetName, any> ? GetRemappedTableDataType<ExtractTableByName<TTables, TTargetName> extends infer T ? T[keyof T] : never> | null : TRelations[K] extends Many<infer TTargetName> ? Array<GetRemappedTableDataType<ExtractTableByName<TTables, TTargetName> extends infer T ? T[keyof T] : never>> : never;
515
515
  } : GetRemappedTableDataType<TTable> : GetRemappedTableDataType<TTable>) | null>;
516
516
  /** Resolver for `create<Table>Single`: one row in, one row (or `undefined`) out. */
517
517
  type InsertResolver<TTable extends Table, IsReturnless extends boolean> = (source: any, args: Partial<InsertArgs<TTable, true>>, context: any, info: GraphQLResolveInfo) => Promise<IsReturnless extends false ? GetRemappedTableDataType<TTable> | undefined : MutationReturnlessResult>;
package/dist/index.js CHANGED
@@ -468,6 +468,7 @@ var remapToGraphQLCore = (key, value, tableName, column, relationMap) => {
468
468
  return value;
469
469
  };
470
470
  var remapToGraphQLSingleOutput = (queryOutput, tableName, table, relationMap) => {
471
+ const columns = getTableColumns2(table);
471
472
  for (const [key, value] of Object.entries(queryOutput)) {
472
473
  if (value === void 0 || value === null) {
473
474
  const relEntry = value === null ? relationMap?.[tableName]?.[key] : void 0;
@@ -478,7 +479,7 @@ var remapToGraphQLSingleOutput = (queryOutput, tableName, table, relationMap) =>
478
479
  delete queryOutput[key];
479
480
  continue;
480
481
  }
481
- const column = table[key];
482
+ const column = columns[key];
482
483
  if (value === 0n && column && column.columnType === "SQLiteBigInt" && !column.notNull) {
483
484
  delete queryOutput[key];
484
485
  continue;
@@ -937,6 +938,7 @@ var resolveQueryExecutor = (db, context, tableName, buildTimeQueryBase) => {
937
938
  queryBase: buildTimeQueryBase ? executor?.query?.[tableName] ?? buildTimeQueryBase : buildTimeQueryBase
938
939
  };
939
940
  };
941
+ var DEFAULT_TRANSACTION_TIMEOUT_MS = 3e4;
940
942
  var createMutationTxCtx = (options) => options ? { timeoutMs: options.timeoutMs, fieldNames: /* @__PURE__ */ new Set(), states: /* @__PURE__ */ new WeakMap() } : void 0;
941
943
  var includedByDirectives = (node, variables) => {
942
944
  for (const directive of node.directives ?? []) {
@@ -3970,7 +3972,7 @@ var parseAggregateRequest = (info, target, rootTypeName = `${target.typeName}Agg
3970
3972
  for (const field of Object.values(selectionTree)) {
3971
3973
  if (field.name === "count") {
3972
3974
  request.count = true;
3973
- request.selection.count = count();
3975
+ request.selection["count"] = count();
3974
3976
  continue;
3975
3977
  }
3976
3978
  if (!AGGREGATE_OPS.includes(field.name)) {
@@ -3996,7 +3998,7 @@ var parseAggregateRequest = (info, target, rootTypeName = `${target.typeName}Agg
3996
3998
  var assembleAggregateRow = (row, request, target) => {
3997
3999
  const result = {};
3998
4000
  if (request.count) {
3999
- result.count = row.count == null ? 0 : Number(row.count);
4001
+ result["count"] = row["count"] == null ? 0 : Number(row["count"]);
4000
4002
  }
4001
4003
  for (const op of AGGREGATE_OPS) {
4002
4004
  if (!request.ops[op].length) {
@@ -4893,7 +4895,7 @@ var generateSchemaData = (db, schema, relations, options) => {
4893
4895
  const inputs = {};
4894
4896
  const outputs = {};
4895
4897
  if (["insert", "upsert", "update", "delete"].some((feature) => anyTable(feature))) {
4896
- outputs.MutationReturn = mutationReturnType;
4898
+ outputs["MutationReturn"] = mutationReturnType;
4897
4899
  }
4898
4900
  for (const [tableName, tableTypes] of Object.entries(gqlSchemaTypes)) {
4899
4901
  const tableFeatures = featureOf(tableName);
@@ -6655,7 +6657,7 @@ function generateSchemaData2(db, schema, relations, options) {
6655
6657
  for (const excluded of excludedTables) {
6656
6658
  delete namedRelations[excluded];
6657
6659
  }
6658
- attachTargetPrimaryKeys(namedRelations, tables, pgPrimaryKeyPropNames);
6660
+ attachTargetPrimaryKeys(namedRelations, tables, (table) => pgPrimaryKeyPropNames(table));
6659
6661
  const eagerRelations = pruneNonEagerRelations(namedRelations, shouldEagerLoad);
6660
6662
  const filterCtx = { tables, relationMap: namedRelations };
6661
6663
  const tablePolicies = options.policies;
@@ -8793,7 +8795,9 @@ var buildSchema = (db, config) => {
8793
8795
  aggregateCost: (complexityConfig === true ? void 0 : complexityConfig.aggregateCost) ?? 10
8794
8796
  };
8795
8797
  const transactionsOpt = config?.transactions;
8796
- const transactions = transactionsOpt === void 0 || transactionsOpt === "none" ? void 0 : { timeoutMs: (transactionsOpt === "auto" ? void 0 : transactionsOpt.timeoutMs) ?? 3e4 };
8798
+ const transactions = transactionsOpt === void 0 || transactionsOpt === "none" ? void 0 : {
8799
+ timeoutMs: (transactionsOpt === "auto" ? void 0 : transactionsOpt.timeoutMs) ?? DEFAULT_TRANSACTION_TIMEOUT_MS
8800
+ };
8797
8801
  const limitsConfig = config?.limits;
8798
8802
  if (limitsConfig) {
8799
8803
  const check = (policy, where) => {