@looker/sdk-rtl
Version:
Looker SDK Runtime Library
103 lines • 5.65 kB
JavaScript
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
import { StatusCode, addQueryParams, agentPrefix, mergeOptions, LookerAppId, sdkTimeout } from './transport';
export class BaseTransport {
constructor(options) {
this.options = options;
_defineProperty(this, "observer", undefined);
this.options = options;
}
ok(res) {
return res.statusCode >= StatusCode.OK && res.statusCode <= StatusCode.IMUsed;
}
makeUrl(path, options, queryParams) {
var base = options.base_url;
if (!path.match(/^(http:\/\/|https:\/\/)/gi)) {
path = "".concat(base).concat(path);
}
path = addQueryParams(path, queryParams);
return path;
}
initRequest(method, path, body, authenticator, options) {
var _this = this;
return _asyncToGenerator(function* () {
var _options, _options2, _options$headers;
var agentTag = ((_options = options) === null || _options === void 0 ? void 0 : _options.agentTag) || _this.options.agentTag || agentPrefix;
var agent = {
headers: {
[LookerAppId]: agentTag
}
};
options = mergeOptions(_objectSpread(_objectSpread({}, _this.options), agent), (_options2 = options) !== null && _options2 !== void 0 ? _options2 : {});
var headers = (_options$headers = options.headers) !== null && _options$headers !== void 0 ? _options$headers : {};
if (!body) {
body = undefined;
} else {
if (typeof body !== 'string') {
var isUrlEncoded = body instanceof URLSearchParams;
if (!isUrlEncoded) {
isUrlEncoded = Object.keys(headers).some(k => {
var _headers$k;
return k.toLowerCase() === 'content-type' && ((_headers$k = headers[k]) === null || _headers$k === void 0 ? void 0 : _headers$k.toString().includes('application/x-www-form-urlencoded'));
});
}
if (isUrlEncoded) {
if (body instanceof URLSearchParams) {
body = body.toString();
} else {
var params = new URLSearchParams();
Object.entries(body).forEach(_ref => {
var [k, v] = _ref;
if (v !== undefined && v !== null) {
params.append(k, v instanceof Date ? v.toISOString() : typeof v === 'object' ? JSON.stringify(v) : v.toString());
}
});
body = params.toString();
}
if (!headers['Content-Type']) {
headers['Content-Type'] = 'application/x-www-form-urlencoded';
}
} else {
body = JSON.stringify(body);
headers['Content-Type'] = 'application/json';
}
}
}
var signaller;
if (AbortSignal.timeout) {
var ms = sdkTimeout(options) * 1000;
var _signaller = AbortSignal.timeout(ms);
if ('signal' in options && options.signal) {
if (AbortSignal.any) {
_signaller = AbortSignal.any([options.signal, _signaller]);
} else {
console.debug('Cannot combine cancel signal and timeout. AbortSignal.any is not available in this transport.');
console.debug({
AbortSignal
});
}
} else {
console.debug('AbortSignal.timeout is not defined. Timeout will use default behavior');
}
}
var props = {
body,
credentials: 'same-origin',
headers,
method,
url: path,
signal: signaller
};
if (authenticator) {
props = yield authenticator(props);
}
return props;
})();
}
}
//# sourceMappingURL=baseTransport.js.map