@ackplus/nest-crud-request 1.1.1 → 1.1.5

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 (45) hide show
  1. package/package.json +2 -2
  2. package/src/index.d.ts.map +1 -0
  3. package/src/index.js +6 -0
  4. package/src/lib/query-builder.d.ts.map +1 -0
  5. package/{dist → src}/lib/query-builder.js +13 -9
  6. package/src/lib/relation-builder.d.ts.map +1 -0
  7. package/{dist → src}/lib/relation-builder.js +5 -1
  8. package/src/lib/types.d.ts +1 -0
  9. package/src/lib/types.d.ts.map +1 -0
  10. package/src/lib/types.js +0 -1
  11. package/src/lib/utils.d.ts.map +1 -0
  12. package/{dist → src}/lib/utils.js +4 -1
  13. package/src/lib/where-builder.d.ts.map +1 -0
  14. package/{dist → src}/lib/where-builder.js +10 -6
  15. package/dist/index.d.ts.map +0 -1
  16. package/dist/index.js +0 -3
  17. package/dist/lib/query-builder.d.ts.map +0 -1
  18. package/dist/lib/relation-builder.d.ts.map +0 -1
  19. package/dist/lib/types.d.ts +0 -53
  20. package/dist/lib/types.d.ts.map +0 -1
  21. package/dist/lib/types.js +0 -31
  22. package/dist/lib/utils.d.ts.map +0 -1
  23. package/dist/lib/where-builder.d.ts.map +0 -1
  24. package/eslint.config.mjs +0 -22
  25. package/jest.config.ts +0 -10
  26. package/project.json +0 -46
  27. package/src/index.ts +0 -3
  28. package/src/lib/query-builder.ts +0 -189
  29. package/src/lib/relation-builder.ts +0 -68
  30. package/src/lib/types.js.map +0 -1
  31. package/src/lib/types.ts +0 -61
  32. package/src/lib/utils.ts +0 -11
  33. package/src/lib/where-builder.ts +0 -159
  34. package/src/test/query-builder-where.spec.ts +0 -173
  35. package/src/test/query-builder.spec.ts +0 -140
  36. package/src/test/relation-builder.spec.ts +0 -32
  37. package/src/test/where-builder-complex.spec.ts +0 -173
  38. package/tsconfig.json +0 -17
  39. package/tsconfig.lib.json +0 -10
  40. package/tsconfig.spec.json +0 -15
  41. /package/{dist → src}/index.d.ts +0 -0
  42. /package/{dist → src}/lib/query-builder.d.ts +0 -0
  43. /package/{dist → src}/lib/relation-builder.d.ts +0 -0
  44. /package/{dist → src}/lib/utils.d.ts +0 -0
  45. /package/{dist → src}/lib/where-builder.d.ts +0 -0
