UNPKG

function-tree

Version:
166 lines (164 loc) 7.67 kB
"use strict"; 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); } Object.defineProperty(exports, "__esModule", { value: true }); exports.Devtools = void 0; Object.defineProperty(exports, "DevtoolsBase", { enumerable: true, get: function get() { return _base["default"]; } }); exports["default"] = void 0; var _Provider2 = _interopRequireDefault(require("../Provider")); var _base = _interopRequireDefault(require("./base")); var _universalWebsocketClient = _interopRequireDefault(require("universal-websocket-client")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } 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); } /* global VERSION */ // Used by cerebral/devtools var Devtools = exports.Devtools = /*#__PURE__*/function (_DevtoolsBase) { function Devtools(options) { var _this; _classCallCheck(this, Devtools); _this = _callSuper(this, Devtools, [options]); _this.trees = []; _this.latestExecutionId = null; _this.version = "5.2.5"; _this.init(); return _this; } _inherits(Devtools, _DevtoolsBase); return _createClass(Devtools, [{ key: "createSocket", value: function createSocket() { this.ws = new _universalWebsocketClient["default"]("".concat(this.https ? 'wss' : 'ws', "://").concat(this.host)); } }, { key: "onMessage", value: function onMessage(event) { var message = JSON.parse(event.data); switch (message.type) { case 'pong': this.sendInitial(); break; case 'ping': this.sendInitial(); break; } } }, { key: "add", value: function add(tree) { this.trees.push(tree); tree.contextProviders["debugger"] = this.Provider(); this.watchExecution(tree, 'ft'); } }, { key: "remove", value: function remove(tree) { this.trees.splice(this.trees.indexOf(tree), 1); delete tree.contextProviders["debugger"]; tree.removeAllListeners('start'); tree.removeAllListeners('end'); tree.removeAllListeners('pathStart'); tree.removeAllListeners('functionStart'); tree.removeAllListeners('functionEnd'); tree.removeAllListeners('error'); } }, { key: "removeAll", value: function removeAll() { var _this2 = this; var trees = this.trees.reduce(function (newTrees, tree) { newTrees.push(tree); return newTrees; }, []); trees.forEach(function (tree) { _this2.remove(tree); }); } }, { key: "sendInitial", value: function sendInitial() { var message = JSON.stringify({ type: 'init', source: 'ft', version: this.version }); this.sendMessage(message); if (this.backlog.length) { this.sendBulkMessage(this.backlog, 'ft'); this.backlog = []; } this.isConnected = true; } /* Create the stringified message for the debugger. As we need to store mutations with the default true "storeMutations" option used by time travel and jumping between Cerebral apps, we are careful not doing unnecessary stringifying. */ }, { key: "createExecutionMessage", value: function createExecutionMessage(debuggingData, execution, functionDetails, payload) { var type = 'execution'; var data = { execution: { executionId: execution.id, functionIndex: functionDetails.functionIndex, payload: payload, datetime: execution.datetime, data: debuggingData } }; return this.safeStringify({ type: type, source: 'ft', version: this.version, data: data }); } }, { key: "Provider", value: function Provider() { var sendExecutionData = this.sendExecutionData.bind(this); return new _Provider2["default"]({ send: function send(data) { sendExecutionData(data, this.context.execution, this.context.functionDetails, this.context.props); }, wrapProvider: function wrapProvider(name, provider) { var _this3 = this; return Object.keys(provider).reduce(function (wrappedProvider, key) { var originalFunc = provider[key]; wrappedProvider[key] = function () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this3.context["debugger"].send({ method: "".concat(name, ".").concat(key), args: args }); return originalFunc.apply(provider, args); }; return wrappedProvider; }, {}); } }, { wrap: false }); } }]); }(_base["default"]); var _default = exports["default"] = Devtools; //# sourceMappingURL=index.js.map