UNPKG

5.05 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = exports.WRITE = exports.READ = exports.Driver = void 0;
9
10var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
12var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
14var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
16var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
18var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
20var _neo4jDriverCore = require("neo4j-driver-core");
21
22var _sessionRx = _interopRequireDefault(require("./session-rx"));
23
24function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
25
26function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
27
28var FETCH_ALL = _neo4jDriverCore.internal.constants.FETCH_ALL;
29var READ = _neo4jDriverCore.driver.READ,
30 WRITE = _neo4jDriverCore.driver.WRITE;
31/**
32 * A driver maintains one or more {@link Session}s with a remote
33 * Neo4j instance. Through the {@link Session}s you can send queries
34 * and retrieve results from the database.
35 *
36 * Drivers are reasonably expensive to create - you should strive to keep one
37 * driver instance around per Neo4j Instance you connect to.
38 *
39 * @access public
40 */
41
42exports.WRITE = WRITE;
43exports.READ = READ;
44
45var Driver = /*#__PURE__*/function (_CoreDriver) {
46 (0, _inherits2["default"])(Driver, _CoreDriver);
47
48 var _super = _createSuper(Driver);
49
50 function Driver() {
51 (0, _classCallCheck2["default"])(this, Driver);
52 return _super.apply(this, arguments);
53 }
54
55 (0, _createClass2["default"])(Driver, [{
56 key: "rxSession",
57 value:
58 /**
59 * Acquire a reactive session to communicate with the database. The session will
60 * borrow connections from the underlying connection pool as required and
61 * should be considered lightweight and disposable.
62 *
63 * This comes with some responsibility - make sure you always call
64 * {@link close} when you are done using a session, and likewise,
65 * make sure you don't close your session before you are done using it. Once
66 * it is closed, the underlying connection will be released to the connection
67 * pool and made available for others to use.
68 *
69 * @public
70 * @param {Object} param
71 * @param {string} param.defaultAccessMode=WRITE - The access mode of this session, allowed values are {@link READ} and {@link WRITE}.
72 * @param {string|string[]} param.bookmarks - The initial reference or references to some previous transactions. Value is optional and
73 * absence indicates that the bookmarks do not exist or are unknown.
74 * @param {string} param.database - The database this session will operate on.
75 * @returns {RxSession} new reactive session.
76 */
77 function rxSession() {
78 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
79 _ref$defaultAccessMod = _ref.defaultAccessMode,
80 defaultAccessMode = _ref$defaultAccessMod === void 0 ? WRITE : _ref$defaultAccessMod,
81 bookmarks = _ref.bookmarks,
82 _ref$database = _ref.database,
83 database = _ref$database === void 0 ? '' : _ref$database,
84 fetchSize = _ref.fetchSize;
85
86 return new _sessionRx["default"]({
87 session: this._newSession({
88 defaultAccessMode: defaultAccessMode,
89 bookmarks: bookmarks,
90 database: database,
91 reactive: true,
92 fetchSize: validateFetchSizeValue(fetchSize, this._config.fetchSize)
93 }),
94 config: this._config
95 });
96 }
97 }]);
98 return Driver;
99}(_neo4jDriverCore.Driver);
100/**
101 * @private
102 */
103
104
105exports.Driver = Driver;
106
107function validateFetchSizeValue(rawValue, defaultWhenAbsent) {
108 var fetchSize = parseInt(rawValue, 10);
109
110 if (fetchSize > 0 || fetchSize === FETCH_ALL) {
111 return fetchSize;
112 } else if (fetchSize === 0 || fetchSize < 0) {
113 throw new Error("The fetch size can only be a positive value or ".concat(FETCH_ALL, " for ALL. However fetchSize = ").concat(fetchSize));
114 } else {
115 return defaultWhenAbsent;
116 }
117}
118
119var _default = Driver;
120exports["default"] = _default;
\No newline at end of file