rcs-sdk
Version:
封装客户端与平台间的相互调用功能。
84 lines • 3.09 kB
JavaScript
;
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.request = exports.getMockData = exports.hostUrl = exports.uuid = exports.runAsMock = exports.newSdkResult = exports.inBrowser = void 0;
const nanoid_1 = require("nanoid");
const request_1 = require("./request");
exports.request = request_1.default;
function inBrowser() {
return typeof window !== 'undefined' && typeof location !== 'undefined';
}
exports.inBrowser = inBrowser;
function newSdkResult(event, data = null, errCode = 0, errMsg = '', operationID = '') {
let result = {
event,
errCode,
errMsg,
data,
operationID,
};
return result;
}
exports.newSdkResult = newSdkResult;
function runAsMock(name) {
if (inBrowser()) {
let MOCK = window['MOCK'];
return MOCK && MOCK.split(',').includes(name);
}
else {
let { MOCK } = process.env;
return MOCK && MOCK.split(',').includes(name);
}
}
exports.runAsMock = runAsMock;
function uuid() {
return (0, nanoid_1.nanoid)();
}
exports.uuid = uuid;
function hostUrl() {
if (typeof location !== 'undefined') {
let { protocol, hostname, port } = location;
return port
? `${protocol}//${hostname}:${port}`
: `${protocol}//${hostname}`;
}
throw Error('只能在浏览器中调用');
}
exports.hostUrl = hostUrl;
function getMockData(filepath) {
return __awaiter(this, void 0, void 0, function* () {
if (!filepath || typeof filepath !== 'string')
return null;
let data;
if (inBrowser()) {
data = yield request_1.default.get(filepath);
if (typeof data === 'string') {
data = data.replace('${localhost}', hostUrl());
data = JSON.parse(data);
}
else if (typeof data === 'object') {
let str = JSON.stringify(data);
str = str.replace('${localhost}', hostUrl());
data = JSON.parse(str);
}
}
else {
const fs = require('fs');
const path = require('path');
const fullpath = path.resolve(filepath);
data = fs.readFileSync(fullpath, 'utf-8');
data = JSON.parse(data);
}
return data;
});
}
exports.getMockData = getMockData;
//# sourceMappingURL=index.js.map