UNPKG

minapp-fetch

Version:
234 lines (233 loc) 8.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.changeFindGeoJson = exports.changeSetManyParams = exports.changeSetParams = exports.cloneDeep = exports.isNumber = exports.isArray = exports.isJson = exports.getBaaSF = void 0; const constants_1 = require("../constants/constants"); const error_1 = require("../constants/error"); //根据平台,返回请求方式, BaaS/axios function getBaaSF() { let tempMinapp = { BaaS_F: '', minapp: 'zx_cloud' }; if (typeof (window) !== 'undefined') { if (window.MINAPP) { tempMinapp.minapp = window.MINAPP; switch (tempMinapp.minapp) { case constants_1.PLATFORM_NAME.ZX_WEB: tempMinapp.BaaS_F = window.BaaS; break; case constants_1.PLATFORM_NAME.ZX_OP: tempMinapp.BaaS_F = require('axios').create({ withCredentials: true }); break; case constants_1.PLATFORM_NAME.ZX_WEBAPI: let options = window.MINAPP_OPTIONS; if (!options) throw new Error(error_1.WEBAPI_OPTIONS_ERROR); let Header = { 'Content-Type': 'application/json', 'X-Hydrogen-Client-ID': options.clientID, }; if (options.accessToken) Header['Authorization'] = `Hydrogen-r1 ${options.accessToken}`; if (options.env) Header['X-Hydrogen-Env-ID'] = options.env; tempMinapp.BaaS_F = require('axios').create({ withCredentials: true }); tempMinapp.options = { RequestBase: options.host || `https://${options.clientID}.myminapp.com`, Header: Header }; break; default: break; } } } if (typeof (global) !== 'undefined') { if (global.MINAPP) { tempMinapp.minapp = global.MINAPP; switch (tempMinapp.minapp) { case constants_1.PLATFORM_NAME.ZX_CLOUD: // @ts-ignore:无法找到BaaS的错误 tempMinapp.BaaS_F = BaaS; break; case constants_1.PLATFORM_NAME.ZX_RN: tempMinapp.BaaS_F = global.BaaS; break; case constants_1.PLATFORM_NAME.ZX_WEBAPI: let options = global.MINAPP_OPTIONS; if (!options) throw new Error(error_1.WEBAPI_OPTIONS_ERROR); let Header = { 'Content-Type': 'application/json', 'X-Hydrogen-Client-ID': options.clientID, }; if (options.accessToken) Header['Authorization'] = `Hydrogen-r1 ${options.accessToken}`; if (options.env) Header['X-Hydrogen-Env-ID'] = options.env; tempMinapp.BaaS_F = require('axios').create({ withCredentials: true }); tempMinapp.options = { RequestBase: options.host || `https://${options.clientID}.myminapp.com`, Header: Header }; break; case constants_1.PLATFORM_NAME.WX_CLOUD: tempMinapp.BaaS_F = global.wxCloud; break; case constants_1.PLATFORM_NAME.UNI_CLOUD: tempMinapp.BaaS_F = global.uniCloud; break; case constants_1.PLATFORM_NAME.MONGODB: tempMinapp.BaaS_F = global.MongoDB; if (!global.MINAPP_OPTIONS) throw new Error(error_1.WEBAPI_OPTIONS_ERROR); tempMinapp.options = global.MINAPP_OPTIONS; break; case constants_1.PLATFORM_NAME.MYSQL: tempMinapp.BaaS_F = global.MySQL; if (!global.MINAPP_OPTIONS) throw new Error(error_1.WEBAPI_OPTIONS_ERROR); tempMinapp.options = global.MINAPP_OPTIONS; default: break; } } } if (typeof (my) !== 'undefined') { if (my.MINAPP) { tempMinapp.minapp = my.MINAPP; tempMinapp.BaaS_F = my.BaaS; } } if (typeof (jd) !== 'undefined') { if (jd.MINAPP) { tempMinapp.minapp = jd.MINAPP; tempMinapp.BaaS_F = jd.BaaS; } } if (typeof (qq) !== 'undefined') { if (qq.MINAPP) { tempMinapp.minapp = qq.MINAPP; tempMinapp.BaaS_F = qq.BaaS; } } if (typeof (swan) !== 'undefined') { if (swan.MINAPP) { tempMinapp.minapp = swan.MINAPP; tempMinapp.BaaS_F = swan.BaaS; } } if (typeof (tt) !== 'undefined') { if (tt.MINAPP) { tempMinapp.minapp = tt.MINAPP; tempMinapp.BaaS_F = tt.BaaS; } } if (typeof (wx) !== 'undefined') { if (wx.MINAPP) { tempMinapp.minapp = wx.MINAPP; switch (tempMinapp.minapp) { case constants_1.PLATFORM_NAME.ZX_WEAPP: tempMinapp.BaaS_F = wx.BaaS; break; case constants_1.PLATFORM_NAME.WX_WEAPP: tempMinapp.BaaS_F = wx.cloud; break; default: break; } } } if (!tempMinapp.BaaS_F) throw new Error(error_1.PLATFORM_ERROR); return tempMinapp; } exports.getBaaSF = getBaaSF; exports.isJson = (value) => { return typeof (value) === 'object'; }; //isArray属于isJson exports.isArray = (value) => { return Object.prototype.toString.call(value) === '[object Array]'; }; exports.isNumber = (value) => { return typeof (value) === 'number' && !isNaN(value); }; // 检查polygon是否对 const isPolygonArr = (arr) => { if ((arr.length < 4) || (arr[0][0] !== arr[arr.length - 1][0]) || (arr[0][1] !== arr[arr.length - 1][1])) { throw new Error(error_1.GEO_POLYGON_ERROR); } else { return true; } }; // 目前仅支持对象或数字的拷贝 exports.cloneDeep = (source) => { if (source === undefined || source === null) return Object.create(null); const target = exports.isArray(source) ? [] : Object.create(Object.getPrototypeOf(source)); for (const keys in source) { if (source.hasOwnProperty(keys)) { if (source[keys] && typeof source[keys] === 'object') { target[keys] = exports.isArray(source[keys]) ? [] : {}; target[keys] = exports.cloneDeep(source[keys]); } else { target[keys] = source[keys]; } } } return target; }; // 返回新增的对象,geopoint化 exports.changeSetParams = (params) => { let changeData = params; for (let p in params) { if (exports.isArray(params[p])) { if (params[p][0] === 'geo') { if (exports.isArray(params[p][1])) { let temp = params[p]; temp.shift(); if (temp.length > 1) { isPolygonArr(temp); changeData[p] = exports.cloneDeep({ type: 'Polygon', coordinates: [temp] }); } else { changeData[p] = exports.cloneDeep({ type: 'Point', coordinates: temp[0] }); } } } } } return changeData; }; exports.changeSetManyParams = (params) => { let change = []; for (let i = 0; i < params.length; i++) { change.push(exports.changeSetParams(params[i])); } return change; }; // 返回geojson exports.changeFindGeoJson = (lparams) => { let temp = []; if (lparams[1] === 'within') { lparams.splice(0, 2); isPolygonArr(lparams); temp = exports.cloneDeep({ type: 'Polygon', coordinates: [lparams] }); } else { temp = exports.cloneDeep({ type: 'Point', coordinates: lparams[2] }); } return temp; };