drizzle-graphql-plus 0.8.16 → 0.8.18

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/index.d.cts CHANGED
@@ -379,4 +379,4 @@ declare function setCustomGraphQL<T extends Table, TColumns = ReturnType<typeof
379
379
  */
380
380
  declare function setCustomGraphQLTypes<T extends Table, TColumns = ReturnType<typeof getTableColumns<T>>>(table: T, columnTypes: Partial<Record<keyof TColumns, string>>): void;
381
381
 
382
- export { type AnyDrizzleDB, type AnyQueryBuiler, type BuildSchemaConfig, type BuildSchemaSDLResult, type DeleteArgs, type DeleteResolver, type ExtractRelations, type ExtractTableByName, type ExtractTableRelations, type ExtractTables, type GeneratedData, type GeneratedEntities, type GeneratedInputs, type GeneratedInterfaces, type GeneratedOutputs, type GraphQLFieldConfig, type InsertArgs, type InsertArrResolver, type InsertResolver, type MutationReturnlessResult, type MutationsCore, type QueriesCore, type QueryArgs$1 as QueryArgs, type SelectResolver, type SelectSingleResolver, type UpdateArgs, type UpdateResolver, buildSchema, buildSchemaSDL, setCustomGraphQL, setCustomGraphQLTypes };
382
+ export { type AnyDrizzleDB, type AnyQueryBuiler, type BuildSchemaConfig, type BuildSchemaSDLResult, type Capitalize$1 as Capitalize, type ColumnFilter, type DeleteArgs, type DeleteResolver, type ExtractRelations, type ExtractTableByName, type ExtractTableRelations, type ExtractTables, type GeneratedData, type GeneratedEntities, type GeneratedInputs, type GeneratedInterfaces, type GeneratedOutputs, type GraphQLFieldConfig, type InsertArgs, type InsertArrResolver, type InsertInput, type InsertResolver, type MutationReturnlessResult, type MutationsCore, type OrderByInput, type QueriesCore, type QueryArgs, type SelectResolver, type SelectSingleResolver, type UpdateArgs, type UpdateInput, type UpdateResolver, type WhereInput, buildSchema, buildSchemaSDL, setCustomGraphQL, setCustomGraphQLTypes };
package/index.d.ts CHANGED
@@ -379,4 +379,4 @@ declare function setCustomGraphQL<T extends Table, TColumns = ReturnType<typeof
379
379
  */
380
380
  declare function setCustomGraphQLTypes<T extends Table, TColumns = ReturnType<typeof getTableColumns<T>>>(table: T, columnTypes: Partial<Record<keyof TColumns, string>>): void;
381
381
 
382
- export { type AnyDrizzleDB, type AnyQueryBuiler, type BuildSchemaConfig, type BuildSchemaSDLResult, type DeleteArgs, type DeleteResolver, type ExtractRelations, type ExtractTableByName, type ExtractTableRelations, type ExtractTables, type GeneratedData, type GeneratedEntities, type GeneratedInputs, type GeneratedInterfaces, type GeneratedOutputs, type GraphQLFieldConfig, type InsertArgs, type InsertArrResolver, type InsertResolver, type MutationReturnlessResult, type MutationsCore, type QueriesCore, type QueryArgs$1 as QueryArgs, type SelectResolver, type SelectSingleResolver, type UpdateArgs, type UpdateResolver, buildSchema, buildSchemaSDL, setCustomGraphQL, setCustomGraphQLTypes };
382
+ export { type AnyDrizzleDB, type AnyQueryBuiler, type BuildSchemaConfig, type BuildSchemaSDLResult, type Capitalize$1 as Capitalize, type ColumnFilter, type DeleteArgs, type DeleteResolver, type ExtractRelations, type ExtractTableByName, type ExtractTableRelations, type ExtractTables, type GeneratedData, type GeneratedEntities, type GeneratedInputs, type GeneratedInterfaces, type GeneratedOutputs, type GraphQLFieldConfig, type InsertArgs, type InsertArrResolver, type InsertInput, type InsertResolver, type MutationReturnlessResult, type MutationsCore, type OrderByInput, type QueriesCore, type QueryArgs, type SelectResolver, type SelectSingleResolver, type UpdateArgs, type UpdateInput, type UpdateResolver, type WhereInput, buildSchema, buildSchemaSDL, setCustomGraphQL, setCustomGraphQLTypes };
package/index.js CHANGED
@@ -2263,6 +2263,7 @@ import { SQLiteInteger as SQLiteInteger2 } from "drizzle-orm/sqlite-core";
2263
2263
  var allowedNameChars2 = /^[a-zA-Z0-9_]+$/;
2264
2264
  var customScalars = /* @__PURE__ */ new Set();
2265
2265
  var enumDefinitions = /* @__PURE__ */ new Map();
