graphdb
Version:
Javascript client library supporting GraphDB and RDF4J REST API.
195 lines (183 loc) • 7.69 kB
JavaScript
;
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : 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); }
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
var ClientConfig = require('../http/client-config');
var RDFMimeType = require('../http/rdf-mime-type');
var ObjectUtils = require('../util/object-utils');
var defaultTimeout = 10000;
/**
* Configuration wrapper used for initialization of {@link BaseRepositoryClient}
* implementations.
*
* @class
* @extends ClientConfig
* @author Mihail Radkov
* @author Svilen Velikov
* @author Teodossi Dossev
*/
var RepositoryClientConfig = /*#__PURE__*/function (_ClientConfig) {
/**
* Repository client configuration constructor.
* Initializes [endpoints]{@link RepositoryClientConfig#endpoints} and
* sets configuration default values to
* [defaultRDFMimeType]{@link RepositoryClientConfig#defaultRDFMimeType},
* [readTimeout]{@link RepositoryClientConfig#readTimeout} and
* [writeTimeout]{@link RepositoryClientConfig#writeTimeout}
*
* @param {string} endpoint server base URL that will be prepend
* to all server requests
*/
function RepositoryClientConfig(endpoint) {
var _this;
_classCallCheck(this, RepositoryClientConfig);
_this = _callSuper(this, RepositoryClientConfig, [endpoint]);
_this.setEndpoints([]);
_this.setHeaders({});
_this.setKeepAlive(true);
_this.setDefaultRDFMimeType(RDFMimeType.SPARQL_RESULTS_JSON);
_this.setReadTimeout(defaultTimeout);
_this.setWriteTimeout(defaultTimeout);
return _this;
}
/**
* Sets the repository endpoint URLs.
*
* @param {string[]} endpoints the endpoint URLs
*
* @return {this} current config for method chaining
*/
_inherits(RepositoryClientConfig, _ClientConfig);
return _createClass(RepositoryClientConfig, [{
key: "setEndpoints",
value: function setEndpoints(endpoints) {
this.endpoints = endpoints;
return this;
}
/**
* Inserts a repository endpoint URL to the rest of the endpoints.
*
* @param {string} endpoint repository endpoint URL
*
* @return {this} current config for method chaining
*/
}, {
key: "addEndpoint",
value: function addEndpoint(endpoint) {
if (!this.endpoints) {
this.endpoints = [];
}
this.endpoints.push(endpoint);
return this;
}
/**
* Gets the repository endpoint URLs.
*
* @return {string[]}
*/
}, {
key: "getEndpoints",
value: function getEndpoints() {
return this.endpoints;
}
/**
* Sets the default RDF MIME type.
*
* @param {string} defaultRDFMimeType
*
* @return {this} current config for method chaining
*/
}, {
key: "setDefaultRDFMimeType",
value: function setDefaultRDFMimeType(defaultRDFMimeType) {
this.defaultRDFMimeType = defaultRDFMimeType;
return this;
}
/**
* Returns the default RDF MIME type.
*
* @return {string}
*/
}, {
key: "getDefaultRDFMimeType",
value: function getDefaultRDFMimeType() {
return this.defaultRDFMimeType;
}
/**
* Sets the default read timeout for HTTP requests.
*
* @param {number} readTimeout the timeout in milliseconds
*
* @return {this} current config for method chaining
*/
}, {
key: "setReadTimeout",
value: function setReadTimeout(readTimeout) {
this.readTimeout = readTimeout;
return this;
}
/**
* Returns the default read timeout for HTTP requests.
*
* @return {number}
*/
}, {
key: "getReadTimeout",
value: function getReadTimeout() {
return this.readTimeout;
}
/**
* Sets the default write timeout for HTTP requests.
*
* @param {number} writeTimeout the timeout in milliseconds
*
* @return {this} current config for method chaining
*/
}, {
key: "setWriteTimeout",
value: function setWriteTimeout(writeTimeout) {
this.writeTimeout = writeTimeout;
return this;
}
/**
* Returns the default write timeout for HTTP requests.
*
* @return {number}
*/
}, {
key: "getWriteTimeout",
value: function getWriteTimeout() {
return this.writeTimeout;
}
/**
* Sets the location of the remote GraphDB instance.
* <p>
* This method updates the request headers with
* the "x-graphdb-repository-location" header to specify the location of
* the target GraphDB instance.
* </p>
*
* @param {string} location - The location of the remote GraphDB instance.
* @return {this} current config for method chaining
*/
}, {
key: "setLocation",
value: function setLocation(location) {
if (!ObjectUtils.isNullOrUndefined(location)) {
this.headers['x-graphdb-repository-location'] = location;
}
return this;
}
}]);
}(ClientConfig);
module.exports = RepositoryClientConfig;