UNPKG

rcs-sdk

Version:

封装客户端与平台间的相互调用功能。

84 lines 3.09 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.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