import { getRequest } from '../nodejs/request.mjs';
import { getUtil } from '../nodejs/util.mjs';

/**
 * 获取 Promise 化的 HTTP POST 请求方法
 * 将 request.post 方法转换为返回 Promise 的异步函数
 * @returns Promise 化的 POST 请求函数
 * @example
 * ```ts
 * const post = nodePost();
 * const response = await post({
 *   url: 'https://api.example.com/data',
 *   json: { key: 'value' }
 * });
 * ```
 */
function nodePost() {
  var util = getUtil();
  var request = getRequest();
  var post = util.promisify(request.post);
  return post;
}
/**
 * 获取 Promise 化的 HTTP GET 请求方法
 * 将 request.get 方法转换为返回 Promise 的异步函数
 * @returns Promise 化的 GET 请求函数
 * @example
 * ```ts
 * const get = nodeGet();
 * const response = await get('https://api.example.com/data');
 * ```
 */
function nodeGet() {
  var util = getUtil();
  var request = getRequest();
  var get = util.promisify(request.get);
  return get;
}
/**
 * 获取 Promise 化的 HTTP PUT 请求方法
 * 将 request.put 方法转换为返回 Promise 的异步函数
 * @returns Promise 化的 PUT 请求函数
 * @example
 * ```ts
 * const put = nodePut();
 * const response = await put({
 *   url: 'https://api.example.com/data/123',
 *   json: { key: 'updated value' }
 * });
 * ```
 */
function nodePut() {
  var util = getUtil();
  var request = getRequest();
  var get = util.promisify(request.put);
  return get;
}

export { nodeGet, nodePost, nodePut };
