mm-share-lib 0.0.5 → 0.0.7

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 (325) hide show
  1. package/dist/src/auth/apple/apple.module.d.ts +2 -0
  2. package/dist/src/auth/apple/apple.module.js +22 -0
  3. package/dist/src/auth/apple/apple.module.js.map +1 -0
  4. package/dist/src/auth/apple/apple.service.d.ts +9 -0
  5. package/dist/src/auth/apple/apple.service.js +38 -0
  6. package/dist/src/auth/apple/apple.service.js.map +1 -0
  7. package/dist/src/auth/apple/dto/apple-login.dto.d.ts +5 -0
  8. package/dist/src/auth/apple/dto/apple-login.dto.js +33 -0
  9. package/dist/src/auth/apple/dto/apple-login.dto.js.map +1 -0
  10. package/dist/src/auth/apple/dto/index.d.ts +1 -0
  11. package/dist/src/auth/apple/dto/index.js +18 -0
  12. package/dist/src/auth/apple/dto/index.js.map +1 -0
  13. package/dist/src/auth/apple/index.d.ts +3 -0
  14. package/dist/src/auth/apple/index.js +20 -0
  15. package/dist/src/auth/apple/index.js.map +1 -0
  16. package/dist/src/auth/config/apple.config.d.ts +3 -0
  17. package/dist/src/auth/config/apple.config.js +29 -0
  18. package/dist/src/auth/config/apple.config.js.map +1 -0
  19. package/dist/src/auth/config/auth.config.d.ts +3 -0
  20. package/dist/src/auth/config/auth.config.js +42 -0
  21. package/dist/src/auth/config/auth.config.js.map +1 -0
  22. package/dist/src/auth/config/facebook.config.d.ts +3 -0
  23. package/dist/src/auth/config/facebook.config.js +34 -0
  24. package/dist/src/auth/config/facebook.config.js.map +1 -0
  25. package/dist/src/auth/config/file.config.d.ts +3 -0
  26. package/dist/src/auth/config/file.config.js +66 -0
  27. package/dist/src/auth/config/file.config.js.map +1 -0
  28. package/dist/src/auth/config/google.config.d.ts +3 -0
  29. package/dist/src/auth/config/google.config.js +34 -0
  30. package/dist/src/auth/config/google.config.js.map +1 -0
  31. package/dist/src/auth/config/index.d.ts +6 -0
  32. package/dist/src/auth/config/index.js +23 -0
  33. package/dist/src/auth/config/index.js.map +1 -0
  34. package/dist/src/auth/config/twitter.config.d.ts +8 -0
  35. package/dist/src/auth/config/twitter.config.js +34 -0
  36. package/dist/src/auth/config/twitter.config.js.map +1 -0
  37. package/dist/src/auth/facebook/dto/facebook-login.dto.d.ts +3 -0
  38. package/dist/src/auth/facebook/dto/facebook-login.dto.js +23 -0
  39. package/dist/src/auth/facebook/dto/facebook-login.dto.js.map +1 -0
  40. package/dist/src/auth/facebook/dto/index.d.ts +1 -0
  41. package/dist/src/auth/facebook/dto/index.js +18 -0
  42. package/dist/src/auth/facebook/dto/index.js.map +1 -0
  43. package/dist/src/auth/facebook/facebook.module.d.ts +2 -0
  44. package/dist/src/auth/facebook/facebook.module.js +23 -0
  45. package/dist/src/auth/facebook/facebook.module.js.map +1 -0
  46. package/dist/src/auth/facebook/facebook.service.d.ts +10 -0
  47. package/dist/src/auth/facebook/facebook.service.js +50 -0
  48. package/dist/src/auth/facebook/facebook.service.js.map +1 -0
  49. package/dist/src/auth/facebook/index.d.ts +4 -0
  50. package/dist/src/auth/facebook/index.js +21 -0
  51. package/dist/src/auth/facebook/index.js.map +1 -0
  52. package/dist/src/auth/facebook/interface/facebook.interface.d.ts +6 -0
  53. package/dist/src/auth/facebook/interface/facebook.interface.js +3 -0
  54. package/dist/src/auth/facebook/interface/facebook.interface.js.map +1 -0
  55. package/dist/src/auth/facebook/interface/index.d.ts +1 -0
  56. package/dist/src/auth/facebook/interface/index.js +18 -0
  57. package/dist/src/auth/facebook/interface/index.js.map +1 -0
  58. package/dist/src/auth/google/dto/google-login.dto.d.ts +3 -0
  59. package/dist/src/auth/google/dto/google-login.dto.js +23 -0
  60. package/dist/src/auth/google/dto/google-login.dto.js.map +1 -0
  61. package/dist/src/auth/google/dto/index.d.ts +1 -0
  62. package/dist/src/auth/google/dto/index.js +18 -0
  63. package/dist/src/auth/google/dto/index.js.map +1 -0
  64. package/dist/src/auth/google/google.module.d.ts +2 -0
  65. package/dist/src/auth/google/google.module.js +22 -0
  66. package/dist/src/auth/google/google.module.js.map +1 -0
  67. package/dist/src/auth/google/google.service.d.ts +10 -0
  68. package/dist/src/auth/google/google.service.js +49 -0
  69. package/dist/src/auth/google/google.service.js.map +1 -0
  70. package/dist/src/auth/google/index.d.ts +3 -0
  71. package/dist/src/auth/google/index.js +20 -0
  72. package/dist/src/auth/google/index.js.map +1 -0
  73. package/dist/src/auth/index.d.ts +5 -0
  74. package/dist/src/auth/index.js +22 -0
  75. package/dist/src/auth/index.js.map +1 -0
  76. package/dist/src/auth/twitter/dto/index.d.ts +1 -0
  77. package/dist/src/auth/twitter/dto/index.js +18 -0
  78. package/dist/src/auth/twitter/dto/index.js.map +1 -0
  79. package/dist/src/auth/twitter/dto/twitter-login.dto.d.ts +4 -0
  80. package/dist/src/auth/twitter/dto/twitter-login.dto.js +28 -0
  81. package/dist/src/auth/twitter/dto/twitter-login.dto.js.map +1 -0
  82. package/dist/src/auth/twitter/index.d.ts +3 -0
  83. package/dist/src/auth/twitter/index.js +20 -0
  84. package/dist/src/auth/twitter/index.js.map +1 -0
  85. package/dist/src/auth/twitter/twitter.module.d.ts +2 -0
  86. package/dist/src/auth/twitter/twitter.module.js +23 -0
  87. package/dist/src/auth/twitter/twitter.module.js.map +1 -0
  88. package/dist/src/auth/twitter/twitter.service.d.ts +9 -0
  89. package/dist/src/auth/twitter/twitter.service.js +49 -0
  90. package/dist/src/auth/twitter/twitter.service.js.map +1 -0
  91. package/dist/src/config/index.d.ts +1 -0
  92. package/dist/src/config/index.js +18 -0
  93. package/dist/src/config/index.js.map +1 -0
  94. package/dist/src/config/type.config.d.ts +79 -0
  95. package/dist/src/config/type.config.js +3 -0
  96. package/dist/src/config/type.config.js.map +1 -0
  97. package/dist/src/dto/pagination.dto.d.ts +3 -2
  98. package/dist/src/dto/pagination.dto.js +26 -0
  99. package/dist/src/dto/pagination.dto.js.map +1 -1
  100. package/dist/src/filter/rpc-exception.filter.d.ts +6 -0
  101. package/dist/src/filter/rpc-exception.filter.js +21 -0
  102. package/dist/src/filter/rpc-exception.filter.js.map +1 -0
  103. package/dist/src/index.d.ts +1 -0
  104. package/dist/src/index.js +1 -0
  105. package/dist/src/index.js.map +1 -1
  106. package/dist/src/interface/index.d.ts +1 -0
  107. package/dist/src/interface/index.js +18 -0
  108. package/dist/src/interface/index.js.map +1 -0
  109. package/dist/src/interface/social.interface.d.ts +6 -0
  110. package/dist/src/interface/social.interface.js +3 -0
  111. package/dist/src/interface/social.interface.js.map +1 -0
  112. package/dist/src/lib/index.d.ts +2 -0
  113. package/dist/src/lib/index.js +2 -0
  114. package/dist/src/lib/index.js.map +1 -1
  115. package/dist/src/lib/mailer/config/index.d.ts +1 -0
  116. package/dist/src/lib/mailer/config/index.js +18 -0
  117. package/dist/src/lib/mailer/config/index.js.map +1 -0
  118. package/dist/src/lib/mailer/config/mailer.config.d.ts +3 -0
  119. package/dist/src/lib/mailer/config/mailer.config.js +72 -0
  120. package/dist/src/lib/mailer/config/mailer.config.js.map +1 -0
  121. package/dist/src/lib/mailer/index.d.ts +2 -0
  122. package/dist/src/lib/mailer/index.js +19 -0
  123. package/dist/src/lib/mailer/index.js.map +1 -0
  124. package/dist/src/lib/mailer/mailer.module.d.ts +2 -0
  125. package/dist/src/lib/mailer/mailer.module.js +20 -0
  126. package/dist/src/lib/mailer/mailer.module.js.map +1 -0
  127. package/dist/src/lib/mailer/mailer.service.d.ts +12 -0
  128. package/dist/src/lib/mailer/mailer.service.js +66 -0
  129. package/dist/src/lib/mailer/mailer.service.js.map +1 -0
  130. package/dist/src/lib/redis/index.d.ts +0 -0
  131. package/dist/src/lib/redis/index.js +1 -0
  132. package/dist/src/lib/redis/index.js.map +1 -0
  133. package/dist/src/lib/search-engine/document/base.document.d.ts +1 -1
  134. package/dist/src/lib/search-engine/interface/search-document.interface.d.ts +1 -1
  135. package/dist/src/lib/search-engine/typesense/collection/index.d.ts +1 -0
  136. package/dist/src/lib/search-engine/typesense/collection/index.js +18 -0
  137. package/dist/src/lib/search-engine/typesense/collection/index.js.map +1 -0
  138. package/dist/src/lib/search-engine/typesense/document/index.d.ts +1 -0
  139. package/dist/src/lib/search-engine/typesense/document/index.js +18 -0
  140. package/dist/src/lib/search-engine/typesense/document/index.js.map +1 -0
  141. package/dist/src/lib/search-engine/typesense/index.d.ts +1 -0
  142. package/dist/src/lib/search-engine/typesense/index.js +1 -0
  143. package/dist/src/lib/search-engine/typesense/index.js.map +1 -1
  144. package/dist/src/lib/search-engine/typesense/service/client.service.d.ts +3 -2
  145. package/dist/src/lib/search-engine/typesense/service/client.service.js +4 -1
  146. package/dist/src/lib/search-engine/typesense/service/client.service.js.map +1 -1
  147. package/dist/src/lib/storage/index.d.ts +0 -0
  148. package/dist/src/lib/storage/index.js +1 -0
  149. package/dist/src/lib/storage/index.js.map +1 -0
  150. package/dist/src/lib/typesense/client/index.d.ts +1 -0
  151. package/dist/src/lib/typesense/client/index.js +6 -0
  152. package/dist/src/lib/typesense/client/index.js.map +1 -0
  153. package/dist/src/lib/typesense/collection/index.d.ts +1 -0
  154. package/dist/src/lib/typesense/collection/index.js +18 -0
  155. package/dist/src/lib/typesense/collection/index.js.map +1 -0
  156. package/dist/src/lib/typesense/collection/typesense-colletctions.creator.d.ts +10 -0
  157. package/dist/src/lib/typesense/collection/typesense-colletctions.creator.js +42 -0
  158. package/dist/src/lib/typesense/collection/typesense-colletctions.creator.js.map +1 -0
  159. package/dist/src/lib/typesense/decorator/field.decorator.d.ts +9 -0
  160. package/dist/src/lib/typesense/decorator/field.decorator.js +15 -0
  161. package/dist/src/lib/typesense/decorator/field.decorator.js.map +1 -0
  162. package/dist/src/lib/typesense/decorator/index.d.ts +2 -0
  163. package/dist/src/lib/typesense/decorator/index.js +19 -0
  164. package/dist/src/lib/typesense/decorator/index.js.map +1 -0
  165. package/dist/src/lib/typesense/decorator/schema.decorator.d.ts +7 -0
  166. package/dist/src/lib/typesense/decorator/schema.decorator.js +16 -0
  167. package/dist/src/lib/typesense/decorator/schema.decorator.js.map +1 -0
  168. package/dist/src/lib/typesense/document/base.document.d.ts +3 -0
  169. package/dist/src/lib/typesense/document/base.document.js +7 -0
  170. package/dist/src/lib/typesense/document/base.document.js.map +1 -0
  171. package/dist/src/lib/typesense/document/index.d.ts +1 -0
  172. package/dist/src/lib/typesense/document/index.js +18 -0
  173. package/dist/src/lib/typesense/document/index.js.map +1 -0
  174. package/dist/src/lib/typesense/index.d.ts +4 -0
  175. package/dist/src/lib/typesense/index.js +21 -0
  176. package/dist/src/lib/typesense/index.js.map +1 -0
  177. package/dist/src/lib/typesense/metadata/index.d.ts +4 -0
  178. package/dist/src/lib/typesense/metadata/index.js +21 -0
  179. package/dist/src/lib/typesense/metadata/index.js.map +1 -0
  180. package/dist/src/lib/typesense/metadata/schema.metadata.d.ts +19 -0
  181. package/dist/src/lib/typesense/metadata/schema.metadata.js +3 -0
  182. package/dist/src/lib/typesense/metadata/schema.metadata.js.map +1 -0
  183. package/dist/src/lib/typesense/metadata/typesense.metadata-accessor.d.ts +7 -0
  184. package/dist/src/lib/typesense/metadata/typesense.metadata-accessor.js +47 -0
  185. package/dist/src/lib/typesense/metadata/typesense.metadata-accessor.js.map +1 -0
  186. package/dist/src/lib/typesense/metadata/typesense.metadata-explorer.d.ts +14 -0
  187. package/dist/src/lib/typesense/metadata/typesense.metadata-explorer.js +50 -0
  188. package/dist/src/lib/typesense/metadata/typesense.metadata-explorer.js.map +1 -0
  189. package/dist/src/lib/typesense/metadata/typesense.metadata-registry.d.ts +10 -0
  190. package/dist/src/lib/typesense/metadata/typesense.metadata-registry.js +33 -0
  191. package/dist/src/lib/typesense/metadata/typesense.metadata-registry.js.map +1 -0
  192. package/dist/src/lib/typesense/module/index.d.ts +4 -0
  193. package/dist/src/lib/typesense/module/index.js +21 -0
  194. package/dist/src/lib/typesense/module/index.js.map +1 -0
  195. package/dist/src/lib/typesense/module/interface.module.d.ts +27 -0
  196. package/dist/src/lib/typesense/module/interface.module.js +3 -0
  197. package/dist/src/lib/typesense/module/interface.module.js.map +1 -0
  198. package/dist/src/lib/typesense/module/typesense.constant.d.ts +1 -0
  199. package/dist/src/lib/typesense/module/typesense.constant.js +5 -0
  200. package/dist/src/lib/typesense/module/typesense.constant.js.map +1 -0
  201. package/dist/src/lib/typesense/module/typesense.module.d.ts +8 -0
  202. package/dist/src/lib/typesense/module/typesense.module.js +74 -0
  203. package/dist/src/lib/typesense/module/typesense.module.js.map +1 -0
  204. package/dist/src/lib/typesense/module/typesense.provider.d.ts +5 -0
  205. package/dist/src/lib/typesense/module/typesense.provider.js +48 -0
  206. package/dist/src/lib/typesense/module/typesense.provider.js.map +1 -0
  207. package/dist/src/response/base-entity.response.d.ts +3 -0
  208. package/dist/src/response/base-entity.response.js +23 -0
  209. package/dist/src/response/base-entity.response.js.map +1 -0
  210. package/dist/src/response/index.d.ts +1 -0
  211. package/dist/src/response/index.js +1 -0
  212. package/dist/src/response/index.js.map +1 -1
  213. package/dist/src/response/login.response.d.ts +0 -0
  214. package/dist/src/response/login.response.js +1 -0
  215. package/dist/src/response/login.response.js.map +1 -0
  216. package/dist/src/response/pagination.response.d.ts +5 -5
  217. package/dist/src/response/pagination.response.js +39 -0
  218. package/dist/src/response/pagination.response.js.map +1 -1
  219. package/dist/src/util/index.d.ts +1 -0
  220. package/dist/src/util/index.js +1 -0
  221. package/dist/src/util/index.js.map +1 -1
  222. package/dist/src/util/validate-config.d.ts +2 -0
  223. package/dist/src/util/validate-config.js +19 -0
  224. package/dist/src/util/validate-config.js.map +1 -0
  225. package/dist/tsconfig.build.tsbuildinfo +1 -1
  226. package/package.json +12 -2
  227. package/src/auth/apple/apple.module.ts +10 -0
  228. package/src/auth/apple/apple.service.ts +28 -0
  229. package/src/auth/apple/dto/apple-login.dto.ts +16 -0
  230. package/src/auth/apple/dto/index.ts +1 -0
  231. package/src/auth/apple/index.ts +3 -0
  232. package/src/auth/config/apple.config.ts +18 -0
  233. package/src/auth/config/auth.config.ts +29 -0
  234. package/src/auth/config/facebook.config.ts +23 -0
  235. package/src/auth/config/file.config.ts +50 -0
  236. package/src/auth/config/google.config.ts +23 -0
  237. package/src/auth/config/index.ts +6 -0
  238. package/src/auth/config/twitter.config.ts +22 -0
  239. package/src/auth/facebook/dto/facebook-login.dto.ts +8 -0
  240. package/src/auth/facebook/dto/index.ts +1 -0
  241. package/src/auth/facebook/facebook.module.ts +11 -0
  242. package/src/auth/facebook/facebook.service.ts +51 -0
  243. package/src/auth/facebook/index.ts +4 -0
  244. package/src/auth/facebook/interface/facebook.interface.ts +6 -0
  245. package/src/auth/facebook/interface/index.ts +1 -0
  246. package/src/auth/google/dto/google-login.dto.ts +8 -0
  247. package/src/auth/google/dto/index.ts +1 -0
  248. package/src/auth/google/google.module.ts +10 -0
  249. package/src/auth/google/google.service.ts +49 -0
  250. package/src/auth/google/index.ts +3 -0
  251. package/src/auth/index.ts +5 -0
  252. package/src/auth/twitter/dto/index.ts +1 -0
  253. package/src/auth/twitter/dto/twitter-login.dto.ts +12 -0
  254. package/src/auth/twitter/index.ts +3 -0
  255. package/src/auth/twitter/twitter.module.ts +11 -0
  256. package/src/auth/twitter/twitter.service.ts +43 -0
  257. package/src/config/index.ts +1 -0
  258. package/src/config/type.config.ts +88 -0
  259. package/src/dto/base-filter.dto.ts +4 -4
  260. package/src/dto/pagination.dto.ts +16 -4
  261. package/src/exception/bad-request-error.exception.spec.ts +24 -24
  262. package/src/exception/bad-request-error.exception.ts +8 -8
  263. package/src/exception/base.exception.ts +36 -36
  264. package/src/exception/conflict-error.exception.spec.ts +23 -23
  265. package/src/exception/conflict-error.exception.ts +8 -8
  266. package/src/exception/forbidden-error.exception.spec.ts +23 -23
  267. package/src/exception/forbidden-error.exception.ts +8 -8
  268. package/src/exception/index.ts +7 -7
  269. package/src/exception/internal-server-error.exception.spec.ts +23 -23
  270. package/src/exception/internal-server-error.exception.ts +12 -12
  271. package/src/exception/not-found-error.exception.spec.ts +23 -23
  272. package/src/exception/not-found-error.exception.ts +8 -8
  273. package/src/exception/unauthorized-error.exception.spec.ts +23 -23
  274. package/src/exception/unauthorized-error.exception.ts +12 -12
  275. package/src/filter/http-exception.filter.ts +23 -23
  276. package/src/filter/rpc-exception.filter.ts +15 -0
  277. package/src/index.ts +1 -0
  278. package/src/interface/index.ts +1 -0
  279. package/src/interface/social.interface.ts +6 -0
  280. package/src/lib/index.ts +2 -0
  281. package/src/lib/mailer/config/index.ts +1 -0
  282. package/src/lib/mailer/config/mailer.config.ts +62 -0
  283. package/src/lib/mailer/index.ts +2 -0
  284. package/src/lib/mailer/mailer.module.ts +8 -0
  285. package/src/lib/mailer/mailer.service.ts +53 -0
  286. package/src/lib/redis/index.ts +0 -0
  287. package/src/lib/search-engine/document/base.document.ts +2 -2
  288. package/src/lib/search-engine/interface/search-document.interface.ts +10 -2
  289. package/src/lib/search-engine/schema/generic.schema.ts +1 -1
  290. package/src/lib/search-engine/schema/index.ts +1 -1
  291. package/src/lib/search-engine/typesense/collection/index.ts +1 -0
  292. package/src/lib/search-engine/typesense/document/index.ts +1 -0
  293. package/src/lib/search-engine/typesense/index.ts +4 -3
  294. package/src/lib/search-engine/typesense/service/client.service.ts +260 -258
  295. package/src/lib/storage/index.ts +0 -0
  296. package/src/lib/typesense/client/index.ts +1 -0
  297. package/src/lib/typesense/collection/index.ts +1 -0
  298. package/src/lib/typesense/collection/typesense-colletctions.creator.ts +29 -0
  299. package/src/lib/typesense/decorator/field.decorator.spec.ts +89 -0
  300. package/src/lib/typesense/decorator/field.decorator.ts +44 -0
  301. package/src/lib/typesense/decorator/index.ts +2 -0
  302. package/src/lib/typesense/decorator/schema.decorator.ts +23 -0
  303. package/src/lib/typesense/document/base.document.ts +3 -0
  304. package/src/lib/typesense/document/index.ts +1 -0
  305. package/src/lib/typesense/index.ts +6 -0
  306. package/src/lib/typesense/metadata/index.ts +4 -0
  307. package/src/lib/typesense/metadata/schema.metadata.ts +21 -0
  308. package/src/lib/typesense/metadata/typesense.metadata-accessor.ts +37 -0
  309. package/src/lib/typesense/metadata/typesense.metadata-explorer.spec.ts +56 -0
  310. package/src/lib/typesense/metadata/typesense.metadata-explorer.ts +41 -0
  311. package/src/lib/typesense/metadata/typesense.metadata-registry.ts +28 -0
  312. package/src/lib/typesense/module/index.ts +4 -0
  313. package/src/lib/typesense/module/interface.module.ts +36 -0
  314. package/src/lib/typesense/module/typesense.constant.ts +1 -0
  315. package/src/lib/typesense/module/typesense.module.spec.ts +94 -0
  316. package/src/lib/typesense/module/typesense.module.ts +87 -0
  317. package/src/lib/typesense/module/typesense.provider.ts +54 -0
  318. package/src/response/base-entity.response.ts +8 -0
  319. package/src/response/index.ts +2 -1
  320. package/src/response/login.response.ts +0 -0
  321. package/src/response/pagination.response.ts +52 -37
  322. package/src/setup/microservice.setup.ts +29 -29
  323. package/src/util/app.utils.ts +18 -18
  324. package/src/util/index.ts +1 -0
  325. package/src/util/validate-config.ts +20 -0
