drizzle-graphql-plus 0.8.17 → 0.8.19
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.cjs +38 -41
- package/index.cjs.map +1 -1
- package/index.js +38 -41
- package/index.js.map +1 -1
- package/package.json +1 -1
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) {
|
|
@@ -2345,7 +2346,7 @@ var columnToSDL = (column, columnName, tableName, forceNullable = false) => {
|
|
|
2345
2346
|
break;
|
|
2346
2347
|
}
|
|
2347
2348
|
}
|
|
2348
|
-
if (!forceNullable && column.notNull
|
|
2349
|
+
if (!forceNullable && column.notNull) {
|
|
2349
2350
|
return `${baseType}!`;
|
|
2350
2351
|
}
|
|
2351
2352
|
return baseType;
|
|
@@ -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
|
|
2480
|
-
const
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
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
|
-
|
|
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
|
};
|