querier-ts 2.1.1 → 2.2.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.
Files changed (62) hide show
  1. package/lib/core/validation/query-row-validator.js.map +1 -1
  2. package/lib/query.d.ts +11 -3
  3. package/lib/query.d.ts.map +1 -1
  4. package/lib/query.js +3 -9
  5. package/lib/query.js.map +1 -1
  6. package/lib/utils/functions/type-guards/is-function.d.ts +2 -1
  7. package/lib/utils/functions/type-guards/is-function.d.ts.map +1 -1
  8. package/lib/utils/functions/type-guards/is-function.js +2 -0
  9. package/lib/utils/functions/type-guards/is-function.js.map +1 -1
  10. package/package.json +2 -2
  11. package/lib/__tests__/query.spec.d.ts +0 -2
  12. package/lib/__tests__/query.spec.d.ts.map +0 -1
  13. package/lib/__tests__/query.spec.js +0 -271
  14. package/lib/__tests__/query.spec.js.map +0 -1
  15. package/lib/core/errors/__tests__/invalid-argument-error.spec.d.ts +0 -2
  16. package/lib/core/errors/__tests__/invalid-argument-error.spec.d.ts.map +0 -1
  17. package/lib/core/errors/__tests__/invalid-argument-error.spec.js +0 -16
  18. package/lib/core/errors/__tests__/invalid-argument-error.spec.js.map +0 -1
  19. package/lib/core/validation/__tests__/query-row-validator.spec.d.ts +0 -2
  20. package/lib/core/validation/__tests__/query-row-validator.spec.d.ts.map +0 -1
  21. package/lib/core/validation/__tests__/query-row-validator.spec.js +0 -156
  22. package/lib/core/validation/__tests__/query-row-validator.spec.js.map +0 -1
  23. package/lib/core/validation/decorators/__tests__/number-validation.spec.d.ts +0 -2
  24. package/lib/core/validation/decorators/__tests__/number-validation.spec.d.ts.map +0 -1
  25. package/lib/core/validation/decorators/__tests__/number-validation.spec.js +0 -130
  26. package/lib/core/validation/decorators/__tests__/number-validation.spec.js.map +0 -1
  27. package/lib/utils/functions/generic/__tests__/compare-arrays.spec.d.ts +0 -2
  28. package/lib/utils/functions/generic/__tests__/compare-arrays.spec.d.ts.map +0 -1
  29. package/lib/utils/functions/generic/__tests__/compare-arrays.spec.js +0 -20
  30. package/lib/utils/functions/generic/__tests__/compare-arrays.spec.js.map +0 -1
  31. package/lib/utils/functions/generic/__tests__/deep-equal.spec.d.ts +0 -2
  32. package/lib/utils/functions/generic/__tests__/deep-equal.spec.d.ts.map +0 -1
  33. package/lib/utils/functions/generic/__tests__/deep-equal.spec.js +0 -81
  34. package/lib/utils/functions/generic/__tests__/deep-equal.spec.js.map +0 -1
  35. package/lib/utils/functions/generic/__tests__/get-entries.spec.d.ts +0 -2
  36. package/lib/utils/functions/generic/__tests__/get-entries.spec.d.ts.map +0 -1
  37. package/lib/utils/functions/generic/__tests__/get-entries.spec.js +0 -54
  38. package/lib/utils/functions/generic/__tests__/get-entries.spec.js.map +0 -1
  39. package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.d.ts +0 -2
  40. package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.d.ts.map +0 -1
  41. package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.js +0 -82
  42. package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.js.map +0 -1
  43. package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.d.ts +0 -2
  44. package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.d.ts.map +0 -1
  45. package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.js +0 -68
  46. package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.js.map +0 -1
  47. package/lib/utils/functions/sort/__tests__/sort-by-property.spec.d.ts +0 -2
  48. package/lib/utils/functions/sort/__tests__/sort-by-property.spec.d.ts.map +0 -1
  49. package/lib/utils/functions/sort/__tests__/sort-by-property.spec.js +0 -75
  50. package/lib/utils/functions/sort/__tests__/sort-by-property.spec.js.map +0 -1
  51. package/lib/utils/functions/type-guards/__tests__/is-function.spec.d.ts +0 -2
  52. package/lib/utils/functions/type-guards/__tests__/is-function.spec.d.ts.map +0 -1
  53. package/lib/utils/functions/type-guards/__tests__/is-function.spec.js +0 -37
  54. package/lib/utils/functions/type-guards/__tests__/is-function.spec.js.map +0 -1
  55. package/lib/utils/functions/type-guards/__tests__/is-number.spec.d.ts +0 -2
  56. package/lib/utils/functions/type-guards/__tests__/is-number.spec.d.ts.map +0 -1
  57. package/lib/utils/functions/type-guards/__tests__/is-number.spec.js +0 -34
  58. package/lib/utils/functions/type-guards/__tests__/is-number.spec.js.map +0 -1
  59. package/lib/utils/functions/type-guards/__tests__/is-object.spec.d.ts +0 -2
  60. package/lib/utils/functions/type-guards/__tests__/is-object.spec.d.ts.map +0 -1
  61. package/lib/utils/functions/type-guards/__tests__/is-object.spec.js +0 -37
  62. package/lib/utils/functions/type-guards/__tests__/is-object.spec.js.map +0 -1