@@ -0,0 +1,8 @@
1
+ import { ApiPropertyOptional } from '@nestjs/swagger';
2
+ import { Type } from 'class-transformer';
3
+
4
+ export class BaseEntityResponse {
5
+ @ApiPropertyOptional()
6
+ @Type(() => Number)
7
+ id?: number;
8
+ }
@@ -1 +1,2 @@
1
- export * from './pagination.response';
1
+ export * from './base-entity.response';
2
+ export * from './pagination.response';
File without changes
@@ -1,37 +1,52 @@
1
- export class PaginationResponse<T> {
2
- data: T[];
3
- total?: number;
4
- offset?: number;
5
- limit?: number;
6
- hasNext?: boolean;
7
-
8
- constructor(
9
- data: T[],
10
- total: number = data?.length || 0,
11
- limit?: number,
12
- offset?: number,
13
- ) {
14
- this.data = data;
15
- this.total = total;
16
- this.offset = offset;
17
- this.limit = limit;
18
- this.hasNext = this.offset + this.limit < this.total;
19
- }
20
-
21
- toJSON() {
22
- return {
23
- data: this.data,
24
- total: this.total,
25
- count: this.data.length,
26
- offset: this.offset,
27
- limit: this.limit,
28
- hasNext: this.hasNext,
29
- };
30
- }
31
-
32
- promise(): Promise<PaginationResponse<T>> {
33
- return new Promise((resolve, reject) => {
34
- resolve(this);
35
- });
36
- }
37
- }
1
+ import { ApiPropertyOptional } from '@nestjs/swagger';
2
+ import { Type } from 'class-transformer';
3
+ export class PaginationResponse<TData> {
4
+ @ApiPropertyOptional()
5
+ data: TData[];
6
+
7
+ @ApiPropertyOptional()
8
+ @Type(() => Number)
9
+ total?: number = 0;
10
+
11
+ @ApiPropertyOptional()
12
+ @Type(() => Number)
13
+ offset?: number = 0;
14
+
15
+ @ApiPropertyOptional()
16
+ @Type(() => Number)
17
+ limit?: number = 25;
18
+
19
+ @ApiPropertyOptional()
20
+ @Type(() => Boolean)
21
+ hasNext?: boolean = false;
22
+
23
+ constructor(
24
+ data: TData[],
25
+ total: number = data?.length || 0,
26
+ limit?: number,
27
+ offset?: number,
28
+ ) {
29
+ this.data = data;
30
+ this.total = total;
31
+ this.offset = offset;
32
+ this.limit = limit;
33
+ this.hasNext = this.offset + this.limit < this.total;
34
+ }
35
+
36
+ toJSON() {
37
+ return {
38
+ data: this.data,
39
+ total: this.total,
40
+ count: this.data.length,
41
+ offset: this.offset,
42
+ limit: this.limit,
43
+ hasNext: this.hasNext,
44
+ };
45
+ }
46
+
47
+ promise(): Promise<PaginationResponse<TData>> {
48
+ return new Promise((resolve, reject) => {
49
+ resolve(this);
50
+ });
51
+ }
52
+ }
@@ -1,29 +1,29 @@
1
- import type { INestApplication } from '@nestjs/common';
2
- import { Logger } from '@nestjs/common';
3
- import { Transport } from '@nestjs/microservices';
4
-
5
- import { AppUtils } from '../util';
6
-
7
- export async function microserviceSetup(
8
- app: INestApplication,
9
- serviceName: string,
10
- ) {
11
- AppUtils.killAppWithGrace(app);
12
- const protoBasePath = process.cwd() + '/libs/proto-schema/src/proto';
13
- const host = process.env['GRPC_HOST'];
14
- const port = process.env['GRPC_PORT'];
15
- const options = {
16
- transport: Transport.GRPC,
17
- options: {
18
- url: `${host}:${port}`,
19
- protoPath: `${protoBasePath}/${serviceName}.proto`,
20
- package: `${serviceName}`,
21
- },
22
- };
23
- app.connectMicroservice(options);
24
- await app.startAllMicroservices();
25
- Logger.log(
26
- `GRPC ${serviceName} running on ${options.options.url}`,
27
- 'Bootstrap',
28
- );
29
- }
1
+ import type { INestApplication } from '@nestjs/common';
2
+ import { Logger } from '@nestjs/common';
3
+ import { Transport } from '@nestjs/microservices';
4
+
5
+ import { AppUtils } from '../util';
6
+
7
+ export async function microserviceSetup(
8
+ app: INestApplication,
9
+ serviceName: string,
10
+ ) {
11
+ AppUtils.killAppWithGrace(app);
12
+ const protoBasePath = process.cwd() + '/libs/proto-schema/src/proto';
13
+ const host = process.env['GRPC_HOST'];
14
+ const port = process.env['GRPC_PORT'];
15
+ const options = {
16
+ transport: Transport.GRPC,
17
+ options: {
18
+ url: `${host}:${port}`,
19
+ protoPath: `${protoBasePath}/${serviceName}.proto`,
20
+ package: `${serviceName}`,
21
+ },
22
+ };
23
+ app.connectMicroservice(options);
24
+ await app.startAllMicroservices();
25
+ Logger.log(
26
+ `GRPC ${serviceName} running on ${options.options.url}`,
27
+ 'Bootstrap',
28
+ );
29
+ }
@@ -1,18 +1,18 @@
1
- import type { INestApplication } from '@nestjs/common';
2
-
3
- export class AppUtils {
4
- public static killAppWithGrace = (app: INestApplication) => {
5
- process.on('SIGINT', async () => {
6
- setTimeout(() => process.exit(1), 5000);
7
- await app.close();
8
- process.exit(0);
9
- });
10
-
11
- // kill -15
12
- process.on('SIGTERM', async () => {
13
- setTimeout(() => process.exit(1), 5000);
14
- await app.close();
15
- process.exit(0);
16
- });
17
- };
18
- }
1
+ import type { INestApplication } from '@nestjs/common';
2
+
3
+ export class AppUtils {
4
+ public static killAppWithGrace = (app: INestApplication) => {
5
+ process.on('SIGINT', async () => {
6
+ setTimeout(() => process.exit(1), 5000);
7
+ await app.close();
8
+ process.exit(0);
9
+ });
10
+
11
+ // kill -15
12
+ process.on('SIGTERM', async () => {
13
+ setTimeout(() => process.exit(1), 5000);
14
+ await app.close();
15
+ process.exit(0);
16
+ });
17
+ };
18
+ }
package/src/util/index.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './date.util';
2
2
  export * from './generator.util';
3
3
  export * from './app.utils';
4
+ export * from './validate-config';
@@ -0,0 +1,20 @@
1
+ import { plainToClass } from 'class-transformer';
2
+ import { validateSync } from 'class-validator';
3
+ import { ClassConstructor } from 'class-transformer/types/interfaces';
4
+
5
+ export function validateConfig<T extends object>(
6
+ config: Record<string, unknown>,
7
+ envVariablesClass: ClassConstructor<T>,
8
+ ) {
9
+ const validatedConfig = plainToClass(envVariablesClass, config, {
10
+ enableImplicitConversion: true,
11
+ });
12
+ const errors = validateSync(validatedConfig, {
13
+ skipMissingProperties: false,
14
+ });
15
+
16
+ if (errors.length > 0) {
17
+ throw new Error(errors.toString());
18
+ }
19
+ return validatedConfig;
20
+ }