@contember/client 1.2.5 → 1.3.0-alpha.10

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 (226) hide show
  1. package/dist/development/content/formatContentApiRelativeUrl.cjs +5 -0
  2. package/dist/development/content/formatContentApiRelativeUrl.cjs.map +1 -0
  3. package/dist/development/content/formatContentApiRelativeUrl.js.map +1 -1
  4. package/dist/development/content/params/whereToFilter.cjs +17 -0
  5. package/dist/development/content/params/whereToFilter.cjs.map +1 -0
  6. package/dist/development/content/replaceGraphQlLiteral.cjs +15 -0
  7. package/dist/development/content/replaceGraphQlLiteral.cjs.map +1 -0
  8. package/dist/development/content/replaceGraphQlLiteral.js +15 -0
  9. package/dist/development/content/replaceGraphQlLiteral.js.map +1 -0
  10. package/dist/development/content/upload/FileUploadError.cjs +10 -0
  11. package/dist/development/content/upload/FileUploadError.cjs.map +1 -0
  12. package/dist/development/content/upload/GenerateUploadUrlMutationBuilder.cjs +64 -0
  13. package/dist/development/content/upload/GenerateUploadUrlMutationBuilder.cjs.map +1 -0
  14. package/dist/development/content/upload/GenerateUploadUrlMutationBuilder.js +49 -20
  15. package/dist/development/content/upload/GenerateUploadUrlMutationBuilder.js.map +1 -1
  16. package/dist/development/content/upload/S3FileUploader.cjs +107 -0
  17. package/dist/development/content/upload/S3FileUploader.cjs.map +1 -0
  18. package/dist/development/content/upload/S3FileUploader.js +2 -3
  19. package/dist/development/content/upload/S3FileUploader.js.map +1 -1
  20. package/dist/development/graphQlBuilder/GraphQlLiteral.cjs +15 -0
  21. package/dist/development/graphQlBuilder/GraphQlLiteral.cjs.map +1 -0
  22. package/dist/development/graphQlBuilder/GraphQlLiteral.js +3 -0
  23. package/dist/development/graphQlBuilder/GraphQlLiteral.js.map +1 -1
  24. package/dist/development/graphQlClient/GraphQlClient.cjs +26 -0
  25. package/dist/development/graphQlClient/GraphQlClient.cjs.map +1 -0
  26. package/dist/development/graphQlClient/GraphQlClient.js +9 -16
  27. package/dist/development/graphQlClient/GraphQlClient.js.map +1 -1
  28. package/dist/development/index.cjs +46 -0
  29. package/dist/development/index.cjs.map +1 -0
  30. package/dist/development/index.js +5 -26
  31. package/dist/development/index.js.map +1 -1
  32. package/dist/development/system/formatSystemApiRelativeUrl.cjs +5 -0
  33. package/dist/development/system/formatSystemApiRelativeUrl.cjs.map +1 -0
  34. package/dist/development/system/formatSystemApiRelativeUrl.js.map +1 -1
  35. package/dist/development/tenant/loginMutation.cjs +34 -0
  36. package/dist/development/tenant/loginMutation.cjs.map +1 -0
  37. package/dist/development/tenant/tenantApiRelativeUrl.cjs +5 -0
  38. package/dist/development/tenant/tenantApiRelativeUrl.cjs.map +1 -0
  39. package/dist/development/tenant/tenantErrorMessages.cjs +18 -0
  40. package/dist/development/tenant/tenantErrorMessages.cjs.map +1 -0
  41. package/dist/development/tenant/tenantErrorMessages.js.map +1 -1
  42. package/dist/development/utils/readFileAsArrayBuffer.cjs +15 -0
  43. package/dist/development/utils/readFileAsArrayBuffer.cjs.map +1 -0
  44. package/dist/production/content/formatContentApiRelativeUrl.cjs +5 -0
  45. package/dist/production/content/formatContentApiRelativeUrl.cjs.map +1 -0
  46. package/dist/production/content/formatContentApiRelativeUrl.js.map +1 -1
  47. package/dist/production/content/params/whereToFilter.cjs +17 -0
  48. package/dist/production/content/params/whereToFilter.cjs.map +1 -0
  49. package/dist/production/content/replaceGraphQlLiteral.cjs +15 -0
  50. package/dist/production/content/replaceGraphQlLiteral.cjs.map +1 -0
  51. package/dist/production/content/replaceGraphQlLiteral.js +15 -0
  52. package/dist/production/content/replaceGraphQlLiteral.js.map +1 -0
  53. package/dist/production/content/upload/FileUploadError.cjs +10 -0
  54. package/dist/production/content/upload/FileUploadError.cjs.map +1 -0
  55. package/dist/production/content/upload/GenerateUploadUrlMutationBuilder.cjs +64 -0
  56. package/dist/production/content/upload/GenerateUploadUrlMutationBuilder.cjs.map +1 -0
  57. package/dist/production/content/upload/GenerateUploadUrlMutationBuilder.js +49 -20
  58. package/dist/production/content/upload/GenerateUploadUrlMutationBuilder.js.map +1 -1
  59. package/dist/production/content/upload/S3FileUploader.cjs +107 -0
  60. package/dist/production/content/upload/S3FileUploader.cjs.map +1 -0
  61. package/dist/production/content/upload/S3FileUploader.js +2 -3
  62. package/dist/production/content/upload/S3FileUploader.js.map +1 -1
  63. package/dist/production/graphQlBuilder/GraphQlLiteral.cjs +12 -0
  64. package/dist/production/graphQlBuilder/GraphQlLiteral.cjs.map +1 -0
  65. package/dist/production/graphQlBuilder/GraphQlLiteral.js.map +1 -1
  66. package/dist/production/graphQlClient/GraphQlClient.cjs +26 -0
  67. package/dist/production/graphQlClient/GraphQlClient.cjs.map +1 -0
  68. package/dist/production/graphQlClient/GraphQlClient.js +9 -16
  69. package/dist/production/graphQlClient/GraphQlClient.js.map +1 -1
  70. package/dist/production/index.cjs +46 -0
  71. package/dist/production/index.cjs.map +1 -0
  72. package/dist/production/index.js +5 -26
  73. package/dist/production/index.js.map +1 -1
  74. package/dist/production/system/formatSystemApiRelativeUrl.cjs +5 -0
  75. package/dist/production/system/formatSystemApiRelativeUrl.cjs.map +1 -0
  76. package/dist/production/system/formatSystemApiRelativeUrl.js.map +1 -1
  77. package/dist/production/tenant/loginMutation.cjs +34 -0
  78. package/dist/production/tenant/loginMutation.cjs.map +1 -0
  79. package/dist/production/tenant/tenantApiRelativeUrl.cjs +5 -0
  80. package/dist/production/tenant/tenantApiRelativeUrl.cjs.map +1 -0
  81. package/dist/production/tenant/tenantErrorMessages.cjs +18 -0
  82. package/dist/production/tenant/tenantErrorMessages.cjs.map +1 -0
  83. package/dist/production/tenant/tenantErrorMessages.js.map +1 -1
  84. package/dist/production/utils/readFileAsArrayBuffer.cjs +15 -0
  85. package/dist/production/utils/readFileAsArrayBuffer.cjs.map +1 -0
  86. package/dist/types/content/index.d.ts +1 -0
  87. package/dist/types/content/index.d.ts.map +1 -1
  88. package/dist/types/content/replaceGraphQlLiteral.d.ts +6 -0
  89. package/dist/types/content/replaceGraphQlLiteral.d.ts.map +1 -0
  90. package/dist/types/content/upload/GenerateUploadUrlMutationBuilder.d.ts +8 -4
  91. package/dist/types/content/upload/GenerateUploadUrlMutationBuilder.d.ts.map +1 -1
  92. package/dist/types/content/upload/S3FileUploader.d.ts.map +1 -1
  93. package/dist/types/crudQueryBuilder/index.d.ts +0 -6
  94. package/dist/types/crudQueryBuilder/index.d.ts.map +1 -1
  95. package/dist/types/crudQueryBuilder/types.d.ts +2 -43
  96. package/dist/types/crudQueryBuilder/types.d.ts.map +1 -1
  97. package/dist/types/graphQlBuilder/GraphQlLiteral.d.ts +3 -0
  98. package/dist/types/graphQlBuilder/GraphQlLiteral.d.ts.map +1 -1
  99. package/dist/types/graphQlBuilder/QueryBuilder.d.ts +2 -8
  100. package/dist/types/graphQlBuilder/QueryBuilder.d.ts.map +1 -1
  101. package/dist/types/graphQlBuilder/index.d.ts +0 -3
  102. package/dist/types/graphQlBuilder/index.d.ts.map +1 -1
  103. package/dist/types/graphQlClient/GraphQlClient.d.ts +10 -12
  104. package/dist/types/graphQlClient/GraphQlClient.d.ts.map +1 -1
  105. package/dist/types/graphQlClient/index.d.ts +2 -0
  106. package/dist/types/graphQlClient/index.d.ts.map +1 -1
  107. package/dist/types/index.d.ts +1 -29
  108. package/dist/types/index.d.ts.map +1 -1
  109. package/dist/types/tsconfig.tsbuildinfo +1 -1
  110. package/package.json +19 -4
  111. package/src/content/index.ts +1 -1
  112. package/src/content/replaceGraphQlLiteral.ts +22 -0
  113. package/src/content/upload/GenerateUploadUrlMutationBuilder.ts +56 -33
  114. package/src/content/upload/S3FileUploader.ts +1 -2
  115. package/src/crudQueryBuilder/index.ts +0 -6
  116. package/src/crudQueryBuilder/types.ts +5 -70
  117. package/src/graphQlBuilder/GraphQlLiteral.ts +8 -1
  118. package/src/graphQlBuilder/QueryBuilder.ts +2 -23
  119. package/src/graphQlBuilder/index.ts +0 -3
  120. package/src/graphQlClient/GraphQlClient.ts +15 -28
  121. package/src/graphQlClient/index.ts +7 -0
  122. package/src/index.ts +5 -31
  123. package/src/tsconfig.json +12 -1
  124. package/dist/development/crudQueryBuilder/CrudQueryBuilder.js +0 -104
  125. package/dist/development/crudQueryBuilder/CrudQueryBuilder.js.map +0 -1
  126. package/dist/development/crudQueryBuilder/CrudQueryBuilderError.js +0 -6
  127. package/dist/development/crudQueryBuilder/CrudQueryBuilderError.js.map +0 -1
  128. package/dist/development/crudQueryBuilder/ErrorsRelationBuilder.js +0 -15
  129. package/dist/development/crudQueryBuilder/ErrorsRelationBuilder.js.map +0 -1
  130. package/dist/development/crudQueryBuilder/ReadBuilder.js +0 -70
  131. package/dist/development/crudQueryBuilder/ReadBuilder.js.map +0 -1
  132. package/dist/development/crudQueryBuilder/ValidationRelationBuilder.js +0 -18
  133. package/dist/development/crudQueryBuilder/ValidationRelationBuilder.js.map +0 -1
  134. package/dist/development/crudQueryBuilder/WriteBuilder.js +0 -54
  135. package/dist/development/crudQueryBuilder/WriteBuilder.js.map +0 -1
  136. package/dist/development/crudQueryBuilder/WriteDataBuilder.js +0 -110
  137. package/dist/development/crudQueryBuilder/WriteDataBuilder.js.map +0 -1
  138. package/dist/development/crudQueryBuilder/WriteManyRelationBuilder.js +0 -77
  139. package/dist/development/crudQueryBuilder/WriteManyRelationBuilder.js.map +0 -1
  140. package/dist/development/crudQueryBuilder/WriteOneRelationBuilder.js +0 -51
  141. package/dist/development/crudQueryBuilder/WriteOneRelationBuilder.js.map +0 -1
  142. package/dist/development/crudQueryBuilder/types.js +0 -40
  143. package/dist/development/crudQueryBuilder/types.js.map +0 -1
  144. package/dist/development/graphQlBuilder/GraphQlBuilderError.js +0 -6
  145. package/dist/development/graphQlBuilder/GraphQlBuilderError.js.map +0 -1
  146. package/dist/development/graphQlBuilder/ObjectBuilder.js +0 -80
  147. package/dist/development/graphQlBuilder/ObjectBuilder.js.map +0 -1
  148. package/dist/development/graphQlBuilder/QueryBuilder.js +0 -22
  149. package/dist/development/graphQlBuilder/QueryBuilder.js.map +0 -1
  150. package/dist/development/graphQlBuilder/QueryCompiler.js +0 -101
  151. package/dist/development/graphQlBuilder/QueryCompiler.js.map +0 -1
  152. package/dist/development/graphQlBuilder/RootObjectBuilder.js +0 -31
  153. package/dist/development/graphQlBuilder/RootObjectBuilder.js.map +0 -1
  154. package/dist/development/utils/isEmptyObject.js +0 -12
  155. package/dist/development/utils/isEmptyObject.js.map +0 -1
  156. package/dist/production/crudQueryBuilder/CrudQueryBuilder.js +0 -104
  157. package/dist/production/crudQueryBuilder/CrudQueryBuilder.js.map +0 -1
  158. package/dist/production/crudQueryBuilder/CrudQueryBuilderError.js +0 -6
  159. package/dist/production/crudQueryBuilder/CrudQueryBuilderError.js.map +0 -1
  160. package/dist/production/crudQueryBuilder/ErrorsRelationBuilder.js +0 -15
  161. package/dist/production/crudQueryBuilder/ErrorsRelationBuilder.js.map +0 -1
  162. package/dist/production/crudQueryBuilder/ReadBuilder.js +0 -70
  163. package/dist/production/crudQueryBuilder/ReadBuilder.js.map +0 -1
  164. package/dist/production/crudQueryBuilder/ValidationRelationBuilder.js +0 -18
  165. package/dist/production/crudQueryBuilder/ValidationRelationBuilder.js.map +0 -1
  166. package/dist/production/crudQueryBuilder/WriteBuilder.js +0 -54
  167. package/dist/production/crudQueryBuilder/WriteBuilder.js.map +0 -1
  168. package/dist/production/crudQueryBuilder/WriteDataBuilder.js +0 -110
  169. package/dist/production/crudQueryBuilder/WriteDataBuilder.js.map +0 -1
  170. package/dist/production/crudQueryBuilder/WriteManyRelationBuilder.js +0 -77
  171. package/dist/production/crudQueryBuilder/WriteManyRelationBuilder.js.map +0 -1
  172. package/dist/production/crudQueryBuilder/WriteOneRelationBuilder.js +0 -51
  173. package/dist/production/crudQueryBuilder/WriteOneRelationBuilder.js.map +0 -1
  174. package/dist/production/crudQueryBuilder/types.js +0 -40
  175. package/dist/production/crudQueryBuilder/types.js.map +0 -1
  176. package/dist/production/graphQlBuilder/GraphQlBuilderError.js +0 -6
  177. package/dist/production/graphQlBuilder/GraphQlBuilderError.js.map +0 -1
  178. package/dist/production/graphQlBuilder/ObjectBuilder.js +0 -80
  179. package/dist/production/graphQlBuilder/ObjectBuilder.js.map +0 -1
  180. package/dist/production/graphQlBuilder/QueryBuilder.js +0 -22
  181. package/dist/production/graphQlBuilder/QueryBuilder.js.map +0 -1
  182. package/dist/production/graphQlBuilder/QueryCompiler.js +0 -101
  183. package/dist/production/graphQlBuilder/QueryCompiler.js.map +0 -1
  184. package/dist/production/graphQlBuilder/RootObjectBuilder.js +0 -31
  185. package/dist/production/graphQlBuilder/RootObjectBuilder.js.map +0 -1
  186. package/dist/production/utils/isEmptyObject.js +0 -12
  187. package/dist/production/utils/isEmptyObject.js.map +0 -1
  188. package/dist/types/crudQueryBuilder/CrudQueryBuilder.d.ts +0 -21
  189. package/dist/types/crudQueryBuilder/CrudQueryBuilder.d.ts.map +0 -1
  190. package/dist/types/crudQueryBuilder/CrudQueryBuilderError.d.ts +0 -3
  191. package/dist/types/crudQueryBuilder/CrudQueryBuilderError.d.ts.map +0 -1
  192. package/dist/types/crudQueryBuilder/ErrorsRelationBuilder.d.ts +0 -5
  193. package/dist/types/crudQueryBuilder/ErrorsRelationBuilder.d.ts.map +0 -1
  194. package/dist/types/crudQueryBuilder/ReadBuilder.d.ts +0 -31
  195. package/dist/types/crudQueryBuilder/ReadBuilder.d.ts.map +0 -1
  196. package/dist/types/crudQueryBuilder/ValidationRelationBuilder.d.ts +0 -5
  197. package/dist/types/crudQueryBuilder/ValidationRelationBuilder.d.ts.map +0 -1
  198. package/dist/types/crudQueryBuilder/WriteBuilder.d.ts +0 -24
  199. package/dist/types/crudQueryBuilder/WriteBuilder.d.ts.map +0 -1
  200. package/dist/types/crudQueryBuilder/WriteDataBuilder.d.ts +0 -24
  201. package/dist/types/crudQueryBuilder/WriteDataBuilder.d.ts.map +0 -1
  202. package/dist/types/crudQueryBuilder/WriteManyRelationBuilder.d.ts +0 -27
  203. package/dist/types/crudQueryBuilder/WriteManyRelationBuilder.d.ts.map +0 -1
  204. package/dist/types/crudQueryBuilder/WriteOneRelationBuilder.d.ts +0 -28
  205. package/dist/types/crudQueryBuilder/WriteOneRelationBuilder.d.ts.map +0 -1
  206. package/dist/types/graphQlBuilder/GraphQlBuilderError.d.ts +0 -3
  207. package/dist/types/graphQlBuilder/GraphQlBuilderError.d.ts.map +0 -1
  208. package/dist/types/graphQlBuilder/ObjectBuilder.d.ts +0 -28
  209. package/dist/types/graphQlBuilder/ObjectBuilder.d.ts.map +0 -1
  210. package/dist/types/graphQlBuilder/QueryCompiler.d.ts +0 -13
  211. package/dist/types/graphQlBuilder/QueryCompiler.d.ts.map +0 -1
  212. package/dist/types/graphQlBuilder/RootObjectBuilder.d.ts +0 -17
  213. package/dist/types/graphQlBuilder/RootObjectBuilder.d.ts.map +0 -1
  214. package/src/crudQueryBuilder/CrudQueryBuilder.ts +0 -168
  215. package/src/crudQueryBuilder/CrudQueryBuilderError.ts +0 -1
  216. package/src/crudQueryBuilder/ErrorsRelationBuilder.ts +0 -16
  217. package/src/crudQueryBuilder/ReadBuilder.ts +0 -106
  218. package/src/crudQueryBuilder/ValidationRelationBuilder.ts +0 -17
  219. package/src/crudQueryBuilder/WriteBuilder.ts +0 -79
  220. package/src/crudQueryBuilder/WriteDataBuilder.ts +0 -153
  221. package/src/crudQueryBuilder/WriteManyRelationBuilder.ts +0 -141
  222. package/src/crudQueryBuilder/WriteOneRelationBuilder.ts +0 -101
  223. package/src/graphQlBuilder/GraphQlBuilderError.ts +0 -1
  224. package/src/graphQlBuilder/ObjectBuilder.ts +0 -87
  225. package/src/graphQlBuilder/QueryCompiler.ts +0 -115
  226. package/src/graphQlBuilder/RootObjectBuilder.ts +0 -36
