@infrab4a/connect 3.2.4 → 3.2.5-beta.0

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.
@@ -2985,6 +2985,117 @@
2985
2985
  return Object.assign({ attributeName: attributeName || columnName, columnName: columnName }, fieldOption);
2986
2986
  };
2987
2987
 
2988
+ var HasuraGraphQLWhere;
2989
+ (function (HasuraGraphQLWhere) {
2990
+ HasuraGraphQLWhere["EQUALS"] = "_eq";
2991
+ HasuraGraphQLWhere["GT"] = "_gt";
2992
+ HasuraGraphQLWhere["GTE"] = "_gte";
2993
+ HasuraGraphQLWhere["IN"] = "_in";
2994
+ HasuraGraphQLWhere["NOTIN"] = "_nin";
2995
+ HasuraGraphQLWhere["LT"] = "_lt";
2996
+ HasuraGraphQLWhere["LTE"] = "_lte";
2997
+ HasuraGraphQLWhere["LIKE"] = "_like";
2998
+ HasuraGraphQLWhere["NOTLIKE"] = "_nlike";
2999
+ HasuraGraphQLWhere["ISNULL"] = "_is_null";
3000
+ HasuraGraphQLWhere["ISNOTNULL"] = "_is_null";
3001
+ })(HasuraGraphQLWhere || (HasuraGraphQLWhere = {}));
3002
+
3003
+ var HasuraGraphQLColumnType;
3004
+ (function (HasuraGraphQLColumnType) {
3005
+ HasuraGraphQLColumnType["Int"] = "Int";
3006
+ HasuraGraphQLColumnType["Float"] = "Float";
3007
+ HasuraGraphQLColumnType["Boolean"] = "Boolean";
3008
+ HasuraGraphQLColumnType["String"] = "String";
3009
+ HasuraGraphQLColumnType["DateTime"] = "timestampz";
3010
+ HasuraGraphQLColumnType["Json"] = "json";
3011
+ HasuraGraphQLColumnType["Jsonb"] = "jsonb";
3012
+ HasuraGraphQLColumnType["Enum"] = "enum";
3013
+ HasuraGraphQLColumnType["Uuid"] = "uuid";
3014
+ })(HasuraGraphQLColumnType || (HasuraGraphQLColumnType = {}));
3015
+
3016
+ var FilterOptionHelper = /** @class */ (function () {
3017
+ function FilterOptionHelper() {
3018
+ }
3019
+ return FilterOptionHelper;
3020
+ }());
3021
+ FilterOptionHelper.CheckIfIsFilterOption = function (filter) { return !lodash.isNil(filter === null || filter === void 0 ? void 0 : filter.operator); };
3022
+ FilterOptionHelper.GetValueFromFilter = function (filter, fieldOption) {
3023
+ if (!FilterOptionHelper.CheckIfIsFilterOption(filter))
3024
+ return filter;
3025
+ if (filter.operator === exports.Where.ISNULL)
3026
+ return true;
3027
+ if (filter.operator === exports.Where.ISNOTNULL)
3028
+ return false;
3029
+ var converter = fieldOption.to
3030
+ ? fieldOption.to
3031
+ : function (value) { return filter.operator === exports.Where.LIKE && !Array.isArray(filter.value) && value.indexOf('%') < 0
3032
+ ? "%" + value + "%"
3033
+ : value; };
3034
+ return Array.isArray(filter.value) && !fieldOption.fields && [exports.Where.IN, exports.Where.NOTIN].includes(filter.operator)
3035
+ ? filter.value.map(function (fieldValue) { return converter(fieldValue); })
3036
+ : converter(filter.value);
3037
+ };
3038
+
3039
+ var BindFilterQueryHelper = /** @class */ (function () {
3040
+ function BindFilterQueryHelper() {
3041
+ }
3042
+ return BindFilterQueryHelper;
3043
+ }());
3044
+ BindFilterQueryHelper.MakeGraphQLWhere = function (filter, fields) { return Object.keys(filter).reduce(function (variables, fieldName) {
3045
+ var _a;
3046
+ var columnOption = AttributeOptionHelper.FindByAttribute(fieldName, fields);
3047
+ if (!columnOption.bindFindFilter)
3048
+ return Object.assign(Object.assign({}, variables), (_a = {},
3049
+ _a[columnOption.columnName] = BindFilterQueryHelper.BuildWhereSentence(fieldName, filter[fieldName], fields),
3050
+ _a));
3051
+ var builtFilter = columnOption.bindFindFilter(filter[fieldName]);
3052
+ return Object.assign(Object.assign({}, variables), Object.keys(builtFilter).reduce(function (variablesList, columnName) {
3053
+ var _a;
3054
+ return (Object.assign(Object.assign({}, variablesList), (_a = {}, _a[columnName] = BindFilterQueryHelper.BuildWhereSentence(fieldName, builtFilter[columnName], fields), _a)));
3055
+ }, {}));
3056
+ }, {}); };
3057
+ BindFilterQueryHelper.BuildWhereSentence = function (field, options, fields) {
3058
+ var _a;
3059
+ var fieldSentenceOptions = AttributeOptionHelper.FindByAttribute(field, fields);
3060
+ if (!Array.isArray(options) &&
3061
+ lodash.isObject(options) &&
3062
+ lodash.isNil(options === null || options === void 0 ? void 0 : options.operator) &&
3063
+ lodash.isNil(options === null || options === void 0 ? void 0 : options.value) &&
3064
+ lodash.isNil(fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.to))
3065
+ return Object.keys(options).reduce(function (variables, key) {
3066
+ var _a;
3067
+ var fieldOptions = AttributeOptionHelper.FindByAttribute(key, (fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.fields) || fields);
3068
+ var columnName = fieldOptions.columnName;
3069
+ var columnFields = fieldOptions.fields;
3070
+ return Object.assign(Object.assign({}, variables), (_a = {}, _a[columnName] = BindFilterQueryHelper.BuildWhereSentence(key, options[key], columnFields || []), _a));
3071
+ }, {});
3072
+ if (!Array.isArray(options) && !lodash.isNil(fieldSentenceOptions.fields))
3073
+ return _a = {},
3074
+ _a[fieldSentenceOptions.fields[0]] = BindFilterQueryHelper.BuildOperatorSentence(options, fieldSentenceOptions),
3075
+ _a;
3076
+ if (lodash.isObject(options) && !FilterOptionHelper.CheckIfIsFilterOption(options))
3077
+ options = Object.values(options)[0];
3078
+ return Array.isArray(options)
3079
+ ? options.reduce(function (whereSentence, option) { return (Object.assign(Object.assign({}, whereSentence), BindFilterQueryHelper.BuildOperatorSentence(option, fieldSentenceOptions))); }, {})
3080
+ : BindFilterQueryHelper.BuildOperatorSentence(options, fieldSentenceOptions);
3081
+ };
3082
+ BindFilterQueryHelper.BuildOperatorSentence = function (options, fieldOption) {
3083
+ var _a;
3084
+ return (_a = {},
3085
+ _a[BindFilterQueryHelper.GetHasuraOperator(options, fieldOption)] = FilterOptionHelper.GetValueFromFilter(options, fieldOption),
3086
+ _a);
3087
+ };
3088
+ BindFilterQueryHelper.GetHasuraOperator = function (options, fieldOption) { return FilterOptionHelper.CheckIfIsFilterOption(options)
3089
+ ? fieldOption.type === HasuraGraphQLColumnType.Jsonb
3090
+ ? BindFilterQueryHelper.GetHasuraJsonbOperator(options)
3091
+ : HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find(function (graphQLOperator) { return graphQLOperator === Object.keys(exports.Where).find(function (operator) { return exports.Where[operator] === (options === null || options === void 0 ? void 0 : options.operator); }); })]
3092
+ : HasuraGraphQLWhere.EQUALS; };
3093
+ BindFilterQueryHelper.GetHasuraJsonbOperator = function (options) { return options.operator === exports.Where.IN
3094
+ ? '_contains'
3095
+ : options.operator === exports.Where.LIKE
3096
+ ? '_has_keys_any'
3097
+ : HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find(function (graphQLOperator) { return graphQLOperator === Object.keys(exports.Where).find(function (operator) { return exports.Where[operator] === (options === null || options === void 0 ? void 0 : options.operator); }); })]; };
3098
+
2988
3099
  var GraphQLFieldHelper = /** @class */ (function () {
2989
3100
  function GraphQLFieldHelper() {
2990
3101
  }
@@ -2993,7 +3104,7 @@
2993
3104
  GraphQLFieldHelper.CheckIsGraphQLParams = function (params) { return !lodash.isString(params) && Array.isArray(params) && params.length >= 0 && !!params[0].operation; };
2994
3105
  GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields = function (fields) {
2995
3106
  return fields === null || fields === void 0 ? void 0 : fields.map(function (field) {
2996
- var _b, _c;
3107
+ var _b, _c, _d;
2997
3108
  if (lodash.isString(field))
2998
3109
  return field.toString();
2999
3110
  var fieldName = Object.keys(field).shift();
@@ -3003,9 +3114,21 @@
3003
3114
  if (!AttributeOptionHelper.CheckIsColumnOption(fieldValue))
3004
3115
  return;
3005
3116
  if (fieldValue.fields)
3006
- return _c = {},
3007
- _c[fieldValue.columnName || fieldName] = GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
3008
- _c;
3117
+ return !fieldValue.filters
3118
+ ? (_c = {},
3119
+ _c[fieldValue.columnName || fieldName] = GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
3120
+ _c) : {
3121
+ operation: fieldValue.columnName || fieldName,
3122
+ fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
3123
+ variables: (_d = {},
3124
+ _d[fieldValue.columnName + "_where"] = {
3125
+ name: 'where',
3126
+ type: fieldValue.filters.filterType,
3127
+ value: BindFilterQueryHelper.MakeGraphQLWhere(fieldValue.filters.filters, fieldValue.fields),
3128
+ required: true,
3129
+ },
3130
+ _d),
3131
+ };
3009
3132
  return fieldValue.columnName;
3010
3133
  }).filter(function (field) { return !!field; });
3011
3134
  };
@@ -3064,29 +3187,6 @@
3064
3187
  }, {});
