minapp-fetch
Version:
234 lines (233 loc) • 8.93 kB
JavaScript
;
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;
};