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.cjs +37 -40
- package/index.cjs.map +1 -1
- package/index.d.cts +1 -1
- package/index.d.ts +1 -1
- package/index.js +37 -40
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.cjs
CHANGED
|
@@ -2208,6 +2208,7 @@ var import_sqlite_core4 = require("drizzle-orm/sqlite-core");
|
|
|
2208
2208
|
var allowedNameChars2 = /^[a-zA-Z0-9_]+$/;
|
|
2209
2209
|
var customScalars = /* @__PURE__ */ new Set();
|
|
2210
2210
|
var enumDefinitions = /* @__PURE__ */ new Map();
|
|
2211
|
+
var requiredFieldFilters = /* @__PURE__ */ new Set();
|
|
2211
2212
|
var columnToSDL = (column, columnName, tableName, forceNullable = false) => {
|
|
2212
2213
|
let baseType;
|
|
2213
2214
|
if (column.customGraphqlType) {
|
|
@@ -2343,6 +2344,7 @@ var generateTypeDefs = (tables, relations) => {
|
|
|
2343
2344
|
const typeDefs = [];
|
|
2344
2345
|
customScalars.clear();
|
|
2345
2346
|
enumDefinitions.clear();
|
|
2347
|
+
requiredFieldFilters.clear();
|
|
2346
2348
|
for (const [tableName, tableInfo] of Object.entries(tables)) {
|
|
2347
2349
|
const typeName = capitalize(tableName);
|
|
2348
2350
|
const fields = [];
|
|
@@ -2414,6 +2416,7 @@ ${insertFields.join("\n")}
|
|
|
2414
2416
|
${updateFields.join("\n")}
|
|
2415
2417
|
}`
|
|
2416
2418
|
);
|
|
2419
|
+
const whereFields = [];
|
|
2417
2420
|
for (const [columnName, column] of Object.entries(tableInfo.columns)) {
|
|
2418
2421
|
const typeStr = columnToSDL(
|
|
2419
2422
|
column,
|
|
@@ -2421,47 +2424,14 @@ ${updateFields.join("\n")}
|
|
|
2421
2424
|
tableName,
|
|
2422
2425
|
true
|
|
2423
2426
|
);
|
|
2424
|
-
const
|
|
2425
|
-
const
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
filterFields.push(` gt: ${typeStr}`);
|
|
2431
|
-
filterFields.push(` gte: ${typeStr}`);
|
|
2432
|
-
filterFields.push(` like: String`);
|
|
2433
|
-
filterFields.push(` notLike: String`);
|
|
2434
|
-
filterFields.push(` ilike: String`);
|
|
2435
|
-
filterFields.push(` notIlike: String`);
|
|
2436
|
-
filterFields.push(` inArray: [${typeStr}!]`);
|
|
2437
|
-
filterFields.push(` notInArray: [${typeStr}!]`);
|
|
2438
|
-
filterFields.push(` isNull: Boolean`);
|
|
2439
|
-
filterFields.push(` isNotNull: Boolean`);
|
|
2440
|
-
const orFilterName = `${typeName}${capitalize(columnName)}FiltersOr`;
|
|
2441
|
-
typeDefs.push(`input ${orFilterName} {
|
|
2442
|
-
${filterFields.join("\n")}
|
|
2443
|
-
}`);
|
|
2444
|
-
filterFields.push(` OR: [${orFilterName}!]`);
|
|
2445
|
-
typeDefs.push(`input ${filterName} {
|
|
2446
|
-
${filterFields.join("\n")}
|
|
2447
|
-
}`);
|
|
2448
|
-
}
|
|
2449
|
-
const whereFields = [];
|
|
2450
|
-
for (const columnName of Object.keys(tableInfo.columns)) {
|
|
2451
|
-
const filterName = `${typeName}${capitalize(columnName)}Filters`;
|
|
2452
|
-
whereFields.push(` ${columnName}: ${filterName}`);
|
|
2453
|
-
}
|
|
2454
|
-
whereFields.push(` OR: [${typeName}FiltersOr!]`);
|
|
2455
|
-
const filtersOrFields = [];
|
|
2456
|
-
for (const columnName of Object.keys(tableInfo.columns)) {
|
|
2457
|
-
const filterName = `${typeName}${capitalize(columnName)}Filters`;
|
|
2458
|
-
filtersOrFields.push(` ${columnName}: ${filterName}`);
|
|
2427
|
+
const normalizedType = typeStr.replace(/[^a-zA-Z0-9]/g, "");
|
|
2428
|
+
const filterTypeName = `${normalizedType}FieldFilter`;
|
|
2429
|
+
requiredFieldFilters.add(
|
|
2430
|
+
JSON.stringify({ normalizedType, baseType: typeStr })
|
|
2431
|
+
);
|
|
2432
|
+
whereFields.push(` ${columnName}: ${filterTypeName}`);
|
|
2459
2433
|
}
|
|
2460
|
-
|
|
2461
|
-
`input ${typeName}FiltersOr {
|
|
2462
|
-
${filtersOrFields.join("\n")}
|
|
2463
|
-
}`
|
|
2464
|
-
);
|
|
2434
|
+
whereFields.push(` OR: [${typeName}Filters!]`);
|
|
2465
2435
|
typeDefs.push(`input ${typeName}Filters {
|
|
2466
2436
|
${whereFields.join("\n")}
|
|
2467
2437
|
}`);
|
|
@@ -2495,6 +2465,33 @@ ${valueStrings.join("\n")}
|
|
|
2495
2465
|
direction: OrderByDirection!
|
|
2496
2466
|
priority: Int!
|
|
2497
2467
|
}`);
|
|
2468
|
+
const filterTypesAdded = /* @__PURE__ */ new Set();
|
|
2469
|
+
for (const filterInfoJson of requiredFieldFilters) {
|
|
2470
|
+
const { normalizedType, baseType } = JSON.parse(filterInfoJson);
|
|
2471
|
+
const filterTypeName = `${normalizedType}FieldFilter`;
|
|
2472
|
+
if (filterTypesAdded.has(filterTypeName))
|
|
2473
|
+
continue;
|
|
2474
|
+
filterTypesAdded.add(filterTypeName);
|
|
2475
|
+
const filterFields = [];
|
|
2476
|
+
filterFields.push(` eq: ${baseType}`);
|
|
2477
|
+
filterFields.push(` ne: ${baseType}`);
|
|
2478
|
+
filterFields.push(` lt: ${baseType}`);
|
|
2479
|
+
filterFields.push(` lte: ${baseType}`);
|
|
2480
|
+
filterFields.push(` gt: ${baseType}`);
|
|
2481
|
+
filterFields.push(` gte: ${baseType}`);
|
|
2482
|
+
filterFields.push(` like: String`);
|
|
2483
|
+
filterFields.push(` notLike: String`);
|
|
2484
|
+
filterFields.push(` ilike: String`);
|
|
2485
|
+
filterFields.push(` notIlike: String`);
|
|
2486
|
+
filterFields.push(` inArray: [${baseType}!]`);
|
|
2487
|
+
filterFields.push(` notInArray: [${baseType}!]`);
|
|
2488
|
+
filterFields.push(` isNull: Boolean`);
|
|
2489
|
+
filterFields.push(` isNotNull: Boolean`);
|
|
2490
|
+
filterFields.push(` OR: [${filterTypeName}!]`);
|
|
2491
|
+
allDefs.push(`input ${filterTypeName} {
|
|
2492
|
+
${filterFields.join("\n")}
|
|
2493
|
+
}`);
|
|
2494
|
+
}
|
|
2498
2495
|
allDefs.push(...typeDefs);
|
|
2499
2496
|
return allDefs.join("\n\n");
|
|
2500
2497
|
};
|