prisma-generator-express 1.18.0 → 1.19.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 (71) hide show
  1. package/README.md +399 -194
  2. package/dist/bin.d.ts +2 -0
  3. package/dist/bin.js +1 -1
  4. package/dist/bin.js.map +1 -1
  5. package/dist/client/encodeQueryParams.d.ts +1 -0
  6. package/dist/client/encodeQueryParams.js +33 -0
  7. package/dist/client/encodeQueryParams.js.map +1 -0
  8. package/dist/constants.d.ts +1 -0
  9. package/dist/copy/misc.d.ts +5 -0
  10. package/dist/copy/misc.js +52 -0
  11. package/dist/copy/misc.js.map +1 -0
  12. package/dist/generators/generateImportPrismaStatement.d.ts +3 -0
  13. package/dist/generators/generateImportPrismaStatement.js +55 -0
  14. package/dist/generators/generateImportPrismaStatement.js.map +1 -0
  15. package/dist/generators/generateQueryBuilderHelper.d.ts +2 -0
  16. package/dist/generators/generateQueryBuilderHelper.js +139 -0
  17. package/dist/generators/generateQueryBuilderHelper.js.map +1 -0
  18. package/dist/generators/generateRouter.d.ts +6 -0
  19. package/dist/generators/generateRouter.js +340 -0
  20. package/dist/generators/generateRouter.js.map +1 -0
  21. package/dist/generators/generateUnifiedDocs.d.ts +1 -0
  22. package/dist/generators/generateUnifiedDocs.js +171 -0
  23. package/dist/generators/generateUnifiedDocs.js.map +1 -0
  24. package/dist/generators/generateUnifiedHandler.d.ts +6 -0
  25. package/dist/generators/generateUnifiedHandler.js +444 -0
  26. package/dist/generators/generateUnifiedHandler.js.map +1 -0
  27. package/dist/generators/generateUnifiedScalarUI.d.ts +5 -0
  28. package/dist/generators/generateUnifiedScalarUI.js +1390 -0
  29. package/dist/generators/generateUnifiedScalarUI.js.map +1 -0
  30. package/dist/index.d.ts +1 -0
  31. package/dist/index.js +80 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/utils/copyFiles.d.ts +6 -0
  34. package/dist/utils/copyFiles.js +123 -21
  35. package/dist/utils/copyFiles.js.map +1 -1
  36. package/dist/utils/strings.d.ts +2 -0
  37. package/dist/utils/writeFileSafely.d.ts +10 -0
  38. package/dist/utils/writeFileSafely.js +86 -14
  39. package/dist/utils/writeFileSafely.js.map +1 -1
  40. package/package.json +64 -31
  41. package/src/client/encodeQueryParams.ts +56 -0
  42. package/src/copy/buildModelOpenApi.ts +1569 -0
  43. package/src/copy/misc.ts +21 -0
  44. package/src/copy/operationDefinitions.ts +96 -0
  45. package/src/copy/parseQueryParams.ts +36 -21
  46. package/src/copy/routeConfig.ts +68 -28
  47. package/dist/generator.js +0 -47
  48. package/dist/generator.js.map +0 -1
  49. package/dist/helpers/generateImportPrismaStatement.js +0 -25
  50. package/dist/helpers/generateImportPrismaStatement.js.map +0 -1
  51. package/dist/helpers/generateOperation.js +0 -471
  52. package/dist/helpers/generateOperation.js.map +0 -1
  53. package/dist/helpers/generateRouteFile.js +0 -210
  54. package/dist/helpers/generateRouteFile.js.map +0 -1
  55. package/dist/utils/formatFile.js +0 -26
  56. package/dist/utils/formatFile.js.map +0 -1
  57. package/src/bin.ts +0 -2
  58. package/src/constants.ts +0 -1
  59. package/src/copy/encodeQueryParams.spec.ts +0 -303
  60. package/src/copy/encodeQueryParams.ts +0 -44
  61. package/src/copy/misc.spec.ts +0 -62
  62. package/src/copy/parseQueryParams.spec.ts +0 -187
  63. package/src/copy/transformZod.spec.ts +0 -763
  64. package/src/generator.ts +0 -54
  65. package/src/helpers/generateImportPrismaStatement.ts +0 -38
  66. package/src/helpers/generateOperation.ts +0 -515
  67. package/src/helpers/generateRouteFile.ts +0 -213
  68. package/src/utils/copyFiles.ts +0 -27
  69. package/src/utils/formatFile.ts +0 -22
  70. package/src/utils/strings.ts +0 -7
  71. package/src/utils/writeFileSafely.ts +0 -29
