jsonplaceholder-api-client 0.9.0-beta.1

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 (326) hide show
  1. package/README.md +541 -0
  2. package/dist/albums/create-new-album.d.ts +15 -0
  3. package/dist/albums/create-new-album.d.ts.map +1 -0
  4. package/dist/albums/create-new-album.js +45 -0
  5. package/dist/albums/create-new-album.js.map +1 -0
  6. package/dist/albums/delete-album.d.ts +9 -0
  7. package/dist/albums/delete-album.d.ts.map +1 -0
  8. package/dist/albums/delete-album.js +36 -0
  9. package/dist/albums/delete-album.js.map +1 -0
  10. package/dist/albums/get-album-by-id.d.ts +14 -0
  11. package/dist/albums/get-album-by-id.d.ts.map +1 -0
  12. package/dist/albums/get-album-by-id.js +40 -0
  13. package/dist/albums/get-album-by-id.js.map +1 -0
  14. package/dist/albums/get-all-albums.d.ts +8 -0
  15. package/dist/albums/get-all-albums.d.ts.map +1 -0
  16. package/dist/albums/get-all-albums.js +38 -0
  17. package/dist/albums/get-all-albums.js.map +1 -0
  18. package/dist/albums/test/create-new-album.test.d.ts +2 -0
  19. package/dist/albums/test/create-new-album.test.d.ts.map +1 -0
  20. package/dist/albums/test/create-new-album.test.js +90 -0
  21. package/dist/albums/test/create-new-album.test.js.map +1 -0
  22. package/dist/albums/test/delete-album.test.d.ts +2 -0
  23. package/dist/albums/test/delete-album.test.d.ts.map +1 -0
  24. package/dist/albums/test/delete-album.test.js +59 -0
  25. package/dist/albums/test/delete-album.test.js.map +1 -0
  26. package/dist/albums/test/get-album-by-id.test.d.ts +2 -0
  27. package/dist/albums/test/get-album-by-id.test.d.ts.map +1 -0
  28. package/dist/albums/test/get-album-by-id.test.js +83 -0
  29. package/dist/albums/test/get-album-by-id.test.js.map +1 -0
  30. package/dist/albums/test/get-all-albums.test.d.ts +2 -0
  31. package/dist/albums/test/get-all-albums.test.d.ts.map +1 -0
  32. package/dist/albums/test/get-all-albums.test.js +73 -0
  33. package/dist/albums/test/get-all-albums.test.js.map +1 -0
  34. package/dist/albums/test/update-album-partial.test.d.ts +2 -0
  35. package/dist/albums/test/update-album-partial.test.d.ts.map +1 -0
  36. package/dist/albums/test/update-album-partial.test.js +99 -0
  37. package/dist/albums/test/update-album-partial.test.js.map +1 -0
  38. package/dist/albums/test/update-album.test.d.ts +2 -0
  39. package/dist/albums/test/update-album.test.d.ts.map +1 -0
  40. package/dist/albums/test/update-album.test.js +90 -0
  41. package/dist/albums/test/update-album.test.js.map +1 -0
  42. package/dist/albums/update-album-by-id.d.ts +19 -0
  43. package/dist/albums/update-album-by-id.d.ts.map +1 -0
  44. package/dist/albums/update-album-by-id.js +46 -0
  45. package/dist/albums/update-album-by-id.js.map +1 -0
  46. package/dist/albums/update-album-partial.d.ts +18 -0
  47. package/dist/albums/update-album-partial.d.ts.map +1 -0
  48. package/dist/albums/update-album-partial.js +49 -0
  49. package/dist/albums/update-album-partial.js.map +1 -0
  50. package/dist/albums/update-album.d.ts +19 -0
  51. package/dist/albums/update-album.d.ts.map +1 -0
  52. package/dist/albums/update-album.js +46 -0
  53. package/dist/albums/update-album.js.map +1 -0
  54. package/dist/comments/create-new-comment.d.ts +17 -0
  55. package/dist/comments/create-new-comment.d.ts.map +1 -0
  56. package/dist/comments/create-new-comment.js +45 -0
  57. package/dist/comments/create-new-comment.js.map +1 -0
  58. package/dist/comments/delete-comment.d.ts +9 -0
  59. package/dist/comments/delete-comment.d.ts.map +1 -0
  60. package/dist/comments/delete-comment.js +36 -0
  61. package/dist/comments/delete-comment.js.map +1 -0
  62. package/dist/comments/get-all-comments.d.ts +8 -0
  63. package/dist/comments/get-all-comments.d.ts.map +1 -0
  64. package/dist/comments/get-all-comments.js +38 -0
  65. package/dist/comments/get-all-comments.js.map +1 -0
  66. package/dist/comments/get-comment-by-id.d.ts +14 -0
  67. package/dist/comments/get-comment-by-id.d.ts.map +1 -0
  68. package/dist/comments/get-comment-by-id.js +40 -0
  69. package/dist/comments/get-comment-by-id.js.map +1 -0
  70. package/dist/comments/test/create-new-comment.test.d.ts +2 -0
  71. package/dist/comments/test/create-new-comment.test.d.ts.map +1 -0
  72. package/dist/comments/test/create-new-comment.test.js +121 -0
  73. package/dist/comments/test/create-new-comment.test.js.map +1 -0
  74. package/dist/comments/test/delete-comment.test.d.ts +2 -0
  75. package/dist/comments/test/delete-comment.test.d.ts.map +1 -0
  76. package/dist/comments/test/delete-comment.test.js +59 -0
  77. package/dist/comments/test/delete-comment.test.js.map +1 -0
  78. package/dist/comments/test/get-all-comments.test.d.ts +2 -0
  79. package/dist/comments/test/get-all-comments.test.d.ts.map +1 -0
  80. package/dist/comments/test/get-all-comments.test.js +85 -0
  81. package/dist/comments/test/get-all-comments.test.js.map +1 -0
  82. package/dist/comments/test/get-comment-by-id.test.d.ts +2 -0
  83. package/dist/comments/test/get-comment-by-id.test.d.ts.map +1 -0
  84. package/dist/comments/test/get-comment-by-id.test.js +89 -0
  85. package/dist/comments/test/get-comment-by-id.test.js.map +1 -0
  86. package/dist/comments/test/update-comment-partial.test.d.ts +2 -0
  87. package/dist/comments/test/update-comment-partial.test.d.ts.map +1 -0
  88. package/dist/comments/test/update-comment-partial.test.js +105 -0
  89. package/dist/comments/test/update-comment-partial.test.js.map +1 -0
  90. package/dist/comments/test/update-comment.test.d.ts +2 -0
  91. package/dist/comments/test/update-comment.test.d.ts.map +1 -0
  92. package/dist/comments/test/update-comment.test.js +138 -0
  93. package/dist/comments/test/update-comment.test.js.map +1 -0
  94. package/dist/comments/update-comment-by-id.d.ts +21 -0
  95. package/dist/comments/update-comment-by-id.d.ts.map +1 -0
  96. package/dist/comments/update-comment-by-id.js +46 -0
  97. package/dist/comments/update-comment-by-id.js.map +1 -0
  98. package/dist/comments/update-comment-partial.d.ts +20 -0
  99. package/dist/comments/update-comment-partial.d.ts.map +1 -0
  100. package/dist/comments/update-comment-partial.js +49 -0
  101. package/dist/comments/update-comment-partial.js.map +1 -0
  102. package/dist/comments/update-comment.d.ts +21 -0
  103. package/dist/comments/update-comment.d.ts.map +1 -0
  104. package/dist/comments/update-comment.js +46 -0
  105. package/dist/comments/update-comment.js.map +1 -0
  106. package/dist/index.d.ts +39 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/index.js +56 -0
  109. package/dist/index.js.map +1 -0
  110. package/dist/photos/create-new-photo.d.ts +17 -0
  111. package/dist/photos/create-new-photo.d.ts.map +1 -0
  112. package/dist/photos/create-new-photo.js +45 -0
  113. package/dist/photos/create-new-photo.js.map +1 -0
  114. package/dist/photos/delete-photo.d.ts +9 -0
  115. package/dist/photos/delete-photo.d.ts.map +1 -0
  116. package/dist/photos/delete-photo.js +36 -0
  117. package/dist/photos/delete-photo.js.map +1 -0
  118. package/dist/photos/get-all-photos.d.ts +8 -0
  119. package/dist/photos/get-all-photos.d.ts.map +1 -0
  120. package/dist/photos/get-all-photos.js +38 -0
  121. package/dist/photos/get-all-photos.js.map +1 -0
  122. package/dist/photos/get-photo-by-id.d.ts +14 -0
  123. package/dist/photos/get-photo-by-id.d.ts.map +1 -0
  124. package/dist/photos/get-photo-by-id.js +40 -0
  125. package/dist/photos/get-photo-by-id.js.map +1 -0
  126. package/dist/photos/test/create-new-photo.test.d.ts +2 -0
  127. package/dist/photos/test/create-new-photo.test.d.ts.map +1 -0
  128. package/dist/photos/test/create-new-photo.test.js +121 -0
  129. package/dist/photos/test/create-new-photo.test.js.map +1 -0
  130. package/dist/photos/test/delete-photo.test.d.ts +2 -0
  131. package/dist/photos/test/delete-photo.test.d.ts.map +1 -0
  132. package/dist/photos/test/delete-photo.test.js +59 -0
  133. package/dist/photos/test/delete-photo.test.js.map +1 -0
  134. package/dist/photos/test/get-all-photos.test.d.ts +2 -0
  135. package/dist/photos/test/get-all-photos.test.d.ts.map +1 -0
  136. package/dist/photos/test/get-all-photos.test.js +85 -0
  137. package/dist/photos/test/get-all-photos.test.js.map +1 -0
  138. package/dist/photos/test/get-photo-by-id.test.d.ts +2 -0
  139. package/dist/photos/test/get-photo-by-id.test.d.ts.map +1 -0
  140. package/dist/photos/test/get-photo-by-id.test.js +89 -0
  141. package/dist/photos/test/get-photo-by-id.test.js.map +1 -0
  142. package/dist/photos/test/update-photo-partial.test.d.ts +2 -0
  143. package/dist/photos/test/update-photo-partial.test.d.ts.map +1 -0
  144. package/dist/photos/test/update-photo-partial.test.js +105 -0
  145. package/dist/photos/test/update-photo-partial.test.js.map +1 -0
  146. package/dist/photos/test/update-photo.test.d.ts +2 -0
  147. package/dist/photos/test/update-photo.test.d.ts.map +1 -0
  148. package/dist/photos/test/update-photo.test.js +138 -0
  149. package/dist/photos/test/update-photo.test.js.map +1 -0
  150. package/dist/photos/update-photo-by-id.d.ts +21 -0
  151. package/dist/photos/update-photo-by-id.d.ts.map +1 -0
  152. package/dist/photos/update-photo-by-id.js +46 -0
  153. package/dist/photos/update-photo-by-id.js.map +1 -0
  154. package/dist/photos/update-photo-partial.d.ts +20 -0
  155. package/dist/photos/update-photo-partial.d.ts.map +1 -0
  156. package/dist/photos/update-photo-partial.js +49 -0
  157. package/dist/photos/update-photo-partial.js.map +1 -0
  158. package/dist/photos/update-photo.d.ts +21 -0
  159. package/dist/photos/update-photo.d.ts.map +1 -0
  160. package/dist/photos/update-photo.js +46 -0
  161. package/dist/photos/update-photo.js.map +1 -0
  162. package/dist/posts/create-new-post.d.ts +16 -0
  163. package/dist/posts/create-new-post.d.ts.map +1 -0
  164. package/dist/posts/create-new-post.js +45 -0
  165. package/dist/posts/create-new-post.js.map +1 -0
  166. package/dist/posts/delete-post.d.ts +9 -0
  167. package/dist/posts/delete-post.d.ts.map +1 -0
  168. package/dist/posts/delete-post.js +36 -0
  169. package/dist/posts/delete-post.js.map +1 -0
  170. package/dist/posts/get-all-posts.d.ts +8 -0
  171. package/dist/posts/get-all-posts.d.ts.map +1 -0
  172. package/dist/posts/get-all-posts.js +38 -0
  173. package/dist/posts/get-all-posts.js.map +1 -0
  174. package/dist/posts/get-post-by-id.d.ts +14 -0
  175. package/dist/posts/get-post-by-id.d.ts.map +1 -0
  176. package/dist/posts/get-post-by-id.js +40 -0
  177. package/dist/posts/get-post-by-id.js.map +1 -0
  178. package/dist/posts/test/create-new-post.test.d.ts +2 -0
  179. package/dist/posts/test/create-new-post.test.d.ts.map +1 -0
  180. package/dist/posts/test/create-new-post.test.js +106 -0
  181. package/dist/posts/test/create-new-post.test.js.map +1 -0
  182. package/dist/posts/test/delete-post.test.d.ts +2 -0
  183. package/dist/posts/test/delete-post.test.d.ts.map +1 -0
  184. package/dist/posts/test/delete-post.test.js +59 -0
  185. package/dist/posts/test/delete-post.test.js.map +1 -0
  186. package/dist/posts/test/get-all-posts.test.d.ts +2 -0
  187. package/dist/posts/test/get-all-posts.test.d.ts.map +1 -0
  188. package/dist/posts/test/get-all-posts.test.js +73 -0
  189. package/dist/posts/test/get-all-posts.test.js.map +1 -0
  190. package/dist/posts/test/get-post-by-id.test.d.ts +2 -0
  191. package/dist/posts/test/get-post-by-id.test.d.ts.map +1 -0
  192. package/dist/posts/test/get-post-by-id.test.js +88 -0
  193. package/dist/posts/test/get-post-by-id.test.js.map +1 -0
  194. package/dist/posts/test/update-post-partial.test.d.ts +2 -0
  195. package/dist/posts/test/update-post-partial.test.d.ts.map +1 -0
  196. package/dist/posts/test/update-post-partial.test.js +104 -0
  197. package/dist/posts/test/update-post-partial.test.js.map +1 -0
  198. package/dist/posts/test/update-post.test.d.ts +2 -0
  199. package/dist/posts/test/update-post.test.d.ts.map +1 -0
  200. package/dist/posts/test/update-post.test.js +132 -0
  201. package/dist/posts/test/update-post.test.js.map +1 -0
  202. package/dist/posts/update-post-by-id.d.ts +20 -0
  203. package/dist/posts/update-post-by-id.d.ts.map +1 -0
  204. package/dist/posts/update-post-by-id.js +46 -0
  205. package/dist/posts/update-post-by-id.js.map +1 -0
  206. package/dist/posts/update-post-partial.d.ts +19 -0
  207. package/dist/posts/update-post-partial.d.ts.map +1 -0
  208. package/dist/posts/update-post-partial.js +49 -0
  209. package/dist/posts/update-post-partial.js.map +1 -0
  210. package/dist/posts/update-post.d.ts +20 -0
  211. package/dist/posts/update-post.d.ts.map +1 -0
  212. package/dist/posts/update-post.js +46 -0
  213. package/dist/posts/update-post.js.map +1 -0
  214. package/dist/shared/api-base-url.d.ts +2 -0
  215. package/dist/shared/api-base-url.d.ts.map +1 -0
  216. package/dist/shared/api-base-url.js +6 -0
  217. package/dist/shared/api-base-url.js.map +1 -0
  218. package/dist/shared/test/index.test.d.ts +2 -0
  219. package/dist/shared/test/index.test.d.ts.map +1 -0
  220. package/dist/shared/test/index.test.js +10 -0
  221. package/dist/shared/test/index.test.js.map +1 -0
  222. package/dist/todos/create-new-todo.d.ts +16 -0
  223. package/dist/todos/create-new-todo.d.ts.map +1 -0
  224. package/dist/todos/create-new-todo.js +45 -0
  225. package/dist/todos/create-new-todo.js.map +1 -0
  226. package/dist/todos/delete-todo.d.ts +9 -0
  227. package/dist/todos/delete-todo.d.ts.map +1 -0
  228. package/dist/todos/delete-todo.js +36 -0
  229. package/dist/todos/delete-todo.js.map +1 -0
  230. package/dist/todos/get-all-todos.d.ts +8 -0
  231. package/dist/todos/get-all-todos.d.ts.map +1 -0
  232. package/dist/todos/get-all-todos.js +38 -0
  233. package/dist/todos/get-all-todos.js.map +1 -0
  234. package/dist/todos/get-todo-by-id.d.ts +14 -0
  235. package/dist/todos/get-todo-by-id.d.ts.map +1 -0
  236. package/dist/todos/get-todo-by-id.js +40 -0
  237. package/dist/todos/get-todo-by-id.js.map +1 -0
  238. package/dist/todos/test/create-new-todo.test.d.ts +2 -0
  239. package/dist/todos/test/create-new-todo.test.d.ts.map +1 -0
  240. package/dist/todos/test/create-new-todo.test.js +106 -0
  241. package/dist/todos/test/create-new-todo.test.js.map +1 -0
  242. package/dist/todos/test/delete-todo.test.d.ts +2 -0
  243. package/dist/todos/test/delete-todo.test.d.ts.map +1 -0
  244. package/dist/todos/test/delete-todo.test.js +59 -0
  245. package/dist/todos/test/delete-todo.test.js.map +1 -0
  246. package/dist/todos/test/get-all-todos.test.d.ts +2 -0
  247. package/dist/todos/test/get-all-todos.test.d.ts.map +1 -0
  248. package/dist/todos/test/get-all-todos.test.js +73 -0
  249. package/dist/todos/test/get-all-todos.test.js.map +1 -0
  250. package/dist/todos/test/get-todo-by-id.test.d.ts +2 -0
  251. package/dist/todos/test/get-todo-by-id.test.d.ts.map +1 -0
  252. package/dist/todos/test/get-todo-by-id.test.js +88 -0
  253. package/dist/todos/test/get-todo-by-id.test.js.map +1 -0
  254. package/dist/todos/test/update-todo-partial.test.d.ts +2 -0
  255. package/dist/todos/test/update-todo-partial.test.d.ts.map +1 -0
  256. package/dist/todos/test/update-todo-partial.test.js +104 -0
  257. package/dist/todos/test/update-todo-partial.test.js.map +1 -0
  258. package/dist/todos/test/update-todo.test.d.ts +2 -0
  259. package/dist/todos/test/update-todo.test.d.ts.map +1 -0
  260. package/dist/todos/test/update-todo.test.js +132 -0
  261. package/dist/todos/test/update-todo.test.js.map +1 -0
  262. package/dist/todos/update-todo-by-id.d.ts +20 -0
  263. package/dist/todos/update-todo-by-id.d.ts.map +1 -0
  264. package/dist/todos/update-todo-by-id.js +46 -0
  265. package/dist/todos/update-todo-by-id.js.map +1 -0
  266. package/dist/todos/update-todo-partial.d.ts +19 -0
  267. package/dist/todos/update-todo-partial.d.ts.map +1 -0
  268. package/dist/todos/update-todo-partial.js +49 -0
  269. package/dist/todos/update-todo-partial.js.map +1 -0
  270. package/dist/todos/update-todo.d.ts +20 -0
  271. package/dist/todos/update-todo.d.ts.map +1 -0
  272. package/dist/todos/update-todo.js +46 -0
  273. package/dist/todos/update-todo.js.map +1 -0
  274. package/dist/types/index.d.ts +17 -0
  275. package/dist/types/index.d.ts.map +1 -0
  276. package/dist/types/index.js +3 -0
  277. package/dist/types/index.js.map +1 -0
  278. package/dist/users/create-new-user.d.ts +16 -0
  279. package/dist/users/create-new-user.d.ts.map +1 -0
  280. package/dist/users/create-new-user.js +45 -0
  281. package/dist/users/create-new-user.js.map +1 -0
  282. package/dist/users/delete-user.d.ts +9 -0
  283. package/dist/users/delete-user.d.ts.map +1 -0
  284. package/dist/users/delete-user.js +36 -0
  285. package/dist/users/delete-user.js.map +1 -0
  286. package/dist/users/get-all-users.d.ts +8 -0
  287. package/dist/users/get-all-users.d.ts.map +1 -0
  288. package/dist/users/get-all-users.js +38 -0
  289. package/dist/users/get-all-users.js.map +1 -0
  290. package/dist/users/get-user-by-id.d.ts +14 -0
  291. package/dist/users/get-user-by-id.d.ts.map +1 -0
  292. package/dist/users/get-user-by-id.js +40 -0
  293. package/dist/users/get-user-by-id.js.map +1 -0
  294. package/dist/users/test/create-new-user.test.d.ts +2 -0
  295. package/dist/users/test/create-new-user.test.d.ts.map +1 -0
  296. package/dist/users/test/create-new-user.test.js +106 -0
  297. package/dist/users/test/create-new-user.test.js.map +1 -0
  298. package/dist/users/test/delete-user.test.d.ts +2 -0
  299. package/dist/users/test/delete-user.test.d.ts.map +1 -0
  300. package/dist/users/test/delete-user.test.js +59 -0
  301. package/dist/users/test/delete-user.test.js.map +1 -0
  302. package/dist/users/test/get-all-users.test.d.ts +2 -0
  303. package/dist/users/test/get-all-users.test.d.ts.map +1 -0
  304. package/dist/users/test/get-all-users.test.js +73 -0
  305. package/dist/users/test/get-all-users.test.js.map +1 -0
  306. package/dist/users/test/get-user-by-id.test.d.ts +2 -0
  307. package/dist/users/test/get-user-by-id.test.d.ts.map +1 -0
  308. package/dist/users/test/get-user-by-id.test.js +88 -0
  309. package/dist/users/test/get-user-by-id.test.js.map +1 -0
  310. package/dist/users/test/update-user-partial.test.d.ts +2 -0
  311. package/dist/users/test/update-user-partial.test.d.ts.map +1 -0
  312. package/dist/users/test/update-user-partial.test.js +104 -0
  313. package/dist/users/test/update-user-partial.test.js.map +1 -0
  314. package/dist/users/test/update-user.test.d.ts +2 -0
  315. package/dist/users/test/update-user.test.d.ts.map +1 -0
  316. package/dist/users/test/update-user.test.js +188 -0
  317. package/dist/users/test/update-user.test.js.map +1 -0
  318. package/dist/users/update-user-partial.d.ts +36 -0
  319. package/dist/users/update-user-partial.d.ts.map +1 -0
  320. package/dist/users/update-user-partial.js +49 -0
  321. package/dist/users/update-user-partial.js.map +1 -0
  322. package/dist/users/update-user.d.ts +37 -0
  323. package/dist/users/update-user.d.ts.map +1 -0
  324. package/dist/users/update-user.js +46 -0
  325. package/dist/users/update-user.js.map +1 -0
  326. package/package.json +58 -0