@@ -1,156 +0,0 @@
1
- import { QueryRowValidator } from '../query-row-validator';
2
- describe('QueryRowValidator', () => {
3
- describe('primitive comparisons', () => {
4
- it('should validate equality for primitive values', () => {
5
- const row = { id: 1, name: 'Alice' };
6
- const result = QueryRowValidator.validate(row, {
7
- id: 1,
8
- name: 'Alice',
9
- });
10
- expect(result).toBe(true);
11
- });
12
- it('should return false when primitive values differ', () => {
13
- const row = { id: 1 };
14
- const result = QueryRowValidator.validate(row, {
15
- id: 2,
16
- });
17
- expect(result).toBe(false);
18
- });
19
- });
20
- describe('function conditions', () => {
21
- it('should validate using a function condition', () => {
22
- const row = { age: 30 };
23
- const result = QueryRowValidator.validate(row, {
24
- age: (value) => value > 18,
25
- });
26
- expect(result).toBe(true);
27
- });
28
- it('should return false when function condition fails', () => {
29
- const row = { age: 15 };
30
- const result = QueryRowValidator.validate(row, {
31
- age: (value) => value > 18,
32
- });
33
- expect(result).toBe(false);
34
- });
35
- });
36
- describe('array conditions', () => {
37
- it('should validate arrays using strict comparison', () => {
38
- const row = { tags: ['a', 'b'] };
39
- const result = QueryRowValidator.validate(row, {
40
- tags: ['a', 'b'],
41
- });
42
- expect(result).toBe(true);
43
- });
44
- it('should return false for arrays with different values', () => {
45
- const row = { tags: ['a', 'b'] };
46
- const result = QueryRowValidator.validate(row, {
47
- tags: ['a', 'c'],
48
- });
49
- expect(result).toBe(false);
50
- });
51
- it('should return false if condition is array but value is not', () => {
52
- const row = { tags: 'a,b' };
53
- const result = QueryRowValidator.validate(row, {
54
- tags: ['a', 'b'],
55
- });
56
- expect(result).toBe(false);
57
- });
58
- });
59
- describe('object conditions (nested validation)', () => {
60
- it('should validate nested objects recursively', () => {
61
- const row = {
62
- user: {
63
- name: 'John',
64
- age: 25,
65
- },
66
- };
67
- const result = QueryRowValidator.validate(row, {
68
- user: {
69
- name: 'John',
70
- age: (value) => value >= 18,
71
- },
72
- });
73
- expect(result).toBe(true);
74
- });
75
- it('should return false when nested validation fails', () => {
76
- const row = {
77
- user: {
78
- name: 'John',
79
- age: 15,
80
- },
81
- };
82
- const result = QueryRowValidator.validate(row, {
83
- user: {
84
- age: (value) => value >= 18,
85
- },
86
- });
87
- expect(result).toBe(false);
88
- });
89
- it('should return false if condition is object but value is not', () => {
90
- const row = {
91
- user: 'John',
92
- };
93
- const result = QueryRowValidator.validate(row, {
94
- user: { name: 'John' },
95
- });
96
- expect(result).toBe(false);
97
- });
98
- });
99
- describe('ignoreNullValues behavior', () => {
100
- it('should ignore null conditions when ignoreNullValues is true', () => {
101
- const row = { name: 'Alice' };
102
- const result = QueryRowValidator.validate(row, {
103
- name: null,
104
- }, { ignoreNullValues: true });
105
- expect(result).toBe(true);
106
- });
107
- it('should ignore undefined conditions when ignoreNullValues is true', () => {
108
- const row = { name: 'Alice' };
109
- const result = QueryRowValidator.validate(row, {
110
- name: undefined,
111
- }, { ignoreNullValues: true });
112
- expect(result).toBe(true);
113
- });
114
- it('should NOT ignore null when ignoreNullValues is false', () => {
115
- const row = { name: 'Alice' };
116
- const result = QueryRowValidator.validate(row, {
117
- name: null,
118
- }, { ignoreNullValues: false });
119
- expect(result).toBe(false);
120
- });
121
- it('should use default options (ignoreNullValues = false)', () => {
122
- const row = { name: 'Alice' };
123
- const result = QueryRowValidator.validate(row, {
124
- name: null,
125
- });
126
- expect(result).toBe(false);
127
- });
128
- });
129
- describe('multiple conditions', () => {
130
- it('should return true only if all conditions pass', () => {
131
- const row = {
132
- id: 1,
133
- active: true,
134
- roles: ['admin'],
135
- };
136
- const result = QueryRowValidator.validate(row, {
137
- id: 1,
138
- active: true,
139
- roles: ['admin'],
140
- });
141
- expect(result).toBe(true);
142
- });
143
- it('should return false if at least one condition fails', () => {
144
- const row = {
145
- id: 1,
146
- active: false,
147
- };
148
- const result = QueryRowValidator.validate(row, {
149
- id: 1,
150
- active: true,
151
- });
152
- expect(result).toBe(false);
153
- });
154
- });
155
- });
156
- //# sourceMappingURL=query-row-validator.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-row-validator.spec.js","sourceRoot":"","sources":["../../../../src/core/validation/__tests__/query-row-validator.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=number-validation.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"number-validation.spec.d.ts","sourceRoot":"","sources":["../../../../../src/core/validation/decorators/__tests__/number-validation.spec.ts"],"names":[],"mappings":""}
@@ -1,130 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __param = (this && this.__param) || function (paramIndex, decorator) {
8
- return function (target, key) { decorator(target, key, paramIndex); }
9
- };
10
- import { InvalidArgumentError } from '../../../errors';
11
- import { integer, max, min, validateNumbers } from '../number-validaton';
12
- class TestService {
13
- sum(a, b, c) {
14
- return a + b + c;
15
- }
16
- onlyInteger(value) {
17
- return value;
18
- }
19
- ranged(value) {
20
- return value;
21
- }
22
- }
23
- __decorate([
24
- validateNumbers,
25
- __param(0, min(0)),
26
- __param(1, max(10)),
27
- __param(2, integer)
28
- ], TestService.prototype, "sum", null);
29
- __decorate([
30
- validateNumbers,
31
- __param(0, integer)
32
- ], TestService.prototype, "onlyInteger", null);
33
- __decorate([
34
- validateNumbers,
35
- __param(0, min(5)),
36
- __param(0, max(10))
37
- ], TestService.prototype, "ranged", null);
38
- describe('number decorators', () => {
39
- let service;
40
- beforeEach(() => {
41
- service = new TestService();
42
- });
43
- describe('valid scenarios', () => {
44
- it('should allow valid arguments', () => {
45
- expect(service.sum(1, 5, 3)).toBe(9);
46
- });
47
- it('should allow integer values', () => {
48
- expect(service.onlyInteger(10)).toBe(10);
49
- });
50
- it('should allow values within min/max range', () => {
51
- expect(service.ranged(5)).toBe(5);
52
- expect(service.ranged(10)).toBe(10);
53
- });
54
- });
55
- describe('min decorator', () => {
56
- it('should throw if value is less than min', () => {
57
- expect(() => service.sum(-1, 5, 3)).toThrow(InvalidArgumentError);
58
- });
59
- it('should throw with correct error message', () => {
60
- try {
61
- service.sum(-1, 5, 3);
62
- }
63
- catch (e) {
64
- expect(e).toBeInstanceOf(InvalidArgumentError);
65
- expect(e.message).toContain('equal or greater than 0');
66
- }
67
- });
68
- });
69
- describe('max decorator', () => {
70
- it('should throw if value is greater than max', () => {
71
- expect(() => service.sum(1, 20, 3)).toThrow(InvalidArgumentError);
72
- });
73
- it('should throw with correct error message', () => {
74
- try {
75
- service.sum(1, 20, 3);
76
- }
77
- catch (e) {
78
- expect(e).toBeInstanceOf(InvalidArgumentError);
79
- expect(e.message).toContain('equal or less than 10');
80
- }
81
- });
82
- describe('decorator override behavior', () => {
83
- class OverrideService {
84
- test(value) {
85
- return value;
86
- }
87
- }
88
- __decorate([
89
- validateNumbers,
90
- __param(0, max(10)),
91
- __param(0, max(5))
92
- ], OverrideService.prototype, "test", null);
93
- const service = new OverrideService();
94
- it('should override max value when decorator is applied multiple times', () => {
95
- // valor final é 10 (último decorator executado)
96
- expect(service.test(10)).toBe(10);
97
- expect(() => service.test(11)).toThrow(InvalidArgumentError);
98
- });
99
- });
100
- });
101
- describe('integer decorator', () => {
102
- it('should throw if value is not an integer', () => {
103
- expect(() => service.onlyInteger(1.5)).toThrow(InvalidArgumentError);
104
- });
105
- it('should accept safe integers', () => {
106
- expect(service.onlyInteger(Number.MAX_SAFE_INTEGER)).toBe(Number.MAX_SAFE_INTEGER);
107
- });
108
- it('should throw if value is NaN', () => {
109
- expect(() => service.onlyInteger(NaN)).toThrow(InvalidArgumentError);
110
- });
111
- });
112
- describe('combined decorators', () => {
113
- it('should validate min and max together', () => {
114
- expect(() => service.ranged(4)).toThrow(InvalidArgumentError);
115
- expect(() => service.ranged(11)).toThrow(InvalidArgumentError);
116
- });
117
- it('should pass when all constraints are satisfied', () => {
118
- expect(service.ranged(7)).toBe(7);
119
- });
120
- });
121
- describe('type validation', () => {
122
- it('should throw if value is not a number for min', () => {
123
- expect(() => service.sum('1', 5, 3)).toThrow(InvalidArgumentError);
124
- });
125
- it('should throw if value is not a number for max', () => {
126
- expect(() => service.sum(1, '5', 3)).toThrow(InvalidArgumentError);
127
- });
128
- });
129
- });
130
- //# sourceMappingURL=number-validation.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"number-validation.spec.js","sourceRoot":"","sources":["../../../../../src/core/validation/decorators/__tests__/number-validation.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=compare-arrays.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compare-arrays.spec.d.ts","sourceRoot":"","sources":["../../../../../src/utils/functions/generic/__tests__/compare-arrays.spec.ts"],"names":[],"mappings":""}
@@ -1,20 +0,0 @@
1
- import { compareArrays } from '../compare-arrays';
2
- describe('compareArrays', () => {
3
- it('returns true for ly equal arrays', () => {
4
- const a = [{ x: 1 }, { y: 2 }];
5
- const b = [{ x: 1 }, { y: 2 }];
6
- expect(compareArrays(a, b)).toBe(true);
7
- });
8
- it('returns false for ly different arrays', () => {
9
- expect(compareArrays([{ x: 1 }], [{ x: 2 }])).toBe(false);
10
- });
11
- it('returns false when order differs', () => {
12
- expect(compareArrays([{ a: 1 }, { b: 2 }], [{ b: 2 }, { a: 1 }])).toBe(false);
13
- });
14
- it('works with nested objects', () => {
15
- const a = [{ x: { y: 1 } }];
16
- const b = [{ x: { y: 1 } }];
17
- expect(compareArrays(a, b)).toBe(true);
18
- });
19
- });
20
- //# sourceMappingURL=compare-arrays.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compare-arrays.spec.js","sourceRoot":"","sources":["../../../../../src/utils/functions/generic/__tests__/compare-arrays.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAE/B,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CACpE,KAAK,CACN,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAE5B,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=deep-equal.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deep-equal.spec.d.ts","sourceRoot":"","sources":["../../../../../src/utils/functions/generic/__tests__/deep-equal.spec.ts"],"names":[],"mappings":""}
@@ -1,81 +0,0 @@
1
- import { deepEqual } from '../deep-equal';
2
- describe('deepEqual', () => {
3
- describe('primitive values', () => {
4
- it('returns true for strictly equal primitives', () => {
5
- expect(deepEqual(1, 1)).toBe(true);
6
- expect(deepEqual('a', 'a')).toBe(true);
7
- expect(deepEqual(true, true)).toBe(true);
8
- expect(deepEqual(null, null)).toBe(true);
9
- expect(deepEqual(undefined, undefined)).toBe(true);
10
- });
11
- it('returns false for different primitive values', () => {
12
- expect(deepEqual(1, 2)).toBe(false);
13
- expect(deepEqual('a', 'b')).toBe(false);
14
- expect(deepEqual(true, false)).toBe(false);
15
- expect(deepEqual(null, undefined)).toBe(false);
16
- });
17
- });
18
- describe('objects', () => {
19
- it('returns true for deeply equal plain objects', () => {
20
- const a = { x: 1, y: 2 };
21
- const b = { x: 1, y: 2 };
22
- expect(deepEqual(a, b)).toBe(true);
23
- });
24
- it('returns false for objects with different keys', () => {
25
- expect(deepEqual({ x: 1 }, { y: 1 })).toBe(false);
26
- });
27
- it('returns false for objects with same keys but different values', () => {
28
- expect(deepEqual({ x: 1 }, { x: 2 })).toBe(false);
29
- });
30
- it('returns false when one object has extra keys', () => {
31
- expect(deepEqual({ x: 1 }, { x: 1, y: 2 })).toBe(false);
32
- });
33
- });
34
- describe('nested structures', () => {
35
- it('returns true for deeply nested objects', () => {
36
- const a = { x: { y: { z: 1 } } };
37
- const b = { x: { y: { z: 1 } } };
38
- expect(deepEqual(a, b)).toBe(true);
39
- });
40
- it('returns false for deeply nested differences', () => {
41
- const a = { x: { y: { z: 1 } } };
42
- const b = { x: { y: { z: 2 } } };
43
- expect(deepEqual(a, b)).toBe(false);
44
- });
45
- });
46
- describe('arrays', () => {
47
- it('returns true for deeply equal arrays', () => {
48
- expect(deepEqual([1, 2, 3], [1, 2, 3])).toBe(true);
49
- });
50
- it('returns false for arrays with different order', () => {
51
- expect(deepEqual([1, 2, 3], [3, 2, 1])).toBe(false);
52
- });
53
- it('returns true for arrays with nested objects', () => {
54
- const a = [{ x: 1 }, { y: 2 }];
55
- const b = [{ x: 1 }, { y: 2 }];
56
- expect(deepEqual(a, b)).toBe(true);
57
- });
58
- it('returns false for arrays with different lengths', () => {
59
- expect(deepEqual([1, 2], [1, 2, 3])).toBe(false);
60
- });
61
- });
62
- describe('mixed and edge cases', () => {
63
- it('returns false when comparing array and object', () => {
64
- expect(deepEqual([], {})).toBe(false);
65
- });
66
- it('returns false when one value is object and the other is primitive', () => {
67
- expect(deepEqual({ x: 1 }, 1)).toBe(false);
68
- });
69
- it('returns true for same object reference', () => {
70
- const obj = { x: 1 };
71
- expect(deepEqual(obj, obj)).toBe(true);
72
- });
73
- it('returns false for Date objects with same value (by design)', () => {
74
- const a = new Date(2020, 1, 1);
75
- const b = new Date(2020, 1, 1);
76
- // Date has no enumerable keys, so this documents the limitation
77
- expect(deepEqual(a, b)).toBe(true);
78
- });
79
- });
80
- });
81
- //# sourceMappingURL=deep-equal.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deep-equal.spec.js","sourceRoot":"","sources":["../../../../../src/utils/functions/generic/__tests__/deep-equal.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=get-entries.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-entries.spec.d.ts","sourceRoot":"","sources":["../../../../../src/utils/functions/generic/__tests__/get-entries.spec.ts"],"names":[],"mappings":""}
@@ -1,54 +0,0 @@
1
- import { getEntries } from '../get-entries';
2
- describe('getEntries', () => {
3
- it('should return entries for a simple object', () => {
4
- const obj = {
5
- a: 1,
6
- b: 2,
7
- };
8
- const entries = getEntries(obj);
9
- expect(entries).toEqual([
10
- ['a', 1],
11
- ['b', 2],
12
- ]);
13
- });
14
- it('should return an empty array for an empty object', () => {
15
- const obj = {};
16
- const entries = getEntries(obj);
17
- expect(entries).toEqual([]);
18
- });
19
- it('should work with different value types', () => {
20
- const obj = {
21
- name: 'Alice',
22
- age: 30,
23
- active: true,
24
- };
25
- const entries = getEntries(obj);
26
- expect(entries).toEqual([
27
- ['name', 'Alice'],
28
- ['age', 30],
29
- ['active', true],
30
- ]);
31
- });
32
- it('should preserve key-value association', () => {
33
- const obj = {
34
- x: 10,
35
- y: 20,
36
- };
37
- const entries = getEntries(obj);
38
- for (const [key, value] of entries) {
39
- expect(obj[key]).toBe(value);
40
- }
41
- });
42
- it('should provide correct typing for keys and values (type-level test)', () => {
43
- const obj = {
44
- id: 1,
45
- title: 'Post',
46
- };
47
- const entries = getEntries(obj);
48
- const key = 'id';
49
- const value = obj[key];
50
- expect(key).toBe('id');
51
- expect(value).toBe(1);
52
- });
53
- });
54
- //# sourceMappingURL=get-entries.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-entries.spec.js","sourceRoot":"","sources":["../../../../../src/utils/functions/generic/__tests__/get-entries.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,GAAG,GAAG;YACV,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL,CAAC;QAEF,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAEhC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YACtB,CAAC,GAAG,EAAE,CAAC,CAAC;YACR,CAAC,GAAG,EAAE,CAAC,CAAC;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,GAAG,GAAG,EAAE,CAAC;QAEf,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAEhC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,EAAE;YACP,MAAM,EAAE,IAAI;SACb,CAAC;QAEF,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAEhC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YACtB,CAAC,MAAM,EAAE,OAAO,CAAC;YACjB,CAAC,KAAK,EAAE,EAAE,CAAC;YACX,CAAC,QAAQ,EAAE,IAAI,CAAC;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,GAAG,GAAG;YACV,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,EAAE;SACN,CAAC;QAEF,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAEhC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,GAAG,GAAG;YACV,EAAE,EAAE,CAAC;YACL,KAAK,EAAE,MAAM;SACd,CAAC;QAEF,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAKhC,MAAM,GAAG,GAAa,IAAI,CAAC;QAC3B,MAAM,KAAK,GAAa,GAAG,CAAC,GAAG,CAAC,CAAC;QAEjC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=get-object-property-names.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-object-property-names.spec.d.ts","sourceRoot":"","sources":["../../../../../src/utils/functions/generic/__tests__/get-object-property-names.spec.ts"],"names":[],"mappings":""}
@@ -1,82 +0,0 @@
1
- import { getObjectPropertyNames } from '../get-object-property-names';
2
- class User {
3
- constructor(id, name, active) {
4
- this.id = id;
5
- this.name = name;
6
- this.active = active;
7
- }
8
- isAdmin() {
9
- return this.id === 1;
10
- }
11
- }
12
- describe('getObjectPropertyNames', () => {
13
- it('should return only data properties from a plain object', () => {
14
- const obj = {
15
- id: 1,
16
- name: 'John',
17
- active: true,
18
- };
19
- const result = getObjectPropertyNames(obj);
20
- expect(result).toEqual(['id', 'name', 'active']);
21
- });
22
- it('should exclude function properties', () => {
23
- const obj = {
24
- id: 1,
25
- name: 'John',
26
- greet: () => 'hello',
27
- };
28
- const result = getObjectPropertyNames(obj);
29
- expect(result).toEqual(['id', 'name']);
30
- });
31
- it('should not include class prototype methods', () => {
32
- const user = new User(1, 'John', true);
33
- const result = getObjectPropertyNames(user);
34
- expect(result).toEqual(['id', 'name', 'active']);
35
- expect(result.includes('isAdmin')).toBe(false);
36
- });
37
- it('should return empty array for object with only methods', () => {
38
- const obj = {
39
- fn1: () => 1,
40
- fn2: () => 2,
41
- };
42
- const result = getObjectPropertyNames(obj);
43
- expect(result).toEqual([]);
44
- });
45
- it('should return empty array for empty object', () => {
46
- const obj = {};
47
- const result = getObjectPropertyNames(obj);
48
- expect(result).toEqual([]);
49
- });
50
- it('should handle mixed value types correctly', () => {
51
- const obj = {
52
- str: 'text',
53
- num: 123,
54
- bool: true,
55
- nil: null,
56
- undef: undefined,
57
- obj: { nested: true },
58
- arr: [1, 2, 3],
59
- fn: () => { },
60
- };
61
- const result = getObjectPropertyNames(obj);
62
- expect(result).toEqual([
63
- 'str',
64
- 'num',
65
- 'bool',
66
- 'nil',
67
- 'undef',
68
- 'obj',
69
- 'arr',
70
- ]);
71
- });
72
- it('should preserve key order', () => {
73
- const obj = {
74
- a: 1,
75
- b: 2,
76
- c: 3,
77
- };
78
- const result = getObjectPropertyNames(obj);
79
- expect(result).toEqual(['a', 'b', 'c']);
80
- });
81
- });
82
- //# sourceMappingURL=get-object-property-names.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-object-property-names.spec.js","sourceRoot":"","sources":["../../../../../src/utils/functions/generic/__tests__/get-object-property-names.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=sort-by-properties.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sort-by-properties.spec.d.ts","sourceRoot":"","sources":["../../../../../src/utils/functions/sort/__tests__/sort-by-properties.spec.ts"],"names":[],"mappings":""}