3065
3188
  };
3066
3189
 
3067
- var FilterOptionHelper = /** @class */ (function () {
3068
- function FilterOptionHelper() {
3069
- }
3070
- return FilterOptionHelper;
3071
- }());
3072
- FilterOptionHelper.CheckIfIsFilterOption = function (filter) { return !lodash.isNil(filter === null || filter === void 0 ? void 0 : filter.operator); };
3073
- FilterOptionHelper.GetValueFromFilter = function (filter, fieldOption) {
3074
- if (!FilterOptionHelper.CheckIfIsFilterOption(filter))
3075
- return filter;
3076
- if (filter.operator === exports.Where.ISNULL)
3077
- return true;
3078
- if (filter.operator === exports.Where.ISNOTNULL)
3079
- return false;
3080
- var converter = fieldOption.to
3081
- ? fieldOption.to
3082
- : function (value) { return filter.operator === exports.Where.LIKE && !Array.isArray(filter.value) && value.indexOf('%') < 0
3083
- ? "%" + value + "%"
3084
- : value; };
3085
- return Array.isArray(filter.value) && !fieldOption.fields && [exports.Where.IN, exports.Where.NOTIN].includes(filter.operator)
3086
- ? filter.value.map(function (fieldValue) { return converter(fieldValue); })
3087
- : converter(filter.value);
3088
- };
3089
-
3090
3190
  var withCreateHasuraGraphQL = function (MixinBase) {
3091
3191
  return /** @class */ (function (_super) {
3092
3192
  __extends(CreateHasuraGraphQLMixin, _super);
@@ -3440,92 +3540,11 @@
3440
3540
  }(MixinBase));
3441
3541
  };