@@ -1,173 +0,0 @@
1
- import { WhereBuilder } from '../lib/where-builder';
2
- import { WhereOperatorEnum } from '../lib/types';
3
-
4
- describe('WhereBuilder - Complex Nested Structures', () => {
5
- let whereBuilder: WhereBuilder;
6
-
7
- beforeEach(() => {
8
- whereBuilder = new WhereBuilder();
9
- });
10
-
11
- it('should create complex nested where structure with mixed conditions', () => {
12
- // Target structure:
13
- // {
14
- // customerId: { $in: ['cust_123', 'cust_456'] },
15
- // $or: [
16
- // { status: { $eq: 'pending' } },
17
- // { status: { $eq: 'processing' } },
18
- // {
19
- // $and: [
20
- // { total: { $gt: 1000 } },
21
- // { tax: { $lte: 200 } },
22
- // ],
23
- // },
24
- // ],
25
- // }
26
-
27
- whereBuilder
28
- .where('customerId', WhereOperatorEnum.IN, ['cust_123', 'cust_456'])
29
- .orWhere('status', WhereOperatorEnum.EQ, 'pending')
30
- .orWhere('status', WhereOperatorEnum.EQ, 'processing')
31
- .orWhere((builder) => {
32
- builder.where('total', WhereOperatorEnum.GT, 1000)
33
- .where('tax', WhereOperatorEnum.LT_OR_EQ, 200);
34
- });
35
-
36
- const result = whereBuilder.toObject();
37
-
38
- expect(result).toEqual({
39
- customerId: { $in: ['cust_123', 'cust_456'] },
40
- $or: [
41
- { status: { $eq: 'pending' } },
42
- { status: { $eq: 'processing' } },
43
- {
44
- total: { $gt: 1000 },
45
- tax: { $lte: 200 },
46
- },
47
- ],
48
- });
49
- });
50
-
51
- it('should handle multiple field conditions with same logical operator', () => {
52
- whereBuilder
53
- .where('name', 'John')
54
- .orWhere('age', WhereOperatorEnum.GT, 18)
55
- .orWhere('status', 'active')
56
- .where('country', 'USA');
57
-
58
- const result = whereBuilder.toObject();
59
-
60
- expect(result).toEqual({
61
- name: { $eq: 'John' },
62
- country: { $eq: 'USA' },
63
- $or: [
64
- { age: { $gt: 18 } },
65
- { status: { $eq: 'active' } },
66
- ],
67
- });
68
- });
69
-
70
- it('should handle nested $and and $or conditions', () => {
71
- whereBuilder
72
- .where('userId', '123')
73
- .orWhere((builder) => {
74
- builder.where('role', 'admin')
75
- .where('department', 'IT');
76
- })
77
- .orWhere((builder) => {
78
- builder.where('role', 'manager')
79
- .where('level', WhereOperatorEnum.GT, 5);
80
- });
81
-
82
- const result = whereBuilder.toObject();
83
-
84
- expect(result).toEqual({
85
- userId: { $eq: '123' },
86
- $or: [
87
- {
88
- role: { $eq: 'admin' },
89
- department: { $eq: 'IT' },
90
- },
91
- {
92
- role: { $eq: 'manager' },
93
- level: { $gt: 5 },
94
- },
95
- ],
96
- });
97
- });
98
-
99
- it('should handle direct object conditions', () => {
100
- whereBuilder
101
- .where({
102
- name: { $eq: 'John' },
103
- age: { $gt: 18 },
104
- })
105
- .orWhere({
106
- status: { $eq: 'active' },
107
- verified: { $eq: true },
108
- });
109
-
110
- const result = whereBuilder.toObject();
111
-
112
- expect(result).toEqual({
113
- name: { $eq: 'John' },
114
- age: { $gt: 18 },
115
- $or: [
116
- {
117
- status: { $eq: 'active' },
118
- verified: { $eq: true },
119
- },
120
- ],
121
- });
122
- });
123
-
124
- it('should merge multiple $or conditions correctly', () => {
125
- whereBuilder
126
- .orWhere('category', 'tech')
127
- .orWhere('category', 'design')
128
- .where('published', true)
129
- .orWhere('priority', WhereOperatorEnum.GT, 5);
130
-
131
- const result = whereBuilder.toObject();
132
-
133
- expect(result).toEqual({
134
- published: { $eq: true },
135
- $or: [
136
- { category: { $eq: 'tech' } },
137
- { category: { $eq: 'design' } },
138
- { priority: { $gt: 5 } },
139
- ],
140
- });
141
- });
142
-
143
- it('should handle complex nested logical operations', () => {
144
- whereBuilder
145
- .where('companyId', '456')
146
- .orWhere((builder) => {
147
- builder.where('department', 'Sales')
148
- .orWhere((innerBuilder) => {
149
- innerBuilder.where('region', 'North')
150
- .where('quota', WhereOperatorEnum.GT, 100000);
151
- });
152
- })
153
- .where('active', true);
154
-
155
- const result = whereBuilder.toObject();
156
-
157
- expect(result).toEqual({
158
- companyId: { $eq: '456' },
159
- active: { $eq: true },
160
- $or: [
161
- {
162
- department: { $eq: 'Sales' },
163
- $or: [
164
- {
165
- region: { $eq: 'North' },
166
- quota: { $gt: 100000 },
167
- },
168
- ],
169
- },
170
- ],
171
- });
172
- });
173
- });
package/tsconfig.json DELETED
@@ -1,17 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": {
4
- "module": "commonjs",
5
- "forceConsistentCasingInFileNames": true
6
- },
7
- "files": [],
8
- "include": [],
9
- "references": [
10
- {
11
- "path": "./tsconfig.lib.json"
12
- },
13
- {
14
- "path": "./tsconfig.spec.json"
15
- }
16
- ]
17
- }
package/tsconfig.lib.json DELETED
@@ -1,10 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
5
- "declaration": true,
6
- "types": ["node"]
7
- },
8
- "include": ["src/**/*.ts"],
9
- "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10
- }
@@ -1,15 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
5
- "module": "commonjs",
6
- "moduleResolution": "node10",
7
- "types": ["jest", "node"]
8
- },
9
- "include": [
10
- "jest.config.ts",
11
- "src/**/*.test.ts",
12
- "src/**/*.spec.ts",
13
- "src/**/*.d.ts"
14
- ]
15
- }
File without changes
File without changes
File without changes
File without changes
File without changes