package/README.md ADDED
@@ -0,0 +1,541 @@
1
+ ![json-placeholder-api-client-banner](https://github.com/user-attachments/assets/a26a1bfd-58d1-4e7b-b83e-b003d774cd40)
2
+
3
+ # jsonplaceholder-API-client
4
+
5
+ This package is a TypeScript-first wrapper around the [JSONPlaceholder](https://jsonplaceholder.typicode.com/) fake REST API. It provides clean, predictable helper functions for working with common resources such as posts, comments, albums, photos, todos, and users, covering the full CRUD surface `(GET, POST, PUT, PATCH, DELETE)`.
6
+ <br/><br/>
7
+ 🌱 The goal of this library is not to replace JSONPlaceholder itself, but to offer a **Developer-Friendly SDK** with consistent response shapes, sensible defaults, and strong TypeScript typing — making it useful for learning, prototyping, demos, and testing frontend or SDK patterns.
8
+
9
+ ### 📻 **Beta Release**
10
+ To encourage developers to download and utilize this package that is made available for your benefit. Additionally, you can post feedback on any issues you encounter so that the needed corrections can be done. Official release will be announced in sometime.
11
+
12
+ ### 📦 Installation
13
+
14
+ ```console
15
+ npm install --save jsonplaceholder-api-client
16
+ ```
17
+
18
+ ### 👁 Quick Start
19
+
20
+ ```javascript
21
+ /* node modules */
22
+ import { getAllPosts } from 'jsonplaceholder-api-client';
23
+
24
+ /* fn */
25
+ async function quickStart() {
26
+ const response = await getAllPosts();
27
+ console.log(response);
28
+ }
29
+
30
+ /* call */
31
+ await quickStart();
32
+
33
+ /* Sample Response Schema
34
+ {
35
+ code: "api-ok",
36
+ message: "No error encountered",
37
+ payload: ...
38
+ }
39
+ */
40
+ ```
41
+
42
+ ### 🎲 Features
43
+
44
+ 1. Built with strong TypeScript typings from the ground up.
45
+ 2. Full REST surface for common JSONPlaceholder resources: `GET, POST, PUT, PATCH and DELETE`.
46
+ 3. Uniform response structures to simplify error handling and data access.
47
+ 4. ID-based fetches normalize empty API responses, making missing resources easy to handle.
48
+ 5. Clean, intention-revealing functions.
49
+ 6. Uses the native fetch API without adding unnecessary runtime dependencies.
50
+ 7. Designed for demos, tutorials, SDK experiments and frontend testing.
51
+
52
+ ### 📖 What is JSONPlaceholder?
53
+
54
+ JSONPlaceholder is a free, public fake REST API that provides realistic but non-persistent data for common resources such as posts, comments, users, albums, photos, and todos. This is widely used by developers to practice working with REST APIs.
55
+
56
+ ### 💡 Why This Exists?
57
+
58
+ JSONPlaceholder is an excellent fake REST API, but using it directly often means repeating the same boilerplate: manual fetch calls, ad-hoc response handling, loose typing, and inconsistent patterns across resources.<br/>
59
+ This package exists to solve that by providing:
60
+
61
+ 1. **Strong TypeScript typings** for all resources and operations
62
+ 2. **Consistent, predictable response shapes** across every endpoint
63
+ 3. **Clear, intention-revealing helper functions** instead of raw HTTP calls
64
+ <br/>
65
+ The goal is not abstraction for abstraction’s sake, but to make working with JSONPlaceholder feel more structured, expressive, and developer-friendly — especially for learning, prototyping, demos, and SDK experimentation.
66
+
67
+ ### 💻 Usage
68
+
69
+ 📁 Resource Name: Albums<br/>
70
+
71
+ 1. Get All Albums
72
+
73
+ ```javascript
74
+ import { getAllAlbums } from 'jsonplaceholder-api-client';
75
+ const response = await getAllAlbums();
76
+ /* Returns an array of album objects */
77
+ ```
78
+
79
+ 2. Get Album By ID
80
+
81
+ ```javascript
82
+ import { getAlbumById } from 'jsonplaceholder-api-client';
83
+ const response = await getAlbumById({ id: number });
84
+ /* If the album does not exist, album is returned as null */
85
+ ```
86
+
87
+ 3. Create Album
88
+
89
+ ```javascript
90
+ import { createNewAlbum } from 'jsonplaceholder-api-client';
91
+ const response = await createNewAlbum({
92
+ title: string,
93
+ userId: number,
94
+ });
95
+ /* All required fields. Changes not persisted (JSONPlaceholder behavior) */
96
+ ```
97
+
98
+ 4. Update Album
99
+
100
+ ```javascript
101
+ import { updateAlbum } from 'jsonplaceholder-api-client';
102
+ const response = await updateAlbum({
103
+ id: number,
104
+ data: { id: number, title: string, userId: number },
105
+ });
106
+ /* All required fields. Changes not persisted (JSONPlaceholder behavior) */
107
+ ```
108
+
109
+ 5. Partial Update Album
110
+
111
+ ```javascript
112
+ import { updateAlbumPartial } from "jsonplaceholder-api-client";
113
+ const response = await updateAlbumPartial({
114
+ id: number,
115
+ data: { title?: string, userId?: number }
116
+ });
117
+ /* Need to give atleast 1 of the data fields. */
118
+ /* Changes are not persisted (JSONPlaceholder behavior). */
119
+ ```
120
+
121
+ 6. Delete Album
122
+
123
+ ```javascript
124
+ import { deleteAlbum } from 'jsonplaceholder-api-client';
125
+ const response = await deleteAlbum({ id: number });
126
+ /* Mock delete endpoint. Changes are not persisted (JSONPlaceholder behavior). */
127
+ ```
128
+
129
+ <br/>📁 Resource Name: Comments<br/>
130
+
131
+ 1. Get All Comments
132
+
133
+ ```javascript
134
+ import { getAllComments } from 'jsonplaceholder-api-client';
135
+ const response = await getAllComments();
136
+ /* Returns an array of comment objects */
137
+ ```
138
+
139
+ 2. Get Comment By ID
140
+
141
+ ```javascript
142
+ import { getCommentById } from 'jsonplaceholder-api-client';
143
+ const response = await getCommentById({ id: number });
144
+ /* If the comment does not exist, comment is returned as null */
145
+ ```
146
+
147
+ 3. Create Comment
148
+
149
+ ```javascript
150
+ import { createNewComment } from 'jsonplaceholder-api-client';
151
+ const response = await createNewComment({
152
+ postId: number,
153
+ name: string,
154
+ email: string,
155
+ body: string,
156
+ });
157
+ /* All required fields. Changes not persisted (JSONPlaceholder behavior) */
158
+ ```
159
+
160
+ 4. Update Comment
161
+
162
+ ```javascript
163
+ import { updateComment } from 'jsonplaceholder-api-client';
164
+ const response = await updateComment({
165
+ id: number,
166
+ data: {
167
+ id: number,
168
+ postId: number,
169
+ name: string,
170
+ email: string,
171
+ body: string,
172
+ },
173
+ });
174
+ /* All required fields. Changes not persisted (JSONPlaceholder behavior) */
175
+ ```
176
+
177
+ 5. Partial Update Comment
178
+
179
+ ```javascript
180
+ import { updateCommentPartial } from "jsonplaceholder-api-client";
181
+ const response = await updateCommentPartial({
182
+ id: number,
183
+ data: {postId?: number, name?: string, email?: string, body?: string}
184
+ });
185
+ /* Need to give atleast 1 of the data fields. */
186
+ /* Changes are not persisted (JSONPlaceholder behavior). */
187
+ ```
188
+
189
+ 6. Delete Comment
190
+
191
+ ```javascript
192
+ import { deleteComment } from 'jsonplaceholder-api-client';
193
+ const response = await deleteComment({ id: number });
194
+ /* Mock delete endpoint. Changes are not persisted (JSONPlaceholder behavior). */
195
+ ```
196
+
197
+ <br/>📁 Resource Name: Photos<br/>
198
+
199
+ 1. Get All Photos
200
+
201
+ ```javascript
202
+ import { getAllPhotos } from 'jsonplaceholder-api-client';
203
+ const response = await getAllPhotos();
204
+ /* Returns an array of photo objects */
205
+ ```
206
+
207
+ 2. Get Photo By ID
208
+
209
+ ```javascript
210
+ import { getPhotoById } from 'jsonplaceholder-api-client';
211
+ const response = await getPhotoById({ id: number });
212
+ /* If the photo does not exist, photo is returned as null */
213
+ ```
214
+
215
+ 3. Create Photo
216
+
217
+ ```javascript
218
+ import { createNewPhoto } from 'jsonplaceholder-api-client';
219
+ const response = await createNewPhoto({
220
+ albumId: number,
221
+ title: string,
222
+ url: string,
223
+ thumbnailUrl: string,
224
+ });
225
+ /* All required fields. Changes not persisted (JSONPlaceholder behavior) */
226
+ ```
227
+
228
+ 4. Update Photo
229
+
230
+ ```javascript
231
+ import { updatePhoto } from 'jsonplaceholder-api-client';
232
+ const response = await updatePhoto({
233
+ id: number,
234
+ data: {
235
+ id: number,
236
+ albumId: number,
237
+ title: string,
238
+ url: string,
239
+ thumbnailUrl: string,
240
+ },
241
+ });
242
+ /* All required fields. Changes not persisted (JSONPlaceholder behavior) */
243
+ ```
244
+
245
+ 5. Partial Update Photo
246
+
247
+ ```javascript
248
+ import { updatePhotoPartial } from "jsonplaceholder-api-client";
249
+ const response = await updatePhotoPartial({
250
+ id: number,
251
+ data: { albumId?: number, title?: string, url?: string, thumbnailUrl?: string }
252
+ });
253
+ /* Need to give atleast 1 of the data fields. */
254
+ /* Changes are not persisted (JSONPlaceholder behavior). */
255
+ ```
256
+
257
+ 6. Delete Photo
258
+
259
+ ```javascript
260
+ import { deletePhoto } from 'jsonplaceholder-api-client';
261
+ const response = await deletePhoto({ id: number });
262
+ /* Mock delete endpoint. Changes are not persisted (JSONPlaceholder behavior). */
263
+ ```
264
+
265
+ <br/>📁 Resource Name: Posts<br/>
266
+
267
+ 1. Get All Posts
268
+
269
+ ```javascript
270
+ import { getAllPosts } from 'jsonplaceholder-api-client';
271
+ const response = await getAllPosts();
272
+ /* Returns an array of post objects */
273
+ ```
274
+
275
+ 2. Get Post By ID
276
+
277
+ ```javascript
278
+ import { getPostById } from 'jsonplaceholder-api-client';
279
+ const response = await getPostById({ id: number });
280
+ /* If the post does not exist, post is returned as null */
281
+ ```
282
+
283
+ 3. Create Post
284
+
285
+ ```javascript
286
+ import { createNewPost } from 'jsonplaceholder-api-client';
287
+ const response = await createNewPost({
288
+ userId: number,
289
+ title: string,
290
+ body: string,
291
+ });
292
+ /* All required fields. Changes not persisted (JSONPlaceholder behavior) */
293
+ ```
294
+
295
+ 4. Update Post
296
+
297
+ ```javascript
298
+ import { updatePost } from 'jsonplaceholder-api-client';
299
+ const response = await updatePost({
300
+ id: number,
301
+ data: { id: number, userId: number, title: string, body: string },
302
+ });
303
+ /* All required fields. Changes not persisted (JSONPlaceholder behavior) */
304
+ ```
305
+
306
+ 5. Partial Update Post
307
+
308
+ ```javascript
309
+ import { updatePostPartial } from "jsonplaceholder-api-client";
310
+ const response = await updatePostPartial({
311
+ id: number,
312
+ data: { userId?: number, title?: string, body?: string }
313
+ });
314
+ /* Need to give atleast 1 of the data fields. */
315
+ /* Changes are not persisted (JSONPlaceholder behavior). */
316
+ ```
317
+
318
+ 6. Delete Post
319
+
320
+ ```javascript
321
+ import { deletePost } from 'jsonplaceholder-api-client';
322
+ const response = await deletePost({ id: number });
323
+ /* Mock delete endpoint. Changes are not persisted (JSONPlaceholder behavior). */
324
+ ```
325
+
326
+ <br/>📁 Resource Name: Todos<br/>
327
+
328
+ 1. Get All Todos
329
+
330
+ ```javascript
331
+ import { getAllTodos } from 'jsonplaceholder-api-client';
332
+ const response = await getAllTodos();
333
+ /* Returns an array of todo objects */
334
+ ```
335
+
336
+ 2. Get Todo By ID
337
+
338
+ ```javascript
339
+ import { getTodoById } from 'jsonplaceholder-api-client';
340
+ const response = await getTodoById({ id: number });
341
+ /* If the todo does not exist, todo is returned as null */
342
+ ```
343
+
344
+ 3. Create Todo
345
+
346
+ ```javascript
347
+ import { createNewTodo } from 'jsonplaceholder-api-client';
348
+ const response = await createNewTodo({
349
+ userId: number,
350
+ title: string,
351
+ completed: boolean,
352
+ });
353
+ /* All required fields. Changes not persisted (JSONPlaceholder behavior) */
354
+ ```
355
+
356
+ 4. Update Todo
357
+
358
+ ```javascript
359
+ import { updateTodo } from 'jsonplaceholder-api-client';
360
+ const response = await updateTodo({
361
+ id: number,
362
+ data: { id: number, userId: number, title: string, completed: boolean },
363
+ });
364
+ /* All required fields. Changes not persisted (JSONPlaceholder behavior) */
365
+ ```
366
+
367
+ 5. Partial Update Todo
368
+
369
+ ```javascript
370
+ import { updateTodoPartial } from "jsonplaceholder-api-client";
371
+ const response = await updateTodoPartial({
372
+ id: number,
373
+ data: { userId?: number, title?: string, completed?: boolean }
374
+ });
375
+ /* Need to give atleast 1 of the data fields. */
376
+ /* Changes are not persisted (JSONPlaceholder behavior). */
377
+ ```
378
+
379
+ 6. Delete Todo
380
+
381
+ ```javascript
382
+ import { deleteTodo } from 'jsonplaceholder-api-client';
383
+ const response = await deleteTodo({ id: number });
384
+ /* Mock delete endpoint. Changes are not persisted (JSONPlaceholder behavior). */
385
+ ```
386
+
387
+ <br/>📁 Resource Name: Users<br/>
388
+
389
+ 1. Get All Users
390
+
391
+ ```javascript
392
+ import { getAllUsers } from 'jsonplaceholder-api-client';
393
+ const response = await getAllUsers();
394
+ /* Returns an array of user objects */
395
+ ```
396
+
397
+ 2. Get User By ID
398
+
399
+ ```javascript
400
+ import { getUserById } from 'jsonplaceholder-api-client';
401
+ const response = await getUserById({ id: number });
402
+ /* If the user does not exist, user is returned as null */
403
+ ```
404
+
405
+ 3. Create User
406
+
407
+ ```javascript
408
+ import { createNewUser } from 'jsonplaceholder-api-client';
409
+ const response = await createNewUser({
410
+ name: string,
411
+ username: string,
412
+ email: string,
413
+ });
414
+ /* All required fields. Changes not persisted (JSONPlaceholder behavior) */
415
+ ```
416
+
417
+ 4. Update User
418
+
419
+ ```javascript
420
+ import { updateUser } from "jsonplaceholder-api-client";
421
+ const response = await updateUser({
422
+ id: number,
423
+ data: {
424
+ id: number
425
+ name: string
426
+ username: string
427
+ email: string
428
+ address: {
429
+ street: string
430
+ suite: string
431
+ city: string
432
+ zipcode: string
433
+ geo: {
434
+ lat: string
435
+ lng: string
436
+ }
437
+ }
438
+ phone: string
439
+ website: string
440
+ company: {
441
+ name: string
442
+ catchPhrase: string
443
+ bs: string
444
+ }
445
+ }
446
+ });
447
+ /* All required fields. Changes not persisted (JSONPlaceholder behavior) */
448
+ ```
449
+
450
+ 5. Partial Update User
451
+
452
+ ```javascript
453
+ import { updateUserPartial } from "jsonplaceholder-api-client";
454
+ const response = await updateUserPartial({
455
+ id: number,
456
+ data: {
457
+ name?: string
458
+ username?: string
459
+ email?: string
460
+ address?: {
461
+ street?: string
462
+ suite?: string
463
+ city?: string
464
+ zipcode?: string
465
+ geo?: {
466
+ lat?: string
467
+ lng?: string
468
+ }
469
+ }
470
+ phone?: string
471
+ website?: string
472
+ company?: {
473
+ name?: string
474
+ catchPhrase?: string
475
+ bs?: string
476
+ }
477
+ }
478
+ });
479
+ /* Need to give atleast 1 of the data fields. */
480
+ /* Changes are not persisted (JSONPlaceholder behavior). */
481
+ ```
482
+
483
+ 6. Delete User
484
+
485
+ ```javascript
486
+ import { deleteUser } from 'jsonplaceholder-api-client';
487
+ const response = await deleteUser({ id: number });
488
+ /* Mock delete endpoint. Changes are not persisted (JSONPlaceholder behavior). */
489
+ ```
490
+
491
+ ### 📗 Test Coverage
492
+
493
+ ```
494
+ PASS src/todos/test/update-todo.test.ts
495
+ PASS src/users/test/update-user.test.ts
496
+ PASS src/users/test/get-all-users.test.ts
497
+ PASS src/users/test/get-user-by-id.test.ts
498
+ PASS src/users/test/update-user-partial.test.ts
499
+ PASS src/users/test/create-new-user.test.ts
500
+ PASS src/users/test/delete-user.test.ts
501
+ PASS src/albums/test/update-album-partial.test.ts
502
+ PASS src/photos/test/delete-photo.test.ts
503
+ PASS src/comments/test/create-new-comment.test.ts
504
+ PASS src/posts/test/update-post.test.ts
505
+ PASS src/albums/test/get-album-by-id.test.ts
506
+ PASS src/comments/test/update-comment-partial.test.ts
507
+ PASS src/posts/test/get-post-by-id.test.ts
508
+ PASS src/photos/test/update-photo.test.ts
509
+ PASS src/comments/test/get-comment-by-id.test.ts
510
+ PASS src/posts/test/update-post-partial.test.ts
511
+ PASS src/photos/test/update-photo-partial.test.ts
512
+ PASS src/photos/test/get-photo-by-id.test.ts
513
+ PASS src/comments/test/delete-comment.test.ts
514
+ PASS src/photos/test/get-all-photos.test.ts
515
+ PASS src/photos/test/create-new-photo.test.ts
516
+ PASS src/shared/test/index.test.ts
517
+ PASS src/albums/test/delete-album.test.ts
518
+ PASS src/comments/test/update-comment.test.ts
519
+ PASS src/albums/test/update-album.test.ts
520
+ PASS src/posts/test/get-all-posts.test.ts
521
+ PASS src/posts/test/create-new-post.test.ts
522
+ PASS src/posts/test/delete-post.test.ts
523
+ PASS src/comments/test/get-all-comments.test.ts
524
+ PASS src/albums/test/get-all-albums.test.ts
525
+ PASS src/albums/test/create-new-album.test.ts
526
+ PASS src/todos/test/create-new-todo.test.ts
527
+ PASS src/todos/test/update-todo-partial.test.ts
528
+ PASS src/todos/test/get-all-todos.test.ts
529
+ PASS src/todos/test/delete-todo.test.ts
530
+ PASS src/todos/test/get-todo-by-id.test.ts
531
+ ```
532
+ If you would like to see a detailed report of the unit tests created and their respective file coverage, visit this [test-coverage](https://github.com/NPM-Workbench/jsonplaceholder-api-client/tree/master/test-report-md) link.
533
+
534
+ ### 📘 Contributing
535
+
536
+ Contributions, suggestions, and improvements are welcome.<br/>
537
+ Feel free to open issues or pull requests.
538
+
539
+ ### ❤️ Support
540
+
541
+ Like this project? Support it with a github star, it would mean a lot to me! Cheers and Happy Coding.
@@ -0,0 +1,15 @@
1
+ import { TAPIResponse, TNewAlbum } from "../types/index.js";
2
+ type TInput = {
3
+ title: string;
4
+ userId: number;
5
+ };
6
+ type TNewAlbumRes = TAPIResponse & {
7
+ payload: null | {
8
+ created: boolean;
9
+ album: null | TNewAlbum;
10
+ };
11
+ };
12
+ declare function createNewAlbum(props: TInput): Promise<TNewAlbumRes>;
13
+ export type { TNewAlbumRes };
14
+ export { createNewAlbum };
15
+ //# sourceMappingURL=create-new-album.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-new-album.d.ts","sourceRoot":"","sources":["../../src/albums/create-new-album.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAI5D,KAAK,MAAM,GAAG;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC;AAC9C,KAAK,YAAY,GAAG,YAAY,GAAG;IACjC,OAAO,EAAE,IAAI,GAAG;QACd,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,IAAI,GAAG,SAAS,CAAA;KACxB,CAAA;CACF,CAAC;AAGF,iBAAe,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAoClE;AAGD,YAAY,EAAE,YAAY,EAAE,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createNewAlbum = createNewAlbum;
4
+ const api_base_url_js_1 = require("../shared/api-base-url.js");
5
+ /* module */
6
+ async function createNewAlbum(props) {
7
+ try {
8
+ if (typeof fetch !== "function") {
9
+ throw new Error("[Bad]: Global Fetch Not Available");
10
+ }
11
+ else {
12
+ /* setup and fetch */
13
+ const API_URL = `${api_base_url_js_1.API_BASE_URL}/albums`;
14
+ const response = await fetch(API_URL, {
15
+ method: "POST",
16
+ body: JSON.stringify(props),
17
+ headers: {
18
+ 'Content-type': 'application/json; charset=UTF-8',
19
+ }
20
+ });
21
+ /* check and return */
22
+ if (!response.ok) {
23
+ throw new Error(`HTTP error! status: ${response.status}`);
24
+ }
25
+ else {
26
+ const album = await response.json();
27
+ const payload = Object.keys(album).length <= 0 ? { created: false, album: null } : { created: true, album };
28
+ return {
29
+ code: "api-ok",
30
+ message: "No errors encountered. Check payload.",
31
+ payload
32
+ };
33
+ }
34
+ }
35
+ }
36
+ catch (error) {
37
+ console.error(error);
38
+ return {
39
+ code: "api-fail",
40
+ message: "[Bad]: Create New Album. Encountered Error.",
41
+ payload: { created: false, album: null }
42
+ };
43
+ }
44
+ }
45
+ //# sourceMappingURL=create-new-album.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-new-album.js","sourceRoot":"","sources":["../../src/albums/create-new-album.ts"],"names":[],"mappings":";;AAsDS,wCAAc;AApDvB,+DAAyD;AAWzD,YAAY;AACZ,KAAK,UAAU,cAAc,CAAC,KAAa;IACzC,IAAI,CAAC;QACH,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,MAAM,OAAO,GAAG,GAAG,8BAAY,SAAS,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;gBACpC,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC3B,OAAO,EAAE;oBACP,cAAc,EAAE,iCAAiC;iBAClD;aACF,CAAC,CAAC;YAEH,sBAAsB;YACtB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC;gBACxG,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,uCAAuC;oBAChD,OAAO;iBACR,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,6CAA6C;YACtD,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;SACzC,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { TAPIResponse } from "../types/index.js";
2
+ type TInput = {
3
+ id: number;
4
+ };
5
+ type TAlbumDeleteRes = TAPIResponse;
6
+ declare function deleteAlbum(props: TInput): Promise<TAlbumDeleteRes>;
7
+ export type { TAlbumDeleteRes };
8
+ export { deleteAlbum };
9
+ //# sourceMappingURL=delete-album.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-album.d.ts","sourceRoot":"","sources":["../../src/albums/delete-album.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,KAAK,MAAM,GAAG;IAAC,EAAE,EAAE,MAAM,CAAA;CAAC,CAAC;AAC3B,KAAK,eAAe,GAAG,YAAY,CAAC;AAGpC,iBAAe,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA2BlE;AAGD,YAAY,EAAE,eAAe,EAAE,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteAlbum = deleteAlbum;
4
+ const api_base_url_js_1 = require("../shared/api-base-url.js");
5
+ /* module */
6
+ async function deleteAlbum(props) {
7
+ try {
8
+ if (typeof fetch !== "function") {
9
+ throw new Error("[Bad]: Global Fetch Not Available");
10
+ }
11
+ else {
12
+ /* setup and fetch */
13
+ const { id } = props;
14
+ const API_URL = `${api_base_url_js_1.API_BASE_URL}/albums/${id}`;
15
+ const response = await fetch(API_URL, { method: "DELETE" });
16
+ /* check and return */
17
+ if (!response.ok) {
18
+ throw new Error(`HTTP error! status: ${response.status}`);
19
+ }
20
+ else {
21
+ return {
22
+ code: "api-ok",
23
+ message: "Album Deleted Successfully. No Errors Encountered",
24
+ };
25
+ }
26
+ }
27
+ }
28
+ catch (error) {
29
+ console.error(error);
30
+ return {
31
+ code: "api-fail",
32
+ message: "[Bad]: Delete Album. Encountered Error.",
33
+ };
34
+ }
35
+ }
36
+ //# sourceMappingURL=delete-album.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-album.js","sourceRoot":"","sources":["../../src/albums/delete-album.ts"],"names":[],"mappings":";;AAwCS,kCAAW;AAtCpB,+DAAyD;AAMzD,YAAY;AACZ,KAAK,UAAU,WAAW,CAAC,KAAa;IACtC,IAAI,CAAC;QACH,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YACrB,MAAM,OAAO,GAAG,GAAG,8BAAY,WAAW,EAAE,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,CAAC,CAAC;YAE1D,sBAAsB;YACtB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,mDAAmD;iBAC7D,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,yCAAyC;SACnD,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { TAPIResponse, TAlbum } from "../types/index.js";
2
+ type TInput = {
3
+ id: number;
4
+ };
5
+ type TAlbumsRes = TAPIResponse & {
6
+ payload: null | {
7
+ found: boolean;
8
+ album: null | TAlbum;
9
+ };
10
+ };
11
+ declare function getAlbumById(props: TInput): Promise<TAlbumsRes>;
12
+ export type { TAlbumsRes };
13
+ export { getAlbumById };
14
+ //# sourceMappingURL=get-album-by-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-album-by-id.d.ts","sourceRoot":"","sources":["../../src/albums/get-album-by-id.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIzD,KAAK,MAAM,GAAG;IAAC,EAAE,EAAE,MAAM,CAAA;CAAC,CAAC;AAC3B,KAAK,UAAU,GAAG,YAAY,GAAG;IAC/B,OAAO,EAAE,IAAI,GAAG;QACd,KAAK,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,IAAI,GAAG,MAAM,CAAA;KACrB,CAAA;CACF,CAAC;AAGF,iBAAe,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA+B9D;AAGD,YAAY,EAAE,UAAU,EAAE,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,CAAC"}