UNPKG

meta-contract-debug

Version:

Meta Contract SDK

115 lines (114 loc) 4.29 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ServerNet = void 0; const _1 = require("."); const Utils = require("./utils"); const node_fetch_1 = require("node-fetch"); var HttpMethod; (function (HttpMethod) { HttpMethod["GET"] = "GET"; HttpMethod["POST"] = "POST"; })(HttpMethod || (HttpMethod = {})); class ServerNet { static httpGet(url, params, cb, config) { let str = ''; let cnt = 0; for (var id in params) { if (cnt != 0) str += '&'; str += id + '=' + params[id]; cnt++; } if (str) { url += '?' + str; } config = config || {}; let headers = config.headers || {}; let timeout = config.timeout || _1.Net.timeout; let reqData = { uri: url, method: HttpMethod.GET, timeout, gzip: true, headers, }; if (typeof cb === 'function') { this.handleCallback((result) => Utils.invokeCallback(cb, null, result), (err) => Utils.invokeCallback(cb, err), reqData); return; } return new Promise((resolve, reject) => { this.handleCallback(resolve, reject, reqData); }); } static httpPost(url, params, cb, config) { return __awaiter(this, void 0, void 0, function* () { let postData; config = config || {}; let headers = config.headers || {}; let timeout = config.timeout || _1.Net.timeout; headers['content-type'] = headers['content-type'] || 'application/json'; if (headers['content-type'] == 'application/x-www-form-urlencoded') { let arr = []; for (var id in params) { arr.push(`${id}=${params[id]}`); } postData = arr.join('&'); } else if (headers['content-type'] == 'text/plain') { postData = params; } else { postData = JSON.stringify(params); } if (headers['content-encoding'] == 'gzip') { postData = yield Utils.gzip(Buffer.from(postData)); } const reqData = { uri: url, method: HttpMethod.POST, body: postData, headers: headers, timeout: timeout, gzip: true, }; if (typeof cb === 'function') { this.handleCallback((result) => Utils.invokeCallback(cb, null, result), (err) => Utils.invokeCallback(cb, err), reqData); return; } return new Promise((resolve, reject) => { this.handleCallback(resolve, reject, reqData); }); }); } } exports.ServerNet = ServerNet; ServerNet.handleCallback = (resolve, reject, reqData) => { const url = reqData.uri; const options = reqData; options.compress = reqData.gzip; delete options.uri; delete options.gzip; (0, node_fetch_1.default)(url, options) .then((res) => { if (res.status >= 200 && res.status < 300) { resolve(res.json()); } else { console.log('request failed.', reqData); reject(new Error(`RequestError: statuCode:${res.statusCode} statusMessage:${res.statusMessage} body:${res.json()}`)); } }) .catch((err) => { console.log('request failed.', reqData); reject(err); }); };