@m1212e/rumble 0.16.28 → 0.16.31

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/out/index.cjs CHANGED
@@ -209,7 +209,7 @@ function mapNullFieldsToUndefined(obj) {
209
209
  }
210
210
  //#endregion
211
211
  //#region package.json
212
- var version = "0.16.28";
212
+ var version = "0.16.31";
213
213
  //#endregion
214
214
  //#region lib/helpers/mergeFilters.ts
215
215
  function mergeFilters(filterA, filterB) {
@@ -903,29 +903,29 @@ const sofaOpenAPIWebhookDocs = {
903
903
  };
904
904
  //#endregion
905
905
  //#region lib/helpers/sqlTypes/mapDrizzleTypeToGraphQlType.ts
906
- function buildPothosResponseTypeFromGraphQLType({ builder, sqlType, fieldName, nullable }) {
906
+ function buildPothosResponseTypeFromGraphQLType({ builder, sqlType, fieldName, nullable, isArray }) {
907
907
  const gqlType = mapSQLTypeToGraphQLType({
908
908
  sqlType,
909
909
  fieldName
910
910
  });
911
911
  switch (gqlType) {
912
- case "Int": return builder.exposeInt(fieldName, { nullable });
913
- case "String": return builder.exposeString(fieldName, { nullable });
914
- case "Boolean": return builder.exposeBoolean(fieldName, { nullable });
912
+ case "Int": return isArray ? builder.exposeIntList(fieldName, { nullable }) : builder.exposeInt(fieldName, { nullable });
913
+ case "String": return isArray ? builder.exposeStringList(fieldName, { nullable }) : builder.exposeString(fieldName, { nullable });
914
+ case "Boolean": return isArray ? builder.exposeBooleanList(fieldName, { nullable }) : builder.exposeBoolean(fieldName, { nullable });
915
915
  case "Date": return builder.field({
916
- type: "Date",
916
+ type: isArray ? ["Date"] : "Date",
917
917
  resolve: (element) => element[fieldName],
918
918
  nullable
919
919
  });
920
920
  case "DateTime": return builder.field({
921
- type: "DateTime",
921
+ type: isArray ? ["DateTime"] : "DateTime",
922
922
  resolve: (element) => element[fieldName],
923
923
  nullable
924
924
  });
925
- case "Float": return builder.exposeFloat(fieldName, { nullable });
926
- case "ID": return builder.exposeID(fieldName, { nullable });
925
+ case "Float": return isArray ? builder.exposeFloatList(fieldName, { nullable }) : builder.exposeFloat(fieldName, { nullable });
926
+ case "ID": return isArray ? builder.exposeIDList(fieldName, { nullable }) : builder.exposeID(fieldName, { nullable });
927
927
  case "JSON": return builder.field({
928
- type: "JSON",
928
+ type: isArray ? ["JSON"] : "JSON",
929
929
  resolve: (element) => element[fieldName],
930
930
  nullable
931
931
  });
@@ -1062,10 +1062,15 @@ const createObjectImplementer = ({ db, search, schemaBuilder, makePubSubInstance
1062
1062
  userAdjustments[key] = creatorFunction.bind(t)(...params);
1063
1063
  return acc;
1064
1064
  }
1065
+ let isArray = false;
1066
+ if (column.dimensions > 0) {
1067
+ if (column.dimensions !== 1) throw new RumbleError("Only one-dimensional arrays are supported for default object implementation");
1068
+ isArray = true;
1069
+ }
1065
1070
  if (isEnumSchema(column)) {
1066
1071
  const enumImpl = enumImplementer({ enumColumn: column });
1067
1072
  acc[key] = t.field({
1068
- type: enumImpl,
1073
+ type: isArray ? [enumImpl] : enumImpl,
1069
1074
  resolve: (element) => element[key],
1070
1075
  nullable: !column.notNull
1071
1076
  });
@@ -1073,7 +1078,8 @@ const createObjectImplementer = ({ db, search, schemaBuilder, makePubSubInstance
1073
1078
  builder: t,
1074
1079
  sqlType: column.getSQLType(),
1075
1080
  fieldName: key,
1076
- nullable: !column.notNull
1081
+ nullable: !column.notNull,
1082
+ isArray
1077
1083
  });
1078
1084
  return acc;
1079
1085
  }, {});