2266
+ var requiredFieldFilters = /* @__PURE__ */ new Set();
2266
2267
  var columnToSDL = (column, columnName, tableName, forceNullable = false) => {
2267
2268
  let baseType;
2268
2269
  if (column.customGraphqlType) {
@@ -2398,6 +2399,7 @@ var generateTypeDefs = (tables, relations) => {
2398
2399
  const typeDefs = [];
2399
2400
  customScalars.clear();
2400
2401
  enumDefinitions.clear();
2402
+ requiredFieldFilters.clear();
2401
2403
  for (const [tableName, tableInfo] of Object.entries(tables)) {
2402
2404
  const typeName = capitalize(tableName);
2403
2405
  const fields = [];
@@ -2469,6 +2471,7 @@ ${insertFields.join("\n")}
2469
2471
  ${updateFields.join("\n")}
2470
2472
  }`
2471
2473
  );
2474
+ const whereFields = [];
2472
2475
  for (const [columnName, column] of Object.entries(tableInfo.columns)) {
2473
2476
  const typeStr = columnToSDL(
2474
2477
  column,
@@ -2476,47 +2479,14 @@ ${updateFields.join("\n")}
2476
2479
  tableName,
2477
2480
  true
2478
2481
  );
2479
- const filterName = `${typeName}${capitalize(columnName)}Filters`;
2480
- const filterFields = [];
2481
- filterFields.push(` eq: ${typeStr}`);
2482
- filterFields.push(` ne: ${typeStr}`);
2483
- filterFields.push(` lt: ${typeStr}`);
2484
- filterFields.push(` lte: ${typeStr}`);
2485
- filterFields.push(` gt: ${typeStr}`);
2486
- filterFields.push(` gte: ${typeStr}`);
2487
- filterFields.push(` like: String`);
2488
- filterFields.push(` notLike: String`);
2489
- filterFields.push(` ilike: String`);
2490
- filterFields.push(` notIlike: String`);
2491
- filterFields.push(` inArray: [${typeStr}!]`);
2492
- filterFields.push(` notInArray: [${typeStr}!]`);
2493
- filterFields.push(` isNull: Boolean`);
2494
- filterFields.push(` isNotNull: Boolean`);
2495
- const orFilterName = `${typeName}${capitalize(columnName)}FiltersOr`;
2496
- typeDefs.push(`input ${orFilterName} {
2497
- ${filterFields.join("\n")}
2498
- }`);
2499
- filterFields.push(` OR: [${orFilterName}!]`);
2500
- typeDefs.push(`input ${filterName} {
2501
- ${filterFields.join("\n")}
2502
- }`);
2503
- }
2504
- const whereFields = [];
2505
- for (const columnName of Object.keys(tableInfo.columns)) {
2506
- const filterName = `${typeName}${capitalize(columnName)}Filters`;
2507
- whereFields.push(` ${columnName}: ${filterName}`);
2508
- }
2509
- whereFields.push(` OR: [${typeName}FiltersOr!]`);
2510
- const filtersOrFields = [];
2511
- for (const columnName of Object.keys(tableInfo.columns)) {
2512
- const filterName = `${typeName}${capitalize(columnName)}Filters`;
2513
- filtersOrFields.push(` ${columnName}: ${filterName}`);
2482
+ const normalizedType = typeStr.replace(/[^a-zA-Z0-9]/g, "");
2483
+ const filterTypeName = `${normalizedType}FieldFilter`;
2484
+ requiredFieldFilters.add(
2485
+ JSON.stringify({ normalizedType, baseType: typeStr })
2486
+ );
2487
+ whereFields.push(` ${columnName}: ${filterTypeName}`);
2514
2488
  }
2515
- typeDefs.push(
2516
- `input ${typeName}FiltersOr {
2517
- ${filtersOrFields.join("\n")}
2518
- }`
2519
- );
2489
+ whereFields.push(` OR: [${typeName}Filters!]`);
2520
2490
  typeDefs.push(`input ${typeName}Filters {
2521
2491
  ${whereFields.join("\n")}
2522
2492
  }`);
@@ -2550,6 +2520,33 @@ ${valueStrings.join("\n")}
2550
2520
  direction: OrderByDirection!
2551
2521
  priority: Int!
2552
2522
  }`);
2523
+ const filterTypesAdded = /* @__PURE__ */ new Set();
2524
+ for (const filterInfoJson of requiredFieldFilters) {
2525
+ const { normalizedType, baseType } = JSON.parse(filterInfoJson);
2526
+ const filterTypeName = `${normalizedType}FieldFilter`;
2527
+ if (filterTypesAdded.has(filterTypeName))
2528
+ continue;
2529
+ filterTypesAdded.add(filterTypeName);
2530
+ const filterFields = [];
2531
+ filterFields.push(` eq: ${baseType}`);
2532
+ filterFields.push(` ne: ${baseType}`);
2533
+ filterFields.push(` lt: ${baseType}`);
2534
+ filterFields.push(` lte: ${baseType}`);
2535
+ filterFields.push(` gt: ${baseType}`);
2536
+ filterFields.push(` gte: ${baseType}`);
2537
+ filterFields.push(` like: String`);
2538
+ filterFields.push(` notLike: String`);
2539
+ filterFields.push(` ilike: String`);
2540
+ filterFields.push(` notIlike: String`);
2541
+ filterFields.push(` inArray: [${baseType}!]`);
2542
+ filterFields.push(` notInArray: [${baseType}!]`);
2543
+ filterFields.push(` isNull: Boolean`);
2544
+ filterFields.push(` isNotNull: Boolean`);
2545
+ filterFields.push(` OR: [${filterTypeName}!]`);
2546
+ allDefs.push(`input ${filterTypeName} {
2547
+ ${filterFields.join("\n")}
2548
+ }`);
2549
+ }
2553
2550
  allDefs.push(...typeDefs);
2554
2551
  return allDefs.join("\n\n");
2555
2552
  };