@@ -1,141 +0,0 @@
1
- import type { Input } from '@contember/schema'
2
- import type { GraphQlLiteral } from '../graphQlBuilder'
3
- import type { WriteOperation, WriteRelationOps } from './types'
4
- import { WriteDataBuilder } from './WriteDataBuilder'
5
-
6
- class WriteManyRelationBuilder<
7
- Op extends WriteOperation.ContentfulOperation,
8
- Allowed extends WriteRelationOps[Op['op']],
9
- > {
10
- private constructor(public readonly data: WriteManyRelationBuilder.DataFormat[Op['op']] = []) {}
11
-
12
- public static instantiate<
13
- Op extends WriteOperation.ContentfulOperation,
14
- Allowed extends WriteRelationOps[Op['op']] = WriteRelationOps[Op['op']],
15
- >(data: WriteManyRelationBuilder.DataFormat[Op['op']] = []): WriteManyRelationBuilder.Builder<Op, Allowed> {
16
- return new WriteManyRelationBuilder<Op, Allowed>(data)
17
- }
18
-
19
- public static instantiateFromFactory<
20
- Op extends WriteOperation.ContentfulOperation,
21
- Allowed extends WriteRelationOps[Op['op']],
22
- >(builder: WriteManyRelationBuilder.BuilderFactory<Op, Allowed>): WriteManyRelationBuilder.Builder<Op, never> {
23
- if (typeof builder === 'function') {
24
- return builder(WriteManyRelationBuilder.instantiate())
25
- }
26
- if ('data' in builder) {
27
- return WriteManyRelationBuilder.instantiate(builder.data)
28
- }
29
- return WriteManyRelationBuilder.instantiate(builder)
30
- }
31
-
32
- public create(
33
- data: WriteDataBuilder.DataLike<WriteOperation.Create>,
34
- alias?: string,
35
- ): WriteManyRelationBuilder.Builder<Op> {
36
- const resolvedData = WriteDataBuilder.resolveData(data)
37
- return (
38
- resolvedData === undefined
39
- ? this
40
- : WriteManyRelationBuilder.instantiate<Op>([
41
- ...this.data,
42
- this.withAlias({ create: resolvedData }, alias),
43
- ] as WriteManyRelationBuilder.DataFormat[WriteOperation.Create['op']])
44
- ) as WriteManyRelationBuilder.Builder<Op>
45
- }
46
-
47
- public connect(where: Input.UniqueWhere<GraphQlLiteral>, alias?: string) {
48
- return WriteManyRelationBuilder.instantiate<Op>([
49
- ...this.data,
50
- this.withAlias({ connect: where }, alias),
51
- ] as WriteManyRelationBuilder.DataFormat[Op['op']])
52
- }
53
-
54
- public delete(where: Input.UniqueWhere<GraphQlLiteral>, alias?: string) {
55
- return WriteManyRelationBuilder.instantiate<WriteOperation.Update>([
56
- ...this.data,
57
- this.withAlias({ delete: where }, alias),
58
- ])
59
- }
60
-
61
- public disconnect(where: Input.UniqueWhere<GraphQlLiteral>, alias?: string) {
62
- return WriteManyRelationBuilder.instantiate<WriteOperation.Update>([
63
- ...this.data,
64
- this.withAlias({ disconnect: where }, alias),
65
- ])
66
- }
67
-
68
- public update(
69
- where: Input.UniqueWhere<GraphQlLiteral>,
70
- data: WriteDataBuilder.DataLike<WriteOperation.Update>,
71
- alias?: string,
72
- ): WriteManyRelationBuilder.Builder<WriteOperation.Update> {
73
- const resolvedData = WriteDataBuilder.resolveData(data)
74
- return (
75
- resolvedData === undefined
76
- ? this
77
- : WriteManyRelationBuilder.instantiate<WriteOperation.Update>([
78
- ...this.data,
79
- this.withAlias({ update: { by: where, data: resolvedData } }, alias),
80
- ])
81
- ) as WriteManyRelationBuilder.Builder<WriteOperation.Update>
82
- }
83
-
84
- public upsert(
85
- where: Input.UniqueWhere<GraphQlLiteral>,
86
- update: WriteDataBuilder.DataLike<WriteOperation.Update>,
87
- create: WriteDataBuilder.DataLike<WriteOperation.Create>,
88
- alias?: string,
89
- ): WriteManyRelationBuilder.Builder<WriteOperation.Update> {
90
- const resolvedUpdate = WriteDataBuilder.resolveData(update)
91
- const resolvedCreate = WriteDataBuilder.resolveData(create)
92
- return (
93
- resolvedUpdate === undefined && resolvedCreate === undefined
94
- ? this
95
- : WriteManyRelationBuilder.instantiate<WriteOperation.Update>([
96
- ...this.data,
97
- this.withAlias(
98
- {
99
- upsert: {
100
- by: where,
101
- update: resolvedUpdate || {},
102
- create: resolvedCreate || {},
103
- },
104
- },
105
- alias,
106
- ),
107
- ])
108
- ) as WriteManyRelationBuilder.Builder<WriteOperation.Update>
109
- }
110
-
111
- private withAlias<
112
- D extends Input.CreateOneRelationInput<GraphQlLiteral> | Input.UpdateManyRelationInputItem<GraphQlLiteral>,
113
- >(data: D, alias?: string): D {
114
- if (alias !== undefined) {
115
- data.alias = alias
116
- }
117
- return data
118
- }
119
- }
120
-
121
- namespace WriteManyRelationBuilder {
122
- export interface DataFormat {
123
- create: Input.CreateManyRelationInput<GraphQlLiteral>
124
- update: Input.UpdateManyRelationInput<GraphQlLiteral>
125
- }
126
-
127
- export type Builder<
128
- Op extends WriteOperation.ContentfulOperation,
129
- Allowed extends WriteRelationOps[Op['op']] = WriteRelationOps[Op['op']],
130
- > = Omit<
131
- WriteManyRelationBuilder<Op, Allowed>,
132
- Exclude<WriteRelationOps[WriteOperation.ContentfulOperation['op']], Allowed>
133
- >
134
-
135
- export type BuilderFactory<
136
- Op extends WriteOperation.ContentfulOperation,
137
- Allowed extends WriteRelationOps[Op['op']] = WriteRelationOps[Op['op']],
138
- > = DataFormat[Op['op']] | Builder<Op, never> | ((builder: Builder<Op, Allowed>) => Builder<Op, never>)
139
- }
140
-
141
- export { WriteManyRelationBuilder }
@@ -1,101 +0,0 @@
1
- import type { Input } from '@contember/schema'
2
- import type { GraphQlLiteral } from '../graphQlBuilder'
3
- import type { WriteOperation, WriteRelationOps } from './types'
4
- import { WriteDataBuilder } from './WriteDataBuilder'
5
-
6
- class WriteOneRelationBuilder<
7
- Op extends WriteOperation.ContentfulOperation,
8
- Allowed extends WriteRelationOps[Op['op']] = WriteRelationOps[Op['op']],
9
- D extends WriteOneRelationBuilder.DataFormat[Op['op']] | undefined = WriteOneRelationBuilder.DataFormat[Op['op']],
10
- > {
11
- protected constructor(public readonly data: D = undefined as D) {}
12
-
13
- public static instantiate<
14
- Op extends WriteOperation.ContentfulOperation,
15
- Allowed extends WriteRelationOps[Op['op']] = WriteRelationOps[Op['op']],
16
- D extends WriteOneRelationBuilder.DataFormat[Op['op']] | undefined = WriteOneRelationBuilder.DataFormat[Op['op']],
17
- >(data: D = undefined as D): WriteOneRelationBuilder.Builder<Op, Allowed, D> {
18
- return new WriteOneRelationBuilder<Op, Allowed, D>(data)
19
- }
20
-
21
- public static instantiateFromFactory<
22
- Op extends WriteOperation.ContentfulOperation,
23
- Allowed extends WriteRelationOps[Op['op']] = WriteRelationOps[Op['op']],
24
- D extends WriteOneRelationBuilder.DataFormat[Op['op']] | undefined = WriteOneRelationBuilder.DataFormat[Op['op']],
25
- >(builder: WriteOneRelationBuilder.BuilderFactory<Op, Allowed, D>): WriteOneRelationBuilder.Builder<Op, never, D> {
26
- if (typeof builder === 'function') {
27
- return builder(WriteOneRelationBuilder.instantiate())
28
- }
29
- if (builder && 'data' in builder!) {
30
- return WriteOneRelationBuilder.instantiate(builder.data)
31
- }
32
- return WriteOneRelationBuilder.instantiate(builder)
33
- }
34
-
35
- public create(data: WriteDataBuilder.DataLike<WriteOperation.Create>) {
36
- const resolvedData = WriteDataBuilder.resolveData(data)
37
- return resolvedData === undefined
38
- ? this
39
- : WriteOneRelationBuilder.instantiate<Op, never>({
40
- create: resolvedData,
41
- })
42
- }
43
-
44
- public connect(where: Input.UniqueWhere<GraphQlLiteral>) {
45
- return WriteOneRelationBuilder.instantiate<Op, never>({ connect: where })
46
- }
47
-
48
- public delete() {
49
- return WriteOneRelationBuilder.instantiate<WriteOperation.Update, never>({ delete: true })
50
- }
51
-
52
- public disconnect() {
53
- return WriteOneRelationBuilder.instantiate<WriteOperation.Update, never>({ disconnect: true })
54
- }
55
-
56
- public update(data: WriteDataBuilder.DataLike<WriteOperation.Update>) {
57
- const resolvedData = WriteDataBuilder.resolveData(data)
58
- return resolvedData === undefined ? this : new WriteOneRelationBuilder({ update: resolvedData })
59
- }
60
-
61
- public upsert(
62
- update: WriteDataBuilder.DataLike<WriteOperation.Update>,
63
- create: WriteDataBuilder.DataLike<WriteOperation.Create>,
64
- ) {
65
- const resolvedCreate = WriteDataBuilder.resolveData(create)
66
- const resolvedUpdate = WriteDataBuilder.resolveData(update)
67
-
68
- return resolvedUpdate === undefined && resolvedCreate === undefined
69
- ? this
70
- : WriteOneRelationBuilder.instantiate<WriteOperation.Update, never>({
71
- upsert: {
72
- update: resolvedUpdate || {},
73
- create: resolvedCreate || {},
74
- },
75
- })
76
- }
77
- }
78
-
79
- namespace WriteOneRelationBuilder {
80
- export interface DataFormat {
81
- create: Input.CreateOneRelationInput<GraphQlLiteral>
82
- update: Input.UpdateOneRelationInput<GraphQlLiteral>
83
- }
84
-
85
- export type Builder<
86
- Op extends WriteOperation.ContentfulOperation,
87
- Allowed extends WriteRelationOps[Op['op']] = WriteRelationOps[Op['op']],
88
- D extends WriteOneRelationBuilder.DataFormat[Op['op']] | undefined = WriteOneRelationBuilder.DataFormat[Op['op']],
89
- > = Omit<
90
- WriteOneRelationBuilder<Op, Allowed, D>,
91
- Exclude<WriteRelationOps[WriteOperation.ContentfulOperation['op']], Allowed>
92
- >
93
-
94
- export type BuilderFactory<
95
- Op extends WriteOperation.ContentfulOperation,
96
- Allowed extends WriteRelationOps[Op['op']] = WriteRelationOps[Op['op']],
97
- D extends WriteOneRelationBuilder.DataFormat[Op['op']] | undefined = WriteOneRelationBuilder.DataFormat[Op['op']],
98
- > = D | Builder<Op, never, D> | ((builder: Builder<Op, Allowed, D>) => Builder<Op, never, D>)
99
- }
100
-
101
- export { WriteOneRelationBuilder }
@@ -1 +0,0 @@
1
- export class GraphQlBuilderError extends Error {}
@@ -1,87 +0,0 @@
1
- export class ObjectBuilder {
2
- constructor(
3
- public readonly fields: string[] = [],
4
- public readonly objects: { [name: string]: ObjectBuilder } = {},
5
- public readonly args: { [name: string]: any } = {},
6
- public readonly fragmentApplications: string[] = [],
7
- public readonly inlineFragments: { [typeName: string]: ObjectBuilder } = {},
8
- public readonly objectName?: string,
9
- ) {}
10
-
11
- public argument(name: string, value: any): ObjectBuilder {
12
- return new ObjectBuilder(
13
- this.fields,
14
- this.objects,
15
- { ...this.args, [name]: value },
16
- this.fragmentApplications,
17
- this.inlineFragments,
18
- this.objectName,
19
- )
20
- }
21
-
22
- public name(name: string): ObjectBuilder {
23
- return new ObjectBuilder(
24
- this.fields,
25
- this.objects,
26
- this.args,
27
- this.fragmentApplications,
28
- this.inlineFragments,
29
- name,
30
- )
31
- }
32
-
33
- public field(name: string): ObjectBuilder {
34
- return new ObjectBuilder(
35
- [...this.fields, name],
36
- this.objects,
37
- this.args,
38
- this.fragmentApplications,
39
- this.inlineFragments,
40
- this.objectName,
41
- )
42
- }
43
-
44
- public object(name: string, builder: ((builder: ObjectBuilder) => ObjectBuilder) | ObjectBuilder): ObjectBuilder {
45
- if (!(builder instanceof ObjectBuilder)) {
46
- builder = builder(new ObjectBuilder())
47
- }
48
-
49
- return new ObjectBuilder(
50
- this.fields,
51
- { ...this.objects, [name]: builder },
52
- this.args,
53
- this.fragmentApplications,
54
- this.inlineFragments,
55
- this.objectName,
56
- )
57
- }
58
-
59
- public inlineFragment(
60
- typeName: string,
61
- builder: ((builder: ObjectBuilder) => ObjectBuilder) | ObjectBuilder,
62
- ): ObjectBuilder {
63
- if (!(builder instanceof ObjectBuilder)) {
64
- builder = builder(new ObjectBuilder())
65
- }
66
-
67
- return new ObjectBuilder(
68
- this.fields,
69
- this.objects,
70
- this.args,
71
- this.fragmentApplications,
72
- { ...this.inlineFragments, [typeName]: builder },
73
- this.objectName,
74
- )
75
- }
76
-
77
- public applyFragment(fragmentName: string): ObjectBuilder {
78
- return new ObjectBuilder(
79
- this.fields,
80
- this.objects,
81
- this.args,
82
- [...this.fragmentApplications, fragmentName],
83
- this.inlineFragments,
84
- this.objectName,
85
- )
86
- }
87
- }
@@ -1,115 +0,0 @@
1
- import { GraphQlLiteral } from './GraphQlLiteral'
2
- import type { ObjectBuilder } from './ObjectBuilder'
3
- import type { RootObjectBuilder } from './RootObjectBuilder'
4
-
5
- export class QueryCompiler {
6
- constructor(private operation: 'query' | 'mutation', private builder: RootObjectBuilder) {}
7
-
8
- public create(): string {
9
- const rootObjects = this.formatRootObjects(this.builder.objects)
10
- const fragmentDefinitions = this.formatFragmentDefinitions(this.builder.fragmentDefinitions)
11
-
12
- return `${this.operation} {\n${rootObjects}\n}${fragmentDefinitions ? `\n${fragmentDefinitions}` : ''}`
13
- }
14
-
15
- private formatFragmentDefinitions(fragments: RootObjectBuilder['fragmentDefinitions']): string {
16
- const lines: string[] = []
17
-
18
- for (const name in fragments) {
19
- const object = fragments[name]
20
-
21
- lines.push(`fragment ${name} on ${object.objectName!} {`)
22
- lines.push(...this.formatObjectBody(object))
23
- lines.push('}')
24
- }
25
-
26
- return lines.join('\n')
27
- }
28
-
29
- private formatRootObjects(objects: RootObjectBuilder['objects']): string {
30
- const lines: string[] = []
31
-
32
- for (const alias in objects) {
33
- lines.push(...this.formatObject(alias, objects[alias]).map(val => `\t${val}`))
34
- }
35
-
36
- return lines.join('\n')
37
- }
38
-
39
- private formatObject(alias: string, builder: ObjectBuilder): string[] {
40
- const result = []
41
-
42
- result.push(`${alias}${builder.objectName ? `: ${builder.objectName}` : ''}${this.formatArgs(builder.args, 0)} {`)
43
-
44
- result.push(...this.formatObjectBody(builder))
45
-
46
- result.push('}')
47
-
48
- return result
49
- }
50
-
51
- private formatObjectBody(builder: ObjectBuilder): string[] {
52
- const result = ['__typename']
53
- for (const fieldName of builder.fields) {
54
- result.push(fieldName)
55
- }
56
- for (const fragmentName of builder.fragmentApplications) {
57
- result.push(`... ${fragmentName}`)
58
- }
59
- for (const typeName in builder.inlineFragments) {
60
- const fragment = builder.inlineFragments[typeName]
61
- result.push(`... on ${typeName} {`, ...this.formatObjectBody(fragment), '}')
62
- }
63
- for (const alias in builder.objects) {
64
- result.push(...this.formatObject(alias, builder.objects[alias]))
65
- }
66
- return result.map(val => `\t${val}`)
67
- }
68
-
69
- private formatArgs(args: any, level: number): string {
70
- if (args === null) {
71
- return 'null'
72
- }
73
-
74
- if (typeof args === 'number') {
75
- return args.toString()
76
- }
77
-
78
- if (typeof args === 'boolean') {
79
- return args ? 'true' : 'false'
80
- }
81
- if (typeof args === 'string') {
82
- return JSON.stringify(args)
83
- }
84
-
85
- if (Array.isArray(args)) {
86
- const vals = args.map(val => this.formatArgs(val, level + 1))
87
- return `[${vals.join(', ')}]`
88
- }
89
- if (args instanceof GraphQlLiteral) {
90
- return args.value
91
- }
92
-
93
- if (typeof args === 'object') {
94
- let result = ''
95
- for (let key in args) {
96
- const argValue = args[key]
97
- if (argValue === undefined) {
98
- continue
99
- }
100
- result += `${key}: ${this.formatArgs(argValue, level + 1)}, `
101
- }
102
- if (result.length > 0) {
103
- result = result.substring(0, result.length - 2)
104
- }
105
- if (level > 0) {
106
- return `{${result}}`
107
- } else if (result.length > 0) {
108
- return `(${result})`
109
- }
110
- return ''
111
- }
112
-
113
- throw new Error(typeof args)
114
- }
115
- }
@@ -1,36 +0,0 @@
1
- import { isEmptyObject } from '../utils'
2
- import { GraphQlBuilderError } from './GraphQlBuilderError'
3
- import { ObjectBuilder } from './ObjectBuilder'
4
-
5
- export class RootObjectBuilder {
6
- constructor(
7
- public readonly objects: { [name: string]: ObjectBuilder } = {},
8
- public readonly fragmentDefinitions: { [name: string]: ObjectBuilder } = {},
9
- ) {}
10
-
11
- public fragment(
12
- name: string,
13
- builder: ((builder: ObjectBuilder) => ObjectBuilder) | ObjectBuilder,
14
- ): RootObjectBuilder {
15
- if (!(builder instanceof ObjectBuilder)) {
16
- builder = builder(new ObjectBuilder())
17
- }
18
-
19
- if (!isEmptyObject(builder.args)) {
20
- throw new GraphQlBuilderError(`Cannot supply args to Graph QL fragments!`)
21
- }
22
- if (!builder.objectName) {
23
- throw new GraphQlBuilderError(`Object names are mandatory for Graph QL fragments!`)
24
- }
25
-
26
- return new RootObjectBuilder(this.objects, { ...this.fragmentDefinitions, [name]: builder })
27
- }
28
-
29
- public object(name: string, builder: ((builder: ObjectBuilder) => ObjectBuilder) | ObjectBuilder): RootObjectBuilder {
30
- if (!(builder instanceof ObjectBuilder)) {
31
- builder = builder(new ObjectBuilder())
32
- }
33
-
34
- return new RootObjectBuilder({ ...this.objects, [name]: builder }, this.fragmentDefinitions)
35
- }
36
- }