@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.mjs CHANGED
@@ -181,7 +181,7 @@ function mapNullFieldsToUndefined(obj) {
181
181
  }
182
182
  //#endregion
183
183
  //#region package.json
184
- var version = "0.16.28";
184
+ var version = "0.16.31";
185
185
  //#endregion
186
186
  //#region lib/helpers/mergeFilters.ts
187
187
  function mergeFilters(filterA, filterB) {
@@ -875,29 +875,29 @@ const sofaOpenAPIWebhookDocs = {
875
875
  };
876
876
  //#endregion
877
877
  //#region lib/helpers/sqlTypes/mapDrizzleTypeToGraphQlType.ts
878
- function buildPothosResponseTypeFromGraphQLType({ builder, sqlType, fieldName, nullable }) {
878
+ function buildPothosResponseTypeFromGraphQLType({ builder, sqlType, fieldName, nullable, isArray }) {
879
879
  const gqlType = mapSQLTypeToGraphQLType({
880
880
  sqlType,
881
881
  fieldName
882
882
  });
883
883
  switch (gqlType) {
884
- case "Int": return builder.exposeInt(fieldName, { nullable });
885
- case "String": return builder.exposeString(fieldName, { nullable });
886
- case "Boolean": return builder.exposeBoolean(fieldName, { nullable });
884
+ case "Int": return isArray ? builder.exposeIntList(fieldName, { nullable }) : builder.exposeInt(fieldName, { nullable });
885
+ case "String": return isArray ? builder.exposeStringList(fieldName, { nullable }) : builder.exposeString(fieldName, { nullable });
886
+ case "Boolean": return isArray ? builder.exposeBooleanList(fieldName, { nullable }) : builder.exposeBoolean(fieldName, { nullable });
887
887
  case "Date": return builder.field({
888
- type: "Date",
888
+ type: isArray ? ["Date"] : "Date",
889
889
  resolve: (element) => element[fieldName],
890
890
  nullable
891
891
  });
892
892
  case "DateTime": return builder.field({
893
- type: "DateTime",
893
+ type: isArray ? ["DateTime"] : "DateTime",
894
894
  resolve: (element) => element[fieldName],
895
895
  nullable
896
896
  });
897
- case "Float": return builder.exposeFloat(fieldName, { nullable });
898
- case "ID": return builder.exposeID(fieldName, { nullable });
897
+ case "Float": return isArray ? builder.exposeFloatList(fieldName, { nullable }) : builder.exposeFloat(fieldName, { nullable });
898
+ case "ID": return isArray ? builder.exposeIDList(fieldName, { nullable }) : builder.exposeID(fieldName, { nullable });
899
899
  case "JSON": return builder.field({
900
- type: "JSON",
900
+ type: isArray ? ["JSON"] : "JSON",
901
901
  resolve: (element) => element[fieldName],
902
902
  nullable
903
903
  });
@@ -1034,10 +1034,15 @@ const createObjectImplementer = ({ db, search, schemaBuilder, makePubSubInstance
1034
1034
  userAdjustments[key] = creatorFunction.bind(t)(...params);
1035
1035
  return acc;
1036
1036
  }
1037
+ let isArray = false;
1038
+ if (column.dimensions > 0) {
1039
+ if (column.dimensions !== 1) throw new RumbleError("Only one-dimensional arrays are supported for default object implementation");
1040
+ isArray = true;
1041
+ }
1037
1042
  if (isEnumSchema(column)) {
1038
1043
  const enumImpl = enumImplementer({ enumColumn: column });
1039
1044
  acc[key] = t.field({
1040
- type: enumImpl,
1045
+ type: isArray ? [enumImpl] : enumImpl,
1041
1046
  resolve: (element) => element[key],
1042
1047
  nullable: !column.notNull
1043
1048
  });
@@ -1045,7 +1050,8 @@ const createObjectImplementer = ({ db, search, schemaBuilder, makePubSubInstance
1045
1050
  builder: t,
1046
1051
  sqlType: column.getSQLType(),
1047
1052
  fieldName: key,
1048
- nullable: !column.notNull
1053
+ nullable: !column.notNull,
1054
+ isArray
1049
1055
  });
1050
1056
  return acc;
1051
1057
  }, {});