@cravery/firebase 0.0.36 → 0.0.37

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 (314) hide show
  1. package/dist/converters/equipment/content.d.ts +4 -0
  2. package/dist/converters/equipment/content.d.ts.map +1 -0
  3. package/dist/converters/equipment/content.js +13 -0
  4. package/dist/converters/equipment/content.js.map +1 -0
  5. package/dist/converters/equipment/index.d.ts +4 -0
  6. package/dist/converters/equipment/index.d.ts.map +1 -0
  7. package/dist/{iam → converters/equipment}/index.js +3 -2
  8. package/dist/converters/equipment/index.js.map +1 -0
  9. package/dist/converters/equipment/meta.d.ts +4 -0
  10. package/dist/converters/equipment/meta.d.ts.map +1 -0
  11. package/dist/converters/equipment/meta.js +26 -0
  12. package/dist/converters/equipment/meta.js.map +1 -0
  13. package/dist/converters/equipment/user.d.ts +4 -0
  14. package/dist/converters/equipment/user.d.ts.map +1 -0
  15. package/dist/converters/equipment/user.js +26 -0
  16. package/dist/converters/equipment/user.js.map +1 -0
  17. package/dist/converters/index.d.ts +8 -0
  18. package/dist/converters/index.d.ts.map +1 -0
  19. package/dist/{repository → converters}/index.js +6 -6
  20. package/dist/converters/index.js.map +1 -0
  21. package/dist/converters/ingredients/content.d.ts +4 -0
  22. package/dist/converters/ingredients/content.d.ts.map +1 -0
  23. package/dist/converters/ingredients/content.js +13 -0
  24. package/dist/converters/ingredients/content.js.map +1 -0
  25. package/dist/converters/ingredients/index.d.ts +4 -0
  26. package/dist/converters/ingredients/index.d.ts.map +1 -0
  27. package/dist/{equipment → converters/ingredients}/index.js +3 -1
  28. package/dist/converters/ingredients/index.js.map +1 -0
  29. package/dist/converters/ingredients/meta.d.ts +4 -0
  30. package/dist/converters/ingredients/meta.d.ts.map +1 -0
  31. package/dist/converters/ingredients/meta.js +26 -0
  32. package/dist/converters/ingredients/meta.js.map +1 -0
  33. package/dist/converters/ingredients/user.d.ts +4 -0
  34. package/dist/converters/ingredients/user.d.ts.map +1 -0
  35. package/dist/converters/ingredients/user.js +26 -0
  36. package/dist/converters/ingredients/user.js.map +1 -0
  37. package/dist/converters/recipes/comment.d.ts.map +1 -0
  38. package/dist/{converter → converters/recipes}/comment.js +4 -14
  39. package/dist/converters/recipes/comment.js.map +1 -0
  40. package/dist/converters/recipes/content.d.ts +4 -0
  41. package/dist/converters/recipes/content.d.ts.map +1 -0
  42. package/dist/converters/recipes/content.js +13 -0
  43. package/dist/converters/recipes/content.js.map +1 -0
  44. package/dist/converters/recipes/index.d.ts +4 -0
  45. package/dist/converters/recipes/index.d.ts.map +1 -0
  46. package/dist/converters/recipes/index.js +20 -0
  47. package/dist/converters/recipes/index.js.map +1 -0
  48. package/dist/converters/recipes/meta.d.ts +4 -0
  49. package/dist/converters/recipes/meta.d.ts.map +1 -0
  50. package/dist/converters/recipes/meta.js +26 -0
  51. package/dist/converters/recipes/meta.js.map +1 -0
  52. package/dist/converters/reports/index.d.ts +3 -0
  53. package/dist/converters/reports/index.d.ts.map +1 -0
  54. package/dist/{ingredient → converters/reports}/index.js +2 -1
  55. package/dist/converters/reports/index.js.map +1 -0
  56. package/dist/converters/reports/report.d.ts.map +1 -0
  57. package/dist/converters/reports/report.js +26 -0
  58. package/dist/converters/reports/report.js.map +1 -0
  59. package/dist/converters/reports/update.d.ts +4 -0
  60. package/dist/converters/reports/update.d.ts.map +1 -0
  61. package/dist/converters/reports/update.js +26 -0
  62. package/dist/converters/reports/update.js.map +1 -0
  63. package/dist/converters/settings/index.d.ts +2 -0
  64. package/dist/converters/settings/index.d.ts.map +1 -0
  65. package/dist/{transform → converters/settings}/index.js +1 -1
  66. package/dist/converters/settings/index.js.map +1 -0
  67. package/dist/converters/settings/settings.d.ts.map +1 -0
  68. package/dist/converters/settings/settings.js +26 -0
  69. package/dist/converters/settings/settings.js.map +1 -0
  70. package/dist/converters/subscriptions/index.d.ts +2 -0
  71. package/dist/converters/subscriptions/index.d.ts.map +1 -0
  72. package/dist/{asset → converters/subscriptions}/index.js +1 -1
  73. package/dist/converters/subscriptions/index.js.map +1 -0
  74. package/dist/converters/subscriptions/subscription.d.ts +4 -0
  75. package/dist/converters/subscriptions/subscription.d.ts.map +1 -0
  76. package/dist/converters/subscriptions/subscription.js +34 -0
  77. package/dist/converters/subscriptions/subscription.js.map +1 -0
  78. package/dist/converters/users/bookmark.d.ts +4 -0
  79. package/dist/converters/users/bookmark.d.ts.map +1 -0
  80. package/dist/converters/users/bookmark.js +26 -0
  81. package/dist/converters/users/bookmark.js.map +1 -0
  82. package/dist/converters/users/index.d.ts +4 -0
  83. package/dist/converters/users/index.d.ts.map +1 -0
  84. package/dist/converters/users/index.js +20 -0
  85. package/dist/converters/users/index.js.map +1 -0
  86. package/dist/converters/users/profile.d.ts.map +1 -0
  87. package/dist/converters/users/profile.js +26 -0
  88. package/dist/converters/users/profile.js.map +1 -0
  89. package/dist/converters/users/user.d.ts.map +1 -0
  90. package/dist/converters/users/user.js +26 -0
  91. package/dist/converters/users/user.js.map +1 -0
  92. package/dist/index.d.ts +2 -4
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +2 -4
  95. package/dist/index.js.map +1 -1
  96. package/dist/lib/index.d.ts +2 -1
  97. package/dist/lib/index.d.ts.map +1 -1
  98. package/dist/lib/index.js +2 -1
  99. package/dist/lib/index.js.map +1 -1
  100. package/dist/lib/strip-undefined.d.ts.map +1 -0
  101. package/dist/lib/strip-undefined.js.map +1 -0
  102. package/dist/lib/timestamp.d.ts.map +1 -0
  103. package/dist/{utils → lib}/timestamp.js +0 -4
  104. package/dist/lib/timestamp.js.map +1 -0
  105. package/package.json +33 -59
  106. package/src/converters/equipment/content.ts +17 -0
  107. package/src/converters/equipment/index.ts +3 -0
  108. package/src/converters/equipment/meta.ts +36 -0
  109. package/src/converters/equipment/user.ts +36 -0
  110. package/src/converters/index.ts +7 -0
  111. package/src/converters/ingredients/content.ts +17 -0
  112. package/src/converters/ingredients/index.ts +3 -0
  113. package/src/converters/ingredients/meta.ts +36 -0
  114. package/src/converters/ingredients/user.ts +38 -0
  115. package/src/{converter → converters/recipes}/comment.ts +36 -41
  116. package/src/converters/recipes/content.ts +17 -0
  117. package/src/converters/recipes/index.ts +3 -0
  118. package/src/converters/recipes/meta.ts +36 -0
  119. package/src/converters/reports/index.ts +2 -0
  120. package/src/converters/reports/report.ts +36 -0
  121. package/src/converters/reports/update.ts +36 -0
  122. package/src/converters/settings/index.ts +1 -0
  123. package/src/{converter → converters/settings}/settings.ts +36 -49
  124. package/src/converters/subscriptions/index.ts +1 -0
  125. package/src/converters/subscriptions/subscription.ts +85 -0
  126. package/src/converters/users/bookmark.ts +36 -0
  127. package/src/converters/users/index.ts +3 -0
  128. package/src/{converter → converters/users}/profile.ts +36 -44
  129. package/src/{converter → converters/users}/user.ts +36 -43
  130. package/src/index.ts +2 -4
  131. package/src/{utils → lib}/index.ts +2 -3
  132. package/src/{utils → lib}/strip-undefined.ts +32 -32
  133. package/src/{utils → lib}/timestamp.ts +44 -48
  134. package/dist/asset/index.d.ts +0 -2
  135. package/dist/asset/index.d.ts.map +0 -1
  136. package/dist/asset/index.js.map +0 -1
  137. package/dist/asset/repository.d.ts +0 -41
  138. package/dist/asset/repository.d.ts.map +0 -1
  139. package/dist/asset/repository.js +0 -96
  140. package/dist/asset/repository.js.map +0 -1
  141. package/dist/converter/comment.d.ts.map +0 -1
  142. package/dist/converter/comment.js.map +0 -1
  143. package/dist/converter/equipment.d.ts +0 -5
  144. package/dist/converter/equipment.d.ts.map +0 -1
  145. package/dist/converter/equipment.js +0 -52
  146. package/dist/converter/equipment.js.map +0 -1
  147. package/dist/converter/index.d.ts +0 -10
  148. package/dist/converter/index.d.ts.map +0 -1
  149. package/dist/converter/index.js +0 -26
  150. package/dist/converter/index.js.map +0 -1
  151. package/dist/converter/ingredient.d.ts +0 -5
  152. package/dist/converter/ingredient.d.ts.map +0 -1
  153. package/dist/converter/ingredient.js +0 -54
  154. package/dist/converter/ingredient.js.map +0 -1
  155. package/dist/converter/profile.d.ts.map +0 -1
  156. package/dist/converter/profile.js +0 -40
  157. package/dist/converter/profile.js.map +0 -1
  158. package/dist/converter/recipe.d.ts +0 -5
  159. package/dist/converter/recipe.d.ts.map +0 -1
  160. package/dist/converter/recipe.js +0 -77
  161. package/dist/converter/recipe.js.map +0 -1
  162. package/dist/converter/report.d.ts.map +0 -1
  163. package/dist/converter/report.js +0 -46
  164. package/dist/converter/report.js.map +0 -1
  165. package/dist/converter/settings.d.ts.map +0 -1
  166. package/dist/converter/settings.js +0 -44
  167. package/dist/converter/settings.js.map +0 -1
  168. package/dist/converter/submission.d.ts +0 -4
  169. package/dist/converter/submission.d.ts.map +0 -1
  170. package/dist/converter/submission.js +0 -41
  171. package/dist/converter/submission.js.map +0 -1
  172. package/dist/converter/user.d.ts.map +0 -1
  173. package/dist/converter/user.js +0 -39
  174. package/dist/converter/user.js.map +0 -1
  175. package/dist/equipment/equipment.repository.d.ts +0 -6
  176. package/dist/equipment/equipment.repository.d.ts.map +0 -1
  177. package/dist/equipment/equipment.repository.js +0 -11
  178. package/dist/equipment/equipment.repository.js.map +0 -1
  179. package/dist/equipment/index.d.ts +0 -2
  180. package/dist/equipment/index.d.ts.map +0 -1
  181. package/dist/equipment/index.js.map +0 -1
  182. package/dist/iam/converters.d.ts +0 -4
  183. package/dist/iam/converters.d.ts.map +0 -1
  184. package/dist/iam/converters.js +0 -39
  185. package/dist/iam/converters.js.map +0 -1
  186. package/dist/iam/index.d.ts +0 -3
  187. package/dist/iam/index.d.ts.map +0 -1
  188. package/dist/iam/index.js.map +0 -1
  189. package/dist/iam/profile.converter.d.ts +0 -4
  190. package/dist/iam/profile.converter.d.ts.map +0 -1
  191. package/dist/iam/profile.converter.js +0 -40
  192. package/dist/iam/profile.converter.js.map +0 -1
  193. package/dist/iam/user.converter.d.ts +0 -4
  194. package/dist/iam/user.converter.d.ts.map +0 -1
  195. package/dist/iam/user.converter.js +0 -39
  196. package/dist/iam/user.converter.js.map +0 -1
  197. package/dist/ingredient/index.d.ts +0 -2
  198. package/dist/ingredient/index.d.ts.map +0 -1
  199. package/dist/ingredient/index.js.map +0 -1
  200. package/dist/ingredient/ingredient.repository.d.ts +0 -6
  201. package/dist/ingredient/ingredient.repository.d.ts.map +0 -1
  202. package/dist/ingredient/ingredient.repository.js +0 -11
  203. package/dist/ingredient/ingredient.repository.js.map +0 -1
  204. package/dist/lib/asset.repository.d.ts +0 -13
  205. package/dist/lib/asset.repository.d.ts.map +0 -1
  206. package/dist/lib/asset.repository.js +0 -65
  207. package/dist/lib/asset.repository.js.map +0 -1
  208. package/dist/recipe/converters.d.ts +0 -5
  209. package/dist/recipe/converters.d.ts.map +0 -1
  210. package/dist/recipe/converters.js +0 -90
  211. package/dist/recipe/converters.js.map +0 -1
  212. package/dist/recipe/index.d.ts +0 -6
  213. package/dist/recipe/index.d.ts.map +0 -1
  214. package/dist/recipe/index.js +0 -22
  215. package/dist/recipe/index.js.map +0 -1
  216. package/dist/recipe/recipe.converter.d.ts +0 -5
  217. package/dist/recipe/recipe.converter.d.ts.map +0 -1
  218. package/dist/recipe/recipe.converter.js +0 -86
  219. package/dist/recipe/recipe.converter.js.map +0 -1
  220. package/dist/recipe/recipe.repository.d.ts +0 -22
  221. package/dist/recipe/recipe.repository.d.ts.map +0 -1
  222. package/dist/recipe/recipe.repository.js +0 -210
  223. package/dist/recipe/recipe.repository.js.map +0 -1
  224. package/dist/recipe/repository.d.ts +0 -26
  225. package/dist/recipe/repository.d.ts.map +0 -1
  226. package/dist/recipe/repository.js +0 -200
  227. package/dist/recipe/repository.js.map +0 -1
  228. package/dist/recipe/stats_repository.d.ts +0 -18
  229. package/dist/recipe/stats_repository.d.ts.map +0 -1
  230. package/dist/recipe/stats_repository.js +0 -195
  231. package/dist/recipe/stats_repository.js.map +0 -1
  232. package/dist/recipe/user_recipe_repository.d.ts +0 -26
  233. package/dist/recipe/user_recipe_repository.d.ts.map +0 -1
  234. package/dist/recipe/user_recipe_repository.js +0 -180
  235. package/dist/recipe/user_recipe_repository.js.map +0 -1
  236. package/dist/recipe/utils.d.ts +0 -7
  237. package/dist/recipe/utils.d.ts.map +0 -1
  238. package/dist/recipe/utils.js +0 -118
  239. package/dist/recipe/utils.js.map +0 -1
  240. package/dist/repository/base.d.ts +0 -36
  241. package/dist/repository/base.d.ts.map +0 -1
  242. package/dist/repository/base.js +0 -215
  243. package/dist/repository/base.js.map +0 -1
  244. package/dist/repository/equipment.d.ts +0 -14
  245. package/dist/repository/equipment.d.ts.map +0 -1
  246. package/dist/repository/equipment.js +0 -40
  247. package/dist/repository/equipment.js.map +0 -1
  248. package/dist/repository/index.d.ts +0 -8
  249. package/dist/repository/index.d.ts.map +0 -1
  250. package/dist/repository/index.js.map +0 -1
  251. package/dist/repository/ingredient.d.ts +0 -15
  252. package/dist/repository/ingredient.d.ts.map +0 -1
  253. package/dist/repository/ingredient.js +0 -46
  254. package/dist/repository/ingredient.js.map +0 -1
  255. package/dist/repository/recipe.d.ts +0 -17
  256. package/dist/repository/recipe.d.ts.map +0 -1
  257. package/dist/repository/recipe.js +0 -92
  258. package/dist/repository/recipe.js.map +0 -1
  259. package/dist/repository/recipe_stats.d.ts +0 -19
  260. package/dist/repository/recipe_stats.d.ts.map +0 -1
  261. package/dist/repository/recipe_stats.js +0 -121
  262. package/dist/repository/recipe_stats.js.map +0 -1
  263. package/dist/repository/report.d.ts +0 -15
  264. package/dist/repository/report.d.ts.map +0 -1
  265. package/dist/repository/report.js +0 -111
  266. package/dist/repository/report.js.map +0 -1
  267. package/dist/repository/user_recipe.d.ts +0 -39
  268. package/dist/repository/user_recipe.d.ts.map +0 -1
  269. package/dist/repository/user_recipe.js +0 -170
  270. package/dist/repository/user_recipe.js.map +0 -1
  271. package/dist/transform/index.d.ts +0 -2
  272. package/dist/transform/index.d.ts.map +0 -1
  273. package/dist/transform/index.js.map +0 -1
  274. package/dist/transform/recipe.d.ts +0 -7
  275. package/dist/transform/recipe.d.ts.map +0 -1
  276. package/dist/transform/recipe.js +0 -124
  277. package/dist/transform/recipe.js.map +0 -1
  278. package/dist/utils/cursor.d.ts +0 -14
  279. package/dist/utils/cursor.d.ts.map +0 -1
  280. package/dist/utils/cursor.js +0 -37
  281. package/dist/utils/cursor.js.map +0 -1
  282. package/dist/utils/index.d.ts +0 -4
  283. package/dist/utils/index.d.ts.map +0 -1
  284. package/dist/utils/index.js +0 -20
  285. package/dist/utils/index.js.map +0 -1
  286. package/dist/utils/strip-undefined.d.ts.map +0 -1
  287. package/dist/utils/strip-undefined.js.map +0 -1
  288. package/dist/utils/timestamp.d.ts.map +0 -1
  289. package/dist/utils/timestamp.js.map +0 -1
  290. package/src/converter/equipment.ts +0 -65
  291. package/src/converter/index.ts +0 -9
  292. package/src/converter/ingredient.ts +0 -67
  293. package/src/converter/recipe.ts +0 -86
  294. package/src/converter/report.ts +0 -53
  295. package/src/converter/submission.ts +0 -48
  296. package/src/repository/base.ts +0 -356
  297. package/src/repository/equipment.ts +0 -85
  298. package/src/repository/index.ts +0 -7
  299. package/src/repository/ingredient.ts +0 -107
  300. package/src/repository/recipe.ts +0 -149
  301. package/src/repository/recipe_stats.ts +0 -192
  302. package/src/repository/report.ts +0 -163
  303. package/src/repository/user_recipe.ts +0 -249
  304. package/src/transform/index.ts +0 -1
  305. package/src/transform/recipe.ts +0 -151
  306. package/src/utils/cursor.ts +0 -43
  307. /package/dist/{converter → converters/recipes}/comment.d.ts +0 -0
  308. /package/dist/{converter → converters/reports}/report.d.ts +0 -0
  309. /package/dist/{converter → converters/settings}/settings.d.ts +0 -0
  310. /package/dist/{converter → converters/users}/profile.d.ts +0 -0
  311. /package/dist/{converter → converters/users}/user.d.ts +0 -0
  312. /package/dist/{utils → lib}/strip-undefined.d.ts +0 -0
  313. /package/dist/{utils → lib}/strip-undefined.js +0 -0
  314. /package/dist/{utils → lib}/timestamp.d.ts +0 -0