@@ -1,187 +0,0 @@
1
- import { parseQueryParams } from './parseQueryParams'
2
-
3
- describe('parseQueryParams', () => {
4
- it('should parse basic field selection correctly', () => {
5
- const params = {
6
- select: {
7
- id: 'true',
8
- name: 'true',
9
- },
10
- }
11
- const result = parseQueryParams(params)
12
- expect(result).toEqual({
13
- select: {
14
- id: true,
15
- name: true,
16
- },
17
- })
18
- })
19
-
20
- it('should parse nested field selection correctly', () => {
21
- const params = {
22
- select: {
23
- user: {
24
- select: {
25
- profile: 'true',
26
- },
27
- },
28
- },
29
- }
30
- const result = parseQueryParams(params)
31
- expect(result).toEqual({
32
- select: {
33
- user: {
34
- select: {
35
- profile: true,
36
- },
37
- },
38
- },
39
- })
40
- })
41
-
42
- it('should handle deeply nested logical operators correctly', () => {
43
- const params = {
44
- where: {
45
- AND: [
46
- { id: '123' },
47
- {
48
- OR: [{ active: 'true' }, { active: 'false' }],
49
- },
50
- ],
51
- },
52
- }
53
- const result = parseQueryParams(params)
54
- expect(result).toEqual({
55
- where: {
56
- AND: [
57
- { id: 123 },
58
- {
59
- OR: [{ active: true }, { active: false }],
60
- },
61
- ],
62
- },
63
- })
64
- })
65
-
66
- it('should handle complex nested arrays correctly', () => {
67
- const params = {
68
- where: {
69
- id: 'Vxdu42',
70
- AND: [
71
- {
72
- OR: [{ to_delete: 'false' }, { to_delete: 'null' }],
73
- },
74
- ],
75
- },
76
- }
77
- const result = parseQueryParams(params)
78
- expect(result).toEqual({
79
- where: {
80
- id: 'Vxdu42',
81
- AND: [
82
- {
83
- OR: [{ to_delete: false }, { to_delete: null }],
84
- },
85
- ],
86
- },
87
- })
88
- })
89
-
90
- it('should handle mixed types and conditions', () => {
91
- const params = {
92
- select: {
93
- id: 'true',
94
- project_id: 'true',
95
- user_assignments: {
96
- select: {
97
- user: 'true',
98
- },
99
- },
100
- tags_mappings: {
101
- select: {
102
- tag: 'true',
103
- },
104
- },
105
- attachments: {
106
- select: {
107
- attachment: 'true',
108
- },
109
- where: {
110
- is_image: 'true',
111
- },
112
- take: '100',
113
- orderBy: {
114
- created_at: 'desc',
115
- },
116
- },
117
- },
118
- where: {
119
- id: 'Vxdu42',
120
- AND: [
121
- {
122
- OR: [{ to_delete: 'false' }, { to_delete: 'null' }],
123
- },
124
- ],
125
- },
126
- }
127
- const result = parseQueryParams(params)
128
- expect(result).toEqual({
129
- select: {
130
- id: true,
131
- project_id: true,
132
- user_assignments: {
133
- select: {
134
- user: true,
135
- },
136
- },
137
- tags_mappings: {
138
- select: {
139
- tag: true,
140
- },
141
- },
142
- attachments: {
143
- select: {
144
- attachment: true,
145
- },
146
- where: {
147
- is_image: true,
148
- },
149
- take: 100,
150
- orderBy: {
151
- created_at: 'desc',
152
- },
153
- },
154
- },
155
- where: {
156
- id: 'Vxdu42',
157
- AND: [
158
- {
159
- OR: [{ to_delete: false }, { to_delete: null }],
160
- },
161
- ],
162
- },
163
- })
164
- })
165
-
166
- it('should handle special cases correctly', () => {
167
- const params = {
168
- emptyObject: {},
169
- emptyArray: [],
170
- unexpectedType: '123',
171
- }
172
- const result = parseQueryParams(params)
173
- expect(result).toEqual({
174
- emptyObject: {},
175
- emptyArray: [],
176
- unexpectedType: 123,
177
- })
178
- })
179
-
180
- it('should parse string values correctly', () => {
181
- expect(parseQueryParams('true')).toBe(true)
182
- expect(parseQueryParams('false')).toBe(false)
183
- expect(parseQueryParams('null')).toBe(null)
184
- expect(parseQueryParams('123')).toBe(123)
185
- expect(parseQueryParams('test')).toBe('test')
186
- })
187
- })