reqforge 0.3.0 → 0.5.0

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.
@@ -8,7 +8,10 @@
8
8
  "Bash(git commit *)",
9
9
  "Bash(git push *)",
10
10
  "Bash(npm publish *)",
11
- "Bash(npm view *)"
11
+ "Bash(npm view *)",
12
+ "Bash(git checkout *)",
13
+ "Bash(curl *)",
14
+ "Bash(git pull *)"
12
15
  ]
13
16
  }
14
17
  }
package/README.md CHANGED
@@ -11,17 +11,41 @@ npm install reqforge
11
11
  ## Quick Start
12
12
 
13
13
  ```javascript
14
- const { config, utils } = require('reqforge');
14
+ const { config, utils, request, Logger } = require('reqforge');
15
15
 
16
16
  // Get the base URL for API requests
17
17
  const baseURL = config.getBaseURL();
18
18
  console.log(baseURL); // https://api.example.com/v1
19
19
 
20
- // Build URL with query parameters
21
- const url = utils.buildURL('https://api.example.com/v1/users', { page: 1, limit: 10 });
22
- console.log(url); // https://api.example.com/v1/users?page=1&limit=10
20
+ // Make a GET request
21
+ request.get('/users')
22
+ .then(res => res.json())
23
+ .then(data => console.log(data));
24
+
25
+ // Use custom logger
26
+ const logger = new Logger('[MyApp]');
27
+ logger.info('Application started');
23
28
  ```
24
29
 
30
+ ## Request Methods
31
+
32
+ The `request` module provides:
33
+
34
+ - `sendRequest(endpoint, data, options)` - Generic request method
35
+ - `get(endpoint, options)` - GET request
36
+ - `post(endpoint, data, options)` - POST request
37
+ - `put(endpoint, data, options)` - PUT request
38
+ - `del(endpoint, options)` - DELETE request
39
+
40
+ ## Logger
41
+
42
+ The `Logger` class provides:
43
+
44
+ - `log(message)` - Log a message
45
+ - `info(message)` - Log an info message
46
+ - `warn(message)` - Log a warning message
47
+ - `error(message)` - Log an error message
48
+
25
49
  ## Configuration
26
50
 
27
51
  The `config` module provides:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reqforge",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "A lightweight, flexible HTTP client library with request interception, automatic retry, and logging capabilities, designed for modern web applications.",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
package/src/index.js CHANGED
@@ -5,8 +5,12 @@
5
5
 
6
6
  const config = require('./config');
7
7
  const utils = require('./utils');
8
+ const request = require('./request');
9
+ const Logger = require('./logger');
8
10
 
9
11
  module.exports = {
10
12
  config,
11
- utils
13
+ utils,
14
+ request,
15
+ Logger
12
16
  };
package/src/logger.js ADDED
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Logging module for ReqForge
3
+ * @module logger
4
+ */
5
+
6
+ /**
7
+ * Logger class for logging messages with different levels
8
+ */
9
+ class Logger {
10
+ /**
11
+ * Create a Logger instance
12
+ * @param {string} prefix - Prefix for log messages
13
+ */
14
+ constructor(prefix = '[ReqForge]') {
15
+ this.prefix = prefix;
16
+ }
17
+
18
+ /**
19
+ * Log a message
20
+ * @param {string} message - Message to log
21
+ */
22
+ log(message) {
23
+ console.log(`${this.prefix} ${message}`);
24
+ }
25
+
26
+ /**
27
+ * Log an info message
28
+ * @param {string} message - Message to log
29
+ */
30
+ info(message) {
31
+ console.info(`${this.prefix} INFO: ${message}`);
32
+ }
33
+
34
+ /**
35
+ * Log a warning message
36
+ * @param {string} message - Message to log
37
+ */
38
+ warn(message) {
39
+ console.warn(`${this.prefix} WARN: ${message}`);
40
+ }
41
+
42
+ /**
43
+ * Log an error message
44
+ * @param {string} message - Message to log
45
+ */
46
+ error(message) {
47
+ console.error(`${this.prefix} ERROR: ${message}`);
48
+ }
49
+ }
50
+
51
+ module.exports = Logger;
package/src/request.js ADDED
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Core request module for ReqForge
3
+ * @module request
4
+ */
5
+
6
+ const { getBaseURL } = require('./config');
7
+ const Logger = require('./logger');
8
+
9
+ const logger = new Logger();
10
+
11
+ /**
12
+ * Send HTTP request
13
+ * @param {string} endpoint - API endpoint
14
+ * @param {Object} data - Request body data
15
+ * @param {Object} options - Request options
16
+ * @returns {Promise<Response>} Fetch response promise
17
+ */
18
+ function sendRequest(endpoint, data, options = {}) {
19
+ const url = getBaseURL() + endpoint;
20
+ logger.log(`Request: ${options.method || 'GET'} ${url}`);
21
+
22
+ const fetchOptions = {
23
+ method: options.method || 'GET',
24
+ headers: options.headers || {}
25
+ };
26
+
27
+ if (data) {
28
+ fetchOptions.body = JSON.stringify(data);
29
+ fetchOptions.headers['Content-Type'] = 'application/json';
30
+ }
31
+
32
+ return fetch(url, fetchOptions);
33
+ }
34
+
35
+ /**
36
+ * GET request helper
37
+ * @param {string} endpoint - API endpoint
38
+ * @param {Object} options - Request options
39
+ * @returns {Promise<Response>} Fetch response promise
40
+ */
41
+ function get(endpoint, options = {}) {
42
+ return sendRequest(endpoint, null, { ...options, method: 'GET' });
43
+ }
44
+
45
+ /**
46
+ * POST request helper
47
+ * @param {string} endpoint - API endpoint
48
+ * @param {Object} data - Request body data
49
+ * @param {Object} options - Request options
50
+ * @returns {Promise<Response>} Fetch response promise
51
+ */
52
+ function post(endpoint, data, options = {}) {
53
+ return sendRequest(endpoint, data, { ...options, method: 'POST' });
54
+ }
55
+
56
+ /**
57
+ * PUT request helper
58
+ * @param {string} endpoint - API endpoint
59
+ * @param {Object} data - Request body data
60
+ * @param {Object} options - Request options
61
+ * @returns {Promise<Response>} Fetch response promise
62
+ */
63
+ function put(endpoint, data, options = {}) {
64
+ return sendRequest(endpoint, data, { ...options, method: 'PUT' });
65
+ }
66
+
67
+ /**
68
+ * DELETE request helper
69
+ * @param {string} endpoint - API endpoint
70
+ * @param {Object} options - Request options
71
+ * @returns {Promise<Response>} Fetch response promise
72
+ */
73
+ function del(endpoint, options = {}) {
74
+ return sendRequest(endpoint, null, { ...options, method: 'DELETE' });
75
+ }
76
+
77
+ module.exports = {
78
+ sendRequest,
79
+ get,
80
+ post,
81
+ put,
82
+ del
83
+ };