@@ -0,0 +1,38 @@
1
+ import {
2
+ FirestoreDataConverter,
3
+ QueryDocumentSnapshot,
4
+ DocumentData,
5
+ } from "firebase-admin/firestore";
6
+ import type { UserIngredient } from "@cravery/core";
7
+ import {
8
+ toTimestamp,
9
+ toOptionalTimestamp,
10
+ toFirestoreTimestamp,
11
+ toOptionalFirestoreTimestamp,
12
+ stripUndefined,
13
+ } from "../../lib";
14
+
15
+ export const userIngredientConverter: FirestoreDataConverter<UserIngredient> = {
16
+ toFirestore(ingredient: UserIngredient): DocumentData {
17
+ const { id, createdAt, updatedAt, deletedAt, expiresAt, ...rest } = ingredient;
18
+ return stripUndefined({
19
+ ...rest,
20
+ createdAt: toFirestoreTimestamp(createdAt),
21
+ updatedAt: toFirestoreTimestamp(updatedAt),
22
+ deletedAt: toOptionalFirestoreTimestamp(deletedAt),
23
+ expiresAt: toOptionalFirestoreTimestamp(expiresAt),
24
+ });
25
+ },
26
+
27
+ fromFirestore(snapshot: QueryDocumentSnapshot): UserIngredient {
28
+ const { createdAt, updatedAt, deletedAt, expiresAt, ...rest } = snapshot.data();
29
+ return {
30
+ ...rest,
31
+ id: snapshot.id,
32
+ createdAt: toTimestamp(createdAt),
33
+ updatedAt: toTimestamp(updatedAt),
34
+ deletedAt: toOptionalTimestamp(deletedAt),
35
+ expiresAt: toOptionalTimestamp(expiresAt),
36
+ } as UserIngredient;
37
+ },
38
+ };
@@ -1,41 +1,36 @@
1
- import {
2
- FirestoreDataConverter,
3
- QueryDocumentSnapshot,
4
- DocumentData,
5
- } from "firebase-admin/firestore";
6
- import type { RecipeComment } from "@cravery/core";
7
- import {
8
- toTimestamp,
9
- toOptionalTimestamp,
10
- toFirestoreTimestamp,
11
- toOptionalFirestoreTimestamp,
12
- } from "../utils";
13
-
14
- export const commentConverter: FirestoreDataConverter<RecipeComment> = {
15
- toFirestore(comment: RecipeComment): DocumentData {
16
- const { id, createdAt, updatedAt, deletedAt, ...rest } = comment;
17
-
18
- return {
19
- ...rest,
20
- createdAt: toFirestoreTimestamp(createdAt),
21
- updatedAt: toFirestoreTimestamp(updatedAt),
22
- deletedAt: toOptionalFirestoreTimestamp(deletedAt),
23
- };
24
- },
25
-
26
- fromFirestore(snapshot: QueryDocumentSnapshot): RecipeComment {
27
- const data = snapshot.data();
28
-
29
- return {
30
- id: snapshot.id,
31
- content: data.content,
32
- parentId: data.parentId,
33
- recipeId: data.recipeId,
34
- status: data.status,
35
- userId: data.userId,
36
- createdAt: toTimestamp(data.createdAt),
37
- updatedAt: toTimestamp(data.updatedAt),
38
- deletedAt: toOptionalTimestamp(data.deletedAt),
39
- };
40
- },
41
- };
1
+ import {
2
+ FirestoreDataConverter,
3
+ QueryDocumentSnapshot,
4
+ DocumentData,
5
+ } from "firebase-admin/firestore";
6
+ import type { RecipeComment } from "@cravery/core";
7
+ import {
8
+ toTimestamp,
9
+ toOptionalTimestamp,
10
+ toFirestoreTimestamp,
11
+ toOptionalFirestoreTimestamp,
12
+ stripUndefined,
13
+ } from "../../lib";
14
+
15
+ export const commentConverter: FirestoreDataConverter<RecipeComment> = {
16
+ toFirestore(comment: RecipeComment): DocumentData {
17
+ const { id, createdAt, updatedAt, deletedAt, ...rest } = comment;
18
+ return stripUndefined({
19
+ ...rest,
20
+ createdAt: toFirestoreTimestamp(createdAt),
21
+ updatedAt: toFirestoreTimestamp(updatedAt),
22
+ deletedAt: toOptionalFirestoreTimestamp(deletedAt),
23
+ });
24
+ },
25
+
26
+ fromFirestore(snapshot: QueryDocumentSnapshot): RecipeComment {
27
+ const { createdAt, updatedAt, deletedAt, ...rest } = snapshot.data();
28
+ return {
29
+ ...rest,
30
+ id: snapshot.id,
31
+ createdAt: toTimestamp(createdAt),
32
+ updatedAt: toTimestamp(updatedAt),
33
+ deletedAt: toOptionalTimestamp(deletedAt),
34
+ } as RecipeComment;
35
+ },
36
+ };
@@ -0,0 +1,17 @@
1
+ import {
2
+ FirestoreDataConverter,
3
+ QueryDocumentSnapshot,
4
+ DocumentData,
5
+ } from "firebase-admin/firestore";
6
+ import type { RecipeContent } from "@cravery/core";
7
+ import { stripUndefined } from "../../lib";
8
+
9
+ export const recipeContentConverter: FirestoreDataConverter<RecipeContent> = {
10
+ toFirestore(content: RecipeContent): DocumentData {
11
+ return stripUndefined({ ...content });
12
+ },
13
+
14
+ fromFirestore(snapshot: QueryDocumentSnapshot): RecipeContent {
15
+ return snapshot.data() as RecipeContent;
16
+ },
17
+ };
@@ -0,0 +1,3 @@
1
+ export * from "./comment";
2
+ export * from "./content";
3
+ export * from "./meta";
@@ -0,0 +1,36 @@
1
+ import {
2
+ FirestoreDataConverter,
3
+ QueryDocumentSnapshot,
4
+ DocumentData,
5
+ } from "firebase-admin/firestore";
6
+ import type { RecipeMeta } from "@cravery/core";
7
+ import {
8
+ toTimestamp,
9
+ toOptionalTimestamp,
10
+ toFirestoreTimestamp,
11
+ toOptionalFirestoreTimestamp,
12
+ stripUndefined,
13
+ } from "../../lib";
14
+
15
+ export const recipeMetaConverter: FirestoreDataConverter<RecipeMeta> = {
16
+ toFirestore(recipeMeta: RecipeMeta): DocumentData {
17
+ const { id, createdAt, updatedAt, deletedAt, ...rest } = recipeMeta;
18
+ return stripUndefined({
19
+ ...rest,
20
+ createdAt: toFirestoreTimestamp(createdAt),
21
+ updatedAt: toFirestoreTimestamp(updatedAt),
22
+ deletedAt: toOptionalFirestoreTimestamp(deletedAt),
23
+ });
24
+ },
25
+
26
+ fromFirestore(snapshot: QueryDocumentSnapshot): RecipeMeta {
27
+ const { createdAt, updatedAt, deletedAt, ...rest } = snapshot.data();
28
+ return {
29
+ ...rest,
30
+ id: snapshot.id,
31
+ createdAt: toTimestamp(createdAt),
32
+ updatedAt: toTimestamp(updatedAt),
33
+ deletedAt: toOptionalTimestamp(deletedAt),
34
+ } as RecipeMeta;
35
+ },
36
+ };
@@ -0,0 +1,2 @@
1
+ export * from "./report";
2
+ export * from "./update";
@@ -0,0 +1,36 @@
1
+ import {
2
+ FirestoreDataConverter,
3
+ QueryDocumentSnapshot,
4
+ DocumentData,
5
+ } from "firebase-admin/firestore";
6
+ import type { Report } from "@cravery/core";
7
+ import {
8
+ toTimestamp,
9
+ toOptionalTimestamp,
10
+ toFirestoreTimestamp,
11
+ toOptionalFirestoreTimestamp,
12
+ stripUndefined,
13
+ } from "../../lib";
14
+
15
+ export const reportConverter: FirestoreDataConverter<Report> = {
16
+ toFirestore(report: Report): DocumentData {
17
+ const { id, createdAt, updatedAt, deletedAt, ...rest } = report;
18
+ return stripUndefined({
19
+ ...rest,
20
+ createdAt: toFirestoreTimestamp(createdAt),
21
+ updatedAt: toFirestoreTimestamp(updatedAt),
22
+ deletedAt: toOptionalFirestoreTimestamp(deletedAt),
23
+ });
24
+ },
25
+
26
+ fromFirestore(snapshot: QueryDocumentSnapshot): Report {
27
+ const { createdAt, updatedAt, deletedAt, ...rest } = snapshot.data();
28
+ return {
29
+ ...rest,
30
+ id: snapshot.id,
31
+ createdAt: toTimestamp(createdAt),
32
+ updatedAt: toTimestamp(updatedAt),
33
+ deletedAt: toOptionalTimestamp(deletedAt),
34
+ } as Report;
35
+ },
36
+ };
@@ -0,0 +1,36 @@
1
+ import {
2
+ FirestoreDataConverter,
3
+ QueryDocumentSnapshot,
4
+ DocumentData,
5
+ } from "firebase-admin/firestore";
6
+ import type { ReportUpdate } from "@cravery/core";
7
+ import {
8
+ toTimestamp,
9
+ toOptionalTimestamp,
10
+ toFirestoreTimestamp,
11
+ toOptionalFirestoreTimestamp,
12
+ stripUndefined,
13
+ } from "../../lib";
14
+
15
+ export const reportUpdateConverter: FirestoreDataConverter<ReportUpdate> = {
16
+ toFirestore(update: ReportUpdate): DocumentData {
17
+ const { id, createdAt, updatedAt, deletedAt, ...rest } = update;
18
+ return stripUndefined({
19
+ ...rest,
20
+ createdAt: toFirestoreTimestamp(createdAt),
21
+ updatedAt: toFirestoreTimestamp(updatedAt),
22
+ deletedAt: toOptionalFirestoreTimestamp(deletedAt),
23
+ });
24
+ },
25
+
26
+ fromFirestore(snapshot: QueryDocumentSnapshot): ReportUpdate {
27
+ const { createdAt, updatedAt, deletedAt, ...rest } = snapshot.data();
28
+ return {
29
+ ...rest,
30
+ id: snapshot.id,
31
+ createdAt: toTimestamp(createdAt),
32
+ updatedAt: toTimestamp(updatedAt),
33
+ deletedAt: toOptionalTimestamp(deletedAt),
34
+ } as ReportUpdate;
35
+ },
36
+ };
@@ -0,0 +1 @@
1
+ export * from "./settings";
@@ -1,49 +1,36 @@
1
- import {
2
- FirestoreDataConverter,
3
- QueryDocumentSnapshot,
4
- DocumentData,
5
- } from "firebase-admin/firestore";
6
- import type { Settings } from "@cravery/core";
7
- import {
8
- toTimestamp,
9
- toOptionalTimestamp,
10
- toFirestoreTimestamp,
11
- toOptionalFirestoreTimestamp,
12
- } from "../utils";
13
-
14
- export const settingsConverter: FirestoreDataConverter<Settings> = {
15
- toFirestore(settings: Settings): DocumentData {
16
- const { id, createdAt, updatedAt, deletedAt, ...rest } = settings;
17
-
18
- return {
19
- ...rest,
20
- createdAt: toFirestoreTimestamp(createdAt),
21
- updatedAt: toFirestoreTimestamp(updatedAt),
22
- deletedAt: toOptionalFirestoreTimestamp(deletedAt),
23
- };
24
- },
25
-
26
- fromFirestore(snapshot: QueryDocumentSnapshot): Settings {
27
- const data = snapshot.data();
28
-
29
- return {
30
- id: snapshot.id,
31
- allergens: data.allergens,
32
- cuisines: data.cuisines,
33
- defaultServings: data.defaultServings,
34
- dietaryTags: data.dietaryTags,
35
- excludedIngredients: data.excludedIngredients,
36
- locale: data.locale,
37
- measurementSystem: data.measurementSystem,
38
- notifications: data.notifications,
39
- skillLevel: data.skillLevel,
40
- spiciness: data.spiciness,
41
- status: data.status,
42
- temperatureUnit: data.temperatureUnit,
43
- theme: data.theme,
44
- createdAt: toTimestamp(data.createdAt),
45
- updatedAt: toTimestamp(data.updatedAt),
46
- deletedAt: toOptionalTimestamp(data.deletedAt),
47
- };
48
- },
49
- };
1
+ import {
2
+ FirestoreDataConverter,
3
+ QueryDocumentSnapshot,
4
+ DocumentData,
5
+ } from "firebase-admin/firestore";
6
+ import type { Settings } from "@cravery/core";
7
+ import {
8
+ toTimestamp,
9
+ toOptionalTimestamp,
10
+ toFirestoreTimestamp,
11
+ toOptionalFirestoreTimestamp,
12
+ stripUndefined,
13
+ } from "../../lib";
14
+
15
+ export const settingsConverter: FirestoreDataConverter<Settings> = {
16
+ toFirestore(settings: Settings): DocumentData {
17
+ const { id, createdAt, updatedAt, deletedAt, ...rest } = settings;
18
+ return stripUndefined({
19
+ ...rest,
20
+ createdAt: toFirestoreTimestamp(createdAt),
21
+ updatedAt: toFirestoreTimestamp(updatedAt),
22
+ deletedAt: toOptionalFirestoreTimestamp(deletedAt),
23
+ });
24
+ },
25
+
26
+ fromFirestore(snapshot: QueryDocumentSnapshot): Settings {
27
+ const { createdAt, updatedAt, deletedAt, ...rest } = snapshot.data();
28
+ return {
29
+ ...rest,
30
+ id: snapshot.id,
31
+ createdAt: toTimestamp(createdAt),
32
+ updatedAt: toTimestamp(updatedAt),
33
+ deletedAt: toOptionalTimestamp(deletedAt),
34
+ } as Settings;
35
+ },
36
+ };
@@ -0,0 +1 @@
1
+ export * from "./subscription";
@@ -0,0 +1,85 @@
1
+ import {
2
+ FirestoreDataConverter,
3
+ QueryDocumentSnapshot,
4
+ DocumentData,
5
+ } from "firebase-admin/firestore";
6
+ import type { Subscription, Member } from "@cravery/core";
7
+ import {
8
+ toTimestamp,
9
+ toOptionalTimestamp,
10
+ toFirestoreTimestamp,
11
+ toOptionalFirestoreTimestamp,
12
+ stripUndefined,
13
+ } from "../../lib";
14
+
15
+ function toFirestoreMember(member: Member): DocumentData {
16
+ const { invitedAt, joinedAt, ...rest } = member;
17
+ return stripUndefined({
18
+ ...rest,
19
+ invitedAt: toFirestoreTimestamp(invitedAt),
20
+ joinedAt: toOptionalFirestoreTimestamp(joinedAt),
21
+ });
22
+ }
23
+
24
+ function fromFirestoreMember(data: DocumentData): Member {
25
+ const { invitedAt, joinedAt, ...rest } = data;
26
+ return {
27
+ ...rest,
28
+ invitedAt: toTimestamp(invitedAt),
29
+ joinedAt: toOptionalTimestamp(joinedAt),
30
+ } as Member;
31
+ }
32
+
33
+ export const subscriptionConverter: FirestoreDataConverter<Subscription> = {
34
+ toFirestore(subscription: Subscription): DocumentData {
35
+ const {
36
+ id,
37
+ createdAt,
38
+ updatedAt,
39
+ deletedAt,
40
+ expiresAt,
41
+ purchasedAt,
42
+ cancelledAt,
43
+ trialExpiresAt,
44
+ members,
45
+ ...rest
46
+ } = subscription;
47
+ return stripUndefined({
48
+ ...rest,
49
+ createdAt: toFirestoreTimestamp(createdAt),
50
+ updatedAt: toFirestoreTimestamp(updatedAt),
51
+ deletedAt: toOptionalFirestoreTimestamp(deletedAt),
52
+ expiresAt: toFirestoreTimestamp(expiresAt),
53
+ purchasedAt: toFirestoreTimestamp(purchasedAt),
54
+ cancelledAt: toOptionalFirestoreTimestamp(cancelledAt),
55
+ trialExpiresAt: toOptionalFirestoreTimestamp(trialExpiresAt),
56
+ members: members.map(toFirestoreMember),
57
+ });
58
+ },
59
+
60
+ fromFirestore(snapshot: QueryDocumentSnapshot): Subscription {
61
+ const {
62
+ createdAt,
63
+ updatedAt,
64
+ deletedAt,
65
+ expiresAt,
66
+ purchasedAt,
67
+ cancelledAt,
68
+ trialExpiresAt,
69
+ members,
70
+ ...rest
71
+ } = snapshot.data();
72
+ return {
73
+ ...rest,
74
+ id: snapshot.id,
75
+ createdAt: toTimestamp(createdAt),
76
+ updatedAt: toTimestamp(updatedAt),
77
+ deletedAt: toOptionalTimestamp(deletedAt),
78
+ expiresAt: toTimestamp(expiresAt),
79
+ purchasedAt: toTimestamp(purchasedAt),
80
+ cancelledAt: toOptionalTimestamp(cancelledAt),
81
+ trialExpiresAt: toOptionalTimestamp(trialExpiresAt),
82
+ members: members.map(fromFirestoreMember),
83
+ } as Subscription;
84
+ },
85
+ };
@@ -0,0 +1,36 @@
1
+ import {
2
+ FirestoreDataConverter,
3
+ QueryDocumentSnapshot,
4
+ DocumentData,
5
+ } from "firebase-admin/firestore";
6
+ import type { Bookmark } from "@cravery/core";
7
+ import {
8
+ toTimestamp,
9
+ toOptionalTimestamp,
10
+ toFirestoreTimestamp,
11
+ toOptionalFirestoreTimestamp,
12
+ stripUndefined,
13
+ } from "../../lib";
14
+
15
+ export const bookmarkConverter: FirestoreDataConverter<Bookmark> = {
16
+ toFirestore(bookmark: Bookmark): DocumentData {
17
+ const { id, createdAt, updatedAt, deletedAt, ...rest } = bookmark;
18
+ return stripUndefined({
19
+ ...rest,
20
+ createdAt: toFirestoreTimestamp(createdAt),
21
+ updatedAt: toFirestoreTimestamp(updatedAt),
22
+ deletedAt: toOptionalFirestoreTimestamp(deletedAt),
23
+ });
24
+ },
25
+
26
+ fromFirestore(snapshot: QueryDocumentSnapshot): Bookmark {
27
+ const { createdAt, updatedAt, deletedAt, ...rest } = snapshot.data();
28
+ return {
29
+ ...rest,
30
+ id: snapshot.id,
31
+ createdAt: toTimestamp(createdAt),
32
+ updatedAt: toTimestamp(updatedAt),
33
+ deletedAt: toOptionalTimestamp(deletedAt),
34
+ } as Bookmark;
35
+ },
36
+ };
@@ -0,0 +1,3 @@
1
+ export * from "./bookmark";
2
+ export * from "./profile";
3
+ export * from "./user";
@@ -1,44 +1,36 @@
1
- import {
2
- FirestoreDataConverter,
3
- QueryDocumentSnapshot,
4
- DocumentData,
5
- } from "firebase-admin/firestore";
6
- import type { Profile } from "@cravery/core";
7
- import {
8
- toTimestamp,
9
- toOptionalTimestamp,
10
- toFirestoreTimestamp,
11
- toOptionalFirestoreTimestamp,
12
- } from "../utils";
13
-
14
- export const profileConverter: FirestoreDataConverter<Profile> = {
15
- toFirestore(profile: Profile): DocumentData {
16
- const { id, createdAt, updatedAt, deletedAt, ...rest } = profile;
17
-
18
- return {
19
- ...rest,
20
- createdAt: toFirestoreTimestamp(createdAt),
21
- updatedAt: toFirestoreTimestamp(updatedAt),
22
- deletedAt: toOptionalFirestoreTimestamp(deletedAt),
23
- };
24
- },
25
-
26
- fromFirestore(snapshot: QueryDocumentSnapshot): Profile {
27
- const data = snapshot.data();
28
-
29
- return {
30
- id: snapshot.id,
31
- bio: data.bio,
32
- createdAt: toTimestamp(data.createdAt),
33
- deletedAt: toOptionalTimestamp(data.deletedAt),
34
- email: data.email,
35
- heroUrl: data.heroUrl,
36
- imageUrl: data.imageUrl,
37
- name: data.name,
38
- public: data.public ?? false,
39
- status: data.status,
40
- updatedAt: toTimestamp(data.updatedAt),
41
- verified: data.verified ?? false,
42
- };
43
- },
44
- };
1
+ import {
2
+ FirestoreDataConverter,
3
+ QueryDocumentSnapshot,
4
+ DocumentData,
5
+ } from "firebase-admin/firestore";
6
+ import type { Profile } from "@cravery/core";
7
+ import {
8
+ toTimestamp,
9
+ toOptionalTimestamp,
10
+ toFirestoreTimestamp,
11
+ toOptionalFirestoreTimestamp,
12
+ stripUndefined,
13
+ } from "../../lib";
14
+
15
+ export const profileConverter: FirestoreDataConverter<Profile> = {
16
+ toFirestore(profile: Profile): DocumentData {
17
+ const { id, createdAt, updatedAt, deletedAt, ...rest } = profile;
18
+ return stripUndefined({
19
+ ...rest,
20
+ createdAt: toFirestoreTimestamp(createdAt),
21
+ updatedAt: toFirestoreTimestamp(updatedAt),
22
+ deletedAt: toOptionalFirestoreTimestamp(deletedAt),
23
+ });
24
+ },
25
+
26
+ fromFirestore(snapshot: QueryDocumentSnapshot): Profile {
27
+ const { createdAt, updatedAt, deletedAt, ...rest } = snapshot.data();
28
+ return {
29
+ ...rest,
30
+ id: snapshot.id,
31
+ createdAt: toTimestamp(createdAt),
32
+ updatedAt: toTimestamp(updatedAt),
33
+ deletedAt: toOptionalTimestamp(deletedAt),
34
+ } as Profile;
35
+ },
36
+ };
@@ -1,43 +1,36 @@
1
- import {
2
- FirestoreDataConverter,
3
- QueryDocumentSnapshot,
4
- DocumentData,
5
- } from "firebase-admin/firestore";
6
- import type { User } from "@cravery/core";
7
- import {
8
- toTimestamp,
9
- toOptionalTimestamp,
10
- toFirestoreTimestamp,
11
- toOptionalFirestoreTimestamp,
12
- } from "../utils";
13
-
14
- export const userConverter: FirestoreDataConverter<User> = {
15
- toFirestore(user: User): DocumentData {
16
- const { id, createdAt, updatedAt, deletedAt, ...rest } = user;
17
-
18
- return {
19
- ...rest,
20
- createdAt: toFirestoreTimestamp(createdAt),
21
- updatedAt: toFirestoreTimestamp(updatedAt),
22
- deletedAt: toOptionalFirestoreTimestamp(deletedAt),
23
- };
24
- },
25
-
26
- fromFirestore(snapshot: QueryDocumentSnapshot): User {
27
- const data = snapshot.data();
28
-
29
- return {
30
- id: snapshot.id,
31
- email: data.email,
32
- name: data.name,
33
- role: data.role,
34
- status: data.status,
35
- verified: data.verified ?? false,
36
- createdAt: toTimestamp(data.createdAt),
37
- updatedAt: toTimestamp(data.updatedAt),
38
- deletedAt: toOptionalTimestamp(data.deletedAt),
39
- imageUrl: data.imageUrl,
40
- subscriptionId: data.subscriptionId,
41
- };
42
- },
43
- };
1
+ import {
2
+ FirestoreDataConverter,
3
+ QueryDocumentSnapshot,
4
+ DocumentData,
5
+ } from "firebase-admin/firestore";
6
+ import type { User } from "@cravery/core";
7
+ import {
8
+ toTimestamp,
9
+ toOptionalTimestamp,
10
+ toFirestoreTimestamp,
11
+ toOptionalFirestoreTimestamp,
12
+ stripUndefined,
13
+ } from "../../lib";
14
+
15
+ export const userConverter: FirestoreDataConverter<User> = {
16
+ toFirestore(user: User): DocumentData {
17
+ const { id, createdAt, updatedAt, deletedAt, ...rest } = user;
18
+ return stripUndefined({
19
+ ...rest,
20
+ createdAt: toFirestoreTimestamp(createdAt),
21
+ updatedAt: toFirestoreTimestamp(updatedAt),
22
+ deletedAt: toOptionalFirestoreTimestamp(deletedAt),
23
+ });
24
+ },
25
+
26
+ fromFirestore(snapshot: QueryDocumentSnapshot): User {
27
+ const { createdAt, updatedAt, deletedAt, ...rest } = snapshot.data();
28
+ return {
29
+ ...rest,
30
+ id: snapshot.id,
31
+ createdAt: toTimestamp(createdAt),
32
+ updatedAt: toTimestamp(updatedAt),
33
+ deletedAt: toOptionalTimestamp(deletedAt),
34
+ } as User;
35
+ },
36
+ };
package/src/index.ts CHANGED
@@ -1,4 +1,2 @@
1
- export * from "./converter";
2
- export * from "./repository";
3
- export * from "./transform";
4
- export * from "./utils";
1
+ export * from "./converters";
2
+ export * from "./lib";
@@ -1,3 +1,2 @@
1
- export * from "./cursor";
2
- export * from "./strip-undefined";
3
- export * from "./timestamp";
1
+ export * from "./strip-undefined";
2
+ export * from "./timestamp";