3442
3542
 
3443
- var HasuraGraphQLWhere;
3444
- (function (HasuraGraphQLWhere) {
3445
- HasuraGraphQLWhere["EQUALS"] = "_eq";
3446
- HasuraGraphQLWhere["GT"] = "_gt";
3447
- HasuraGraphQLWhere["GTE"] = "_gte";
3448
- HasuraGraphQLWhere["IN"] = "_in";
3449
- HasuraGraphQLWhere["NOTIN"] = "_nin";
3450
- HasuraGraphQLWhere["LT"] = "_lt";
3451
- HasuraGraphQLWhere["LTE"] = "_lte";
3452
- HasuraGraphQLWhere["LIKE"] = "_like";
3453
- HasuraGraphQLWhere["NOTLIKE"] = "_nlike";
3454
- HasuraGraphQLWhere["ISNULL"] = "_is_null";
3455
- HasuraGraphQLWhere["ISNOTNULL"] = "_is_null";
3456
- })(HasuraGraphQLWhere || (HasuraGraphQLWhere = {}));
3457
-
3458
- var HasuraGraphQLColumnType;
3459
- (function (HasuraGraphQLColumnType) {
3460
- HasuraGraphQLColumnType["Int"] = "Int";
3461
- HasuraGraphQLColumnType["Float"] = "Float";
3462
- HasuraGraphQLColumnType["Boolean"] = "Boolean";
3463
- HasuraGraphQLColumnType["String"] = "String";
3464
- HasuraGraphQLColumnType["DateTime"] = "timestampz";
3465
- HasuraGraphQLColumnType["Json"] = "json";
3466
- HasuraGraphQLColumnType["Jsonb"] = "jsonb";
3467
- HasuraGraphQLColumnType["Enum"] = "enum";
3468
- HasuraGraphQLColumnType["Uuid"] = "uuid";
3469
- })(HasuraGraphQLColumnType || (HasuraGraphQLColumnType = {}));
3470
-
3471
3543
  var withFindHasuraGraphQL = function (MixinBase) {
3472
3544
  return /** @class */ (function (_super) {
3473
3545
  __extends(FindHasuraGraphQLMixin, _super);
3474
3546
  function FindHasuraGraphQLMixin() {
3475
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
3476
- _this.makeGraphQLWhere = function (filter, fields) { return Object.keys(filter).reduce(function (variables, fieldName) {
3477
- var _b;
3478
- var columnOption = AttributeOptionHelper.FindByAttribute(fieldName, fields);
3479
- if (!columnOption.bindFindFilter)
3480
- return Object.assign(Object.assign({}, variables), (_b = {}, _b[columnOption.columnName] = _this.buildWhereSentence(fieldName, filter[fieldName], fields), _b));
3481
- var builtFilter = columnOption.bindFindFilter(filter[fieldName]);
3482
- return Object.assign(Object.assign({}, variables), Object.keys(builtFilter).reduce(function (variablesList, columnName) {
3483
- var _b;
3484
- return (Object.assign(Object.assign({}, variablesList), (_b = {}, _b[columnName] = _this.buildWhereSentence(fieldName, builtFilter[columnName], fields), _b)));
3485
- }, {}));
3486
- }, {}); };
3487
- _this.buildWhereSentence = function (field, options, fields) {
3488
- var _b;
3489
- var fieldSentenceOptions = AttributeOptionHelper.FindByAttribute(field, fields);
3490
- if (!Array.isArray(options) &&
3491
- lodash.isObject(options) &&
3492
- lodash.isNil(options === null || options === void 0 ? void 0 : options.operator) &&
3493
- lodash.isNil(options === null || options === void 0 ? void 0 : options.value) &&
3494
- lodash.isNil(fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.to))
3495
- return Object.keys(options).reduce(function (variables, key) {
3496
- var _b;
3497
- var fieldOptions = AttributeOptionHelper.FindByAttribute(key, (fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.fields) || fields);
3498
- var columnName = fieldOptions.columnName;
3499
- var columnFields = fieldOptions.fields;
3500
- return Object.assign(Object.assign({}, variables), (_b = {}, _b[columnName] = _this.buildWhereSentence(key, options[key], columnFields || []), _b));
3501
- }, {});
3502
- if (!Array.isArray(options) && !lodash.isNil(fieldSentenceOptions.fields))
3503
- return _b = {},
3504
- _b[fieldSentenceOptions.fields[0]] = _this.buildOperatorSentence(options, fieldSentenceOptions),
3505
- _b;
3506
- if (lodash.isObject(options) && !FilterOptionHelper.CheckIfIsFilterOption(options))
3507
- options = Object.values(options)[0];
3508
- return Array.isArray(options)
3509
- ? options.reduce(function (whereSentence, option) { return (Object.assign(Object.assign({}, whereSentence), _this.buildOperatorSentence(option, fieldSentenceOptions))); }, {})
3510
- : _this.buildOperatorSentence(options, fieldSentenceOptions);
3511
- };
3512
- _this.buildOperatorSentence = function (options, fieldOption) {
3513
- var _b;
3514
- return (_b = {},
3515
- _b[_this.getHasuraOperator(options, fieldOption)] = FilterOptionHelper.GetValueFromFilter(options, fieldOption),
3516
- _b);
3517
- };
3518
- _this.getHasuraOperator = function (options, fieldOption) { return FilterOptionHelper.CheckIfIsFilterOption(options)
3519
- ? fieldOption.type === HasuraGraphQLColumnType.Jsonb
3520
- ? _this.getHasuraJsonbOperator(options)
3521
- : HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find(function (graphQLOperator) { return graphQLOperator === Object.keys(exports.Where).find(function (operator) { return exports.Where[operator] === (options === null || options === void 0 ? void 0 : options.operator); }); })]
3522
- : HasuraGraphQLWhere.EQUALS; };
3523
- _this.getHasuraJsonbOperator = function (options) { return options.operator === exports.Where.IN
3524
- ? '_contains'
3525
- : options.operator === exports.Where.LIKE
3526
- ? '_has_keys_any'
3527
- : HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find(function (graphQLOperator) { return graphQLOperator === Object.keys(exports.Where).find(function (operator) { return exports.Where[operator] === (options === null || options === void 0 ? void 0 : options.operator); }); })]; };
3528
- return _this;
3547
+ return _super !== null && _super.apply(this, arguments) || this;
3529
3548
  }
3530
3549
  FindHasuraGraphQLMixin.prototype.find = function (options) {
3531
3550
  return __awaiter(this, void 0, void 0, function () {
@@ -3539,7 +3558,7 @@
3539
3558
  ? {}
3540
3559
  : {
3541
3560
  where: {
3542
- value: this.makeGraphQLWhere(filters, this.fields),
3561
+ value: BindFilterQueryHelper.MakeGraphQLWhere(filters, this.fields),
3543
3562
  type: this.tableName + "_bool_exp",
3544
3563
  required: true,
3545
3564
  },
@@ -4077,6 +4096,10 @@
4077
4096
  {
4078
4097
  rate: {
4079
4098
  columnName: 'reviews_aggregate',
4099
+ filters: {
4100
+ filters: { status: true },
4101
+ filterType: 'product_review_bool_exp',
4102
+ },
4080
4103
  fields: [{ aggregate: [{ avg: ['rate'] }] }],
4081
4104
  from: function (value) { return value.aggregate.avg.rate; },
4082
4105
  },