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.
- package/README.md +541 -0
- package/dist/albums/create-new-album.d.ts +15 -0
- package/dist/albums/create-new-album.d.ts.map +1 -0
- package/dist/albums/create-new-album.js +45 -0
- package/dist/albums/create-new-album.js.map +1 -0
- package/dist/albums/delete-album.d.ts +9 -0
- package/dist/albums/delete-album.d.ts.map +1 -0
- package/dist/albums/delete-album.js +36 -0
- package/dist/albums/delete-album.js.map +1 -0
- package/dist/albums/get-album-by-id.d.ts +14 -0
- package/dist/albums/get-album-by-id.d.ts.map +1 -0
- package/dist/albums/get-album-by-id.js +40 -0
- package/dist/albums/get-album-by-id.js.map +1 -0
- package/dist/albums/get-all-albums.d.ts +8 -0
- package/dist/albums/get-all-albums.d.ts.map +1 -0
- package/dist/albums/get-all-albums.js +38 -0
- package/dist/albums/get-all-albums.js.map +1 -0
- package/dist/albums/test/create-new-album.test.d.ts +2 -0
- package/dist/albums/test/create-new-album.test.d.ts.map +1 -0
- package/dist/albums/test/create-new-album.test.js +90 -0
- package/dist/albums/test/create-new-album.test.js.map +1 -0
- package/dist/albums/test/delete-album.test.d.ts +2 -0
- package/dist/albums/test/delete-album.test.d.ts.map +1 -0
- package/dist/albums/test/delete-album.test.js +59 -0
- package/dist/albums/test/delete-album.test.js.map +1 -0
- package/dist/albums/test/get-album-by-id.test.d.ts +2 -0
- package/dist/albums/test/get-album-by-id.test.d.ts.map +1 -0
- package/dist/albums/test/get-album-by-id.test.js +83 -0
- package/dist/albums/test/get-album-by-id.test.js.map +1 -0
- package/dist/albums/test/get-all-albums.test.d.ts +2 -0
- package/dist/albums/test/get-all-albums.test.d.ts.map +1 -0
- package/dist/albums/test/get-all-albums.test.js +73 -0
- package/dist/albums/test/get-all-albums.test.js.map +1 -0
- package/dist/albums/test/update-album-partial.test.d.ts +2 -0
- package/dist/albums/test/update-album-partial.test.d.ts.map +1 -0
- package/dist/albums/test/update-album-partial.test.js +99 -0
- package/dist/albums/test/update-album-partial.test.js.map +1 -0
- package/dist/albums/test/update-album.test.d.ts +2 -0
- package/dist/albums/test/update-album.test.d.ts.map +1 -0
- package/dist/albums/test/update-album.test.js +90 -0
- package/dist/albums/test/update-album.test.js.map +1 -0
- package/dist/albums/update-album-by-id.d.ts +19 -0
- package/dist/albums/update-album-by-id.d.ts.map +1 -0
- package/dist/albums/update-album-by-id.js +46 -0
- package/dist/albums/update-album-by-id.js.map +1 -0
- package/dist/albums/update-album-partial.d.ts +18 -0
- package/dist/albums/update-album-partial.d.ts.map +1 -0
- package/dist/albums/update-album-partial.js +49 -0
- package/dist/albums/update-album-partial.js.map +1 -0
- package/dist/albums/update-album.d.ts +19 -0
- package/dist/albums/update-album.d.ts.map +1 -0
- package/dist/albums/update-album.js +46 -0
- package/dist/albums/update-album.js.map +1 -0
- package/dist/comments/create-new-comment.d.ts +17 -0
- package/dist/comments/create-new-comment.d.ts.map +1 -0
- package/dist/comments/create-new-comment.js +45 -0
- package/dist/comments/create-new-comment.js.map +1 -0
- package/dist/comments/delete-comment.d.ts +9 -0
- package/dist/comments/delete-comment.d.ts.map +1 -0
- package/dist/comments/delete-comment.js +36 -0
- package/dist/comments/delete-comment.js.map +1 -0
- package/dist/comments/get-all-comments.d.ts +8 -0
- package/dist/comments/get-all-comments.d.ts.map +1 -0
- package/dist/comments/get-all-comments.js +38 -0
- package/dist/comments/get-all-comments.js.map +1 -0
- package/dist/comments/get-comment-by-id.d.ts +14 -0
- package/dist/comments/get-comment-by-id.d.ts.map +1 -0
- package/dist/comments/get-comment-by-id.js +40 -0
- package/dist/comments/get-comment-by-id.js.map +1 -0
- package/dist/comments/test/create-new-comment.test.d.ts +2 -0
- package/dist/comments/test/create-new-comment.test.d.ts.map +1 -0
- package/dist/comments/test/create-new-comment.test.js +121 -0
- package/dist/comments/test/create-new-comment.test.js.map +1 -0
- package/dist/comments/test/delete-comment.test.d.ts +2 -0
- package/dist/comments/test/delete-comment.test.d.ts.map +1 -0
- package/dist/comments/test/delete-comment.test.js +59 -0
- package/dist/comments/test/delete-comment.test.js.map +1 -0
- package/dist/comments/test/get-all-comments.test.d.ts +2 -0
- package/dist/comments/test/get-all-comments.test.d.ts.map +1 -0
- package/dist/comments/test/get-all-comments.test.js +85 -0
- package/dist/comments/test/get-all-comments.test.js.map +1 -0
- package/dist/comments/test/get-comment-by-id.test.d.ts +2 -0
- package/dist/comments/test/get-comment-by-id.test.d.ts.map +1 -0
- package/dist/comments/test/get-comment-by-id.test.js +89 -0
- package/dist/comments/test/get-comment-by-id.test.js.map +1 -0
- package/dist/comments/test/update-comment-partial.test.d.ts +2 -0
- package/dist/comments/test/update-comment-partial.test.d.ts.map +1 -0
- package/dist/comments/test/update-comment-partial.test.js +105 -0
- package/dist/comments/test/update-comment-partial.test.js.map +1 -0
- package/dist/comments/test/update-comment.test.d.ts +2 -0
- package/dist/comments/test/update-comment.test.d.ts.map +1 -0
- package/dist/comments/test/update-comment.test.js +138 -0
- package/dist/comments/test/update-comment.test.js.map +1 -0
- package/dist/comments/update-comment-by-id.d.ts +21 -0
- package/dist/comments/update-comment-by-id.d.ts.map +1 -0
- package/dist/comments/update-comment-by-id.js +46 -0
- package/dist/comments/update-comment-by-id.js.map +1 -0
- package/dist/comments/update-comment-partial.d.ts +20 -0
- package/dist/comments/update-comment-partial.d.ts.map +1 -0
- package/dist/comments/update-comment-partial.js +49 -0
- package/dist/comments/update-comment-partial.js.map +1 -0
- package/dist/comments/update-comment.d.ts +21 -0
- package/dist/comments/update-comment.d.ts.map +1 -0
- package/dist/comments/update-comment.js +46 -0
- package/dist/comments/update-comment.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/photos/create-new-photo.d.ts +17 -0
- package/dist/photos/create-new-photo.d.ts.map +1 -0
- package/dist/photos/create-new-photo.js +45 -0
- package/dist/photos/create-new-photo.js.map +1 -0
- package/dist/photos/delete-photo.d.ts +9 -0
- package/dist/photos/delete-photo.d.ts.map +1 -0
- package/dist/photos/delete-photo.js +36 -0
- package/dist/photos/delete-photo.js.map +1 -0
- package/dist/photos/get-all-photos.d.ts +8 -0
- package/dist/photos/get-all-photos.d.ts.map +1 -0
- package/dist/photos/get-all-photos.js +38 -0
- package/dist/photos/get-all-photos.js.map +1 -0
- package/dist/photos/get-photo-by-id.d.ts +14 -0
- package/dist/photos/get-photo-by-id.d.ts.map +1 -0
- package/dist/photos/get-photo-by-id.js +40 -0
- package/dist/photos/get-photo-by-id.js.map +1 -0
- package/dist/photos/test/create-new-photo.test.d.ts +2 -0
- package/dist/photos/test/create-new-photo.test.d.ts.map +1 -0
- package/dist/photos/test/create-new-photo.test.js +121 -0
- package/dist/photos/test/create-new-photo.test.js.map +1 -0
- package/dist/photos/test/delete-photo.test.d.ts +2 -0
- package/dist/photos/test/delete-photo.test.d.ts.map +1 -0
- package/dist/photos/test/delete-photo.test.js +59 -0
- package/dist/photos/test/delete-photo.test.js.map +1 -0
- package/dist/photos/test/get-all-photos.test.d.ts +2 -0
- package/dist/photos/test/get-all-photos.test.d.ts.map +1 -0
- package/dist/photos/test/get-all-photos.test.js +85 -0
- package/dist/photos/test/get-all-photos.test.js.map +1 -0
- package/dist/photos/test/get-photo-by-id.test.d.ts +2 -0
- package/dist/photos/test/get-photo-by-id.test.d.ts.map +1 -0
- package/dist/photos/test/get-photo-by-id.test.js +89 -0
- package/dist/photos/test/get-photo-by-id.test.js.map +1 -0
- package/dist/photos/test/update-photo-partial.test.d.ts +2 -0
- package/dist/photos/test/update-photo-partial.test.d.ts.map +1 -0
- package/dist/photos/test/update-photo-partial.test.js +105 -0
- package/dist/photos/test/update-photo-partial.test.js.map +1 -0
- package/dist/photos/test/update-photo.test.d.ts +2 -0
- package/dist/photos/test/update-photo.test.d.ts.map +1 -0
- package/dist/photos/test/update-photo.test.js +138 -0
- package/dist/photos/test/update-photo.test.js.map +1 -0
- package/dist/photos/update-photo-by-id.d.ts +21 -0
- package/dist/photos/update-photo-by-id.d.ts.map +1 -0
- package/dist/photos/update-photo-by-id.js +46 -0
- package/dist/photos/update-photo-by-id.js.map +1 -0
- package/dist/photos/update-photo-partial.d.ts +20 -0
- package/dist/photos/update-photo-partial.d.ts.map +1 -0
- package/dist/photos/update-photo-partial.js +49 -0
- package/dist/photos/update-photo-partial.js.map +1 -0
- package/dist/photos/update-photo.d.ts +21 -0
- package/dist/photos/update-photo.d.ts.map +1 -0
- package/dist/photos/update-photo.js +46 -0
- package/dist/photos/update-photo.js.map +1 -0
- package/dist/posts/create-new-post.d.ts +16 -0
- package/dist/posts/create-new-post.d.ts.map +1 -0
- package/dist/posts/create-new-post.js +45 -0
- package/dist/posts/create-new-post.js.map +1 -0
- package/dist/posts/delete-post.d.ts +9 -0
- package/dist/posts/delete-post.d.ts.map +1 -0
- package/dist/posts/delete-post.js +36 -0
- package/dist/posts/delete-post.js.map +1 -0
- package/dist/posts/get-all-posts.d.ts +8 -0
- package/dist/posts/get-all-posts.d.ts.map +1 -0
- package/dist/posts/get-all-posts.js +38 -0
- package/dist/posts/get-all-posts.js.map +1 -0
- package/dist/posts/get-post-by-id.d.ts +14 -0
- package/dist/posts/get-post-by-id.d.ts.map +1 -0
- package/dist/posts/get-post-by-id.js +40 -0
- package/dist/posts/get-post-by-id.js.map +1 -0
- package/dist/posts/test/create-new-post.test.d.ts +2 -0
- package/dist/posts/test/create-new-post.test.d.ts.map +1 -0
- package/dist/posts/test/create-new-post.test.js +106 -0
- package/dist/posts/test/create-new-post.test.js.map +1 -0
- package/dist/posts/test/delete-post.test.d.ts +2 -0
- package/dist/posts/test/delete-post.test.d.ts.map +1 -0
- package/dist/posts/test/delete-post.test.js +59 -0
- package/dist/posts/test/delete-post.test.js.map +1 -0
- package/dist/posts/test/get-all-posts.test.d.ts +2 -0
- package/dist/posts/test/get-all-posts.test.d.ts.map +1 -0
- package/dist/posts/test/get-all-posts.test.js +73 -0
- package/dist/posts/test/get-all-posts.test.js.map +1 -0
- package/dist/posts/test/get-post-by-id.test.d.ts +2 -0
- package/dist/posts/test/get-post-by-id.test.d.ts.map +1 -0
- package/dist/posts/test/get-post-by-id.test.js +88 -0
- package/dist/posts/test/get-post-by-id.test.js.map +1 -0
- package/dist/posts/test/update-post-partial.test.d.ts +2 -0
- package/dist/posts/test/update-post-partial.test.d.ts.map +1 -0
- package/dist/posts/test/update-post-partial.test.js +104 -0
- package/dist/posts/test/update-post-partial.test.js.map +1 -0
- package/dist/posts/test/update-post.test.d.ts +2 -0
- package/dist/posts/test/update-post.test.d.ts.map +1 -0
- package/dist/posts/test/update-post.test.js +132 -0
- package/dist/posts/test/update-post.test.js.map +1 -0
- package/dist/posts/update-post-by-id.d.ts +20 -0
- package/dist/posts/update-post-by-id.d.ts.map +1 -0
- package/dist/posts/update-post-by-id.js +46 -0
- package/dist/posts/update-post-by-id.js.map +1 -0
- package/dist/posts/update-post-partial.d.ts +19 -0
- package/dist/posts/update-post-partial.d.ts.map +1 -0
- package/dist/posts/update-post-partial.js +49 -0
- package/dist/posts/update-post-partial.js.map +1 -0
- package/dist/posts/update-post.d.ts +20 -0
- package/dist/posts/update-post.d.ts.map +1 -0
- package/dist/posts/update-post.js +46 -0
- package/dist/posts/update-post.js.map +1 -0
- package/dist/shared/api-base-url.d.ts +2 -0
- package/dist/shared/api-base-url.d.ts.map +1 -0
- package/dist/shared/api-base-url.js +6 -0
- package/dist/shared/api-base-url.js.map +1 -0
- package/dist/shared/test/index.test.d.ts +2 -0
- package/dist/shared/test/index.test.d.ts.map +1 -0
- package/dist/shared/test/index.test.js +10 -0
- package/dist/shared/test/index.test.js.map +1 -0
- package/dist/todos/create-new-todo.d.ts +16 -0
- package/dist/todos/create-new-todo.d.ts.map +1 -0
- package/dist/todos/create-new-todo.js +45 -0
- package/dist/todos/create-new-todo.js.map +1 -0
- package/dist/todos/delete-todo.d.ts +9 -0
- package/dist/todos/delete-todo.d.ts.map +1 -0
- package/dist/todos/delete-todo.js +36 -0
- package/dist/todos/delete-todo.js.map +1 -0
- package/dist/todos/get-all-todos.d.ts +8 -0
- package/dist/todos/get-all-todos.d.ts.map +1 -0
- package/dist/todos/get-all-todos.js +38 -0
- package/dist/todos/get-all-todos.js.map +1 -0
- package/dist/todos/get-todo-by-id.d.ts +14 -0
- package/dist/todos/get-todo-by-id.d.ts.map +1 -0
- package/dist/todos/get-todo-by-id.js +40 -0
- package/dist/todos/get-todo-by-id.js.map +1 -0
- package/dist/todos/test/create-new-todo.test.d.ts +2 -0
- package/dist/todos/test/create-new-todo.test.d.ts.map +1 -0
- package/dist/todos/test/create-new-todo.test.js +106 -0
- package/dist/todos/test/create-new-todo.test.js.map +1 -0
- package/dist/todos/test/delete-todo.test.d.ts +2 -0
- package/dist/todos/test/delete-todo.test.d.ts.map +1 -0
- package/dist/todos/test/delete-todo.test.js +59 -0
- package/dist/todos/test/delete-todo.test.js.map +1 -0
- package/dist/todos/test/get-all-todos.test.d.ts +2 -0
- package/dist/todos/test/get-all-todos.test.d.ts.map +1 -0
- package/dist/todos/test/get-all-todos.test.js +73 -0
- package/dist/todos/test/get-all-todos.test.js.map +1 -0
- package/dist/todos/test/get-todo-by-id.test.d.ts +2 -0
- package/dist/todos/test/get-todo-by-id.test.d.ts.map +1 -0
- package/dist/todos/test/get-todo-by-id.test.js +88 -0
- package/dist/todos/test/get-todo-by-id.test.js.map +1 -0
- package/dist/todos/test/update-todo-partial.test.d.ts +2 -0
- package/dist/todos/test/update-todo-partial.test.d.ts.map +1 -0
- package/dist/todos/test/update-todo-partial.test.js +104 -0
- package/dist/todos/test/update-todo-partial.test.js.map +1 -0
- package/dist/todos/test/update-todo.test.d.ts +2 -0
- package/dist/todos/test/update-todo.test.d.ts.map +1 -0
- package/dist/todos/test/update-todo.test.js +132 -0
- package/dist/todos/test/update-todo.test.js.map +1 -0
- package/dist/todos/update-todo-by-id.d.ts +20 -0
- package/dist/todos/update-todo-by-id.d.ts.map +1 -0
- package/dist/todos/update-todo-by-id.js +46 -0
- package/dist/todos/update-todo-by-id.js.map +1 -0
- package/dist/todos/update-todo-partial.d.ts +19 -0
- package/dist/todos/update-todo-partial.d.ts.map +1 -0
- package/dist/todos/update-todo-partial.js +49 -0
- package/dist/todos/update-todo-partial.js.map +1 -0
- package/dist/todos/update-todo.d.ts +20 -0
- package/dist/todos/update-todo.d.ts.map +1 -0
- package/dist/todos/update-todo.js +46 -0
- package/dist/todos/update-todo.js.map +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/users/create-new-user.d.ts +16 -0
- package/dist/users/create-new-user.d.ts.map +1 -0
- package/dist/users/create-new-user.js +45 -0
- package/dist/users/create-new-user.js.map +1 -0
- package/dist/users/delete-user.d.ts +9 -0
- package/dist/users/delete-user.d.ts.map +1 -0
- package/dist/users/delete-user.js +36 -0
- package/dist/users/delete-user.js.map +1 -0
- package/dist/users/get-all-users.d.ts +8 -0
- package/dist/users/get-all-users.d.ts.map +1 -0
- package/dist/users/get-all-users.js +38 -0
- package/dist/users/get-all-users.js.map +1 -0
- package/dist/users/get-user-by-id.d.ts +14 -0
- package/dist/users/get-user-by-id.d.ts.map +1 -0
- package/dist/users/get-user-by-id.js +40 -0
- package/dist/users/get-user-by-id.js.map +1 -0
- package/dist/users/test/create-new-user.test.d.ts +2 -0
- package/dist/users/test/create-new-user.test.d.ts.map +1 -0
- package/dist/users/test/create-new-user.test.js +106 -0
- package/dist/users/test/create-new-user.test.js.map +1 -0
- package/dist/users/test/delete-user.test.d.ts +2 -0
- package/dist/users/test/delete-user.test.d.ts.map +1 -0
- package/dist/users/test/delete-user.test.js +59 -0
- package/dist/users/test/delete-user.test.js.map +1 -0
- package/dist/users/test/get-all-users.test.d.ts +2 -0
- package/dist/users/test/get-all-users.test.d.ts.map +1 -0
- package/dist/users/test/get-all-users.test.js +73 -0
- package/dist/users/test/get-all-users.test.js.map +1 -0
- package/dist/users/test/get-user-by-id.test.d.ts +2 -0
- package/dist/users/test/get-user-by-id.test.d.ts.map +1 -0
- package/dist/users/test/get-user-by-id.test.js +88 -0
- package/dist/users/test/get-user-by-id.test.js.map +1 -0
- package/dist/users/test/update-user-partial.test.d.ts +2 -0
- package/dist/users/test/update-user-partial.test.d.ts.map +1 -0
- package/dist/users/test/update-user-partial.test.js +104 -0
- package/dist/users/test/update-user-partial.test.js.map +1 -0
- package/dist/users/test/update-user.test.d.ts +2 -0
- package/dist/users/test/update-user.test.d.ts.map +1 -0
- package/dist/users/test/update-user.test.js +188 -0
- package/dist/users/test/update-user.test.js.map +1 -0
- package/dist/users/update-user-partial.d.ts +36 -0
- package/dist/users/update-user-partial.d.ts.map +1 -0
- package/dist/users/update-user-partial.js +49 -0
- package/dist/users/update-user-partial.js.map +1 -0
- package/dist/users/update-user.d.ts +37 -0
- package/dist/users/update-user.d.ts.map +1 -0
- package/dist/users/update-user.js +46 -0
- package/dist/users/update-user.js.map +1 -0
- package/package.json +58 -0
package/README.md
ADDED
|
@@ -0,0 +1,541 @@
|
|
|
1
|
+

|
|
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"}
|