first commit
This commit is contained in:
486
build/node_modules/prepack/lib/debugger/common/channel/MessageMarshaller.js
generated
vendored
Normal file
486
build/node_modules/prepack/lib/debugger/common/channel/MessageMarshaller.js
generated
vendored
Normal file
@@ -0,0 +1,486 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.MessageMarshaller = undefined;
|
||||
|
||||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /**
|
||||
* Copyright (c) 2017-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
|
||||
var _DebugMessage = require("./DebugMessage.js");
|
||||
|
||||
var _invariant = require("./../invariant.js");
|
||||
|
||||
var _invariant2 = _interopRequireDefault(_invariant);
|
||||
|
||||
var _DebuggerError = require("./../DebuggerError.js");
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var MessageMarshaller = exports.MessageMarshaller = function () {
|
||||
function MessageMarshaller() {
|
||||
_classCallCheck(this, MessageMarshaller);
|
||||
|
||||
this._lastRunRequestID = 0;
|
||||
}
|
||||
|
||||
_createClass(MessageMarshaller, [{
|
||||
key: "marshallBreakpointAcknowledge",
|
||||
value: function marshallBreakpointAcknowledge(requestID, messageType, breakpoints) {
|
||||
return requestID + " " + messageType + " " + JSON.stringify(breakpoints);
|
||||
}
|
||||
}, {
|
||||
key: "marshallStoppedResponse",
|
||||
value: function marshallStoppedResponse(reason, filePath, line, column) {
|
||||
var result = {
|
||||
kind: "stopped",
|
||||
reason: reason,
|
||||
filePath: filePath,
|
||||
line: line,
|
||||
column: column
|
||||
};
|
||||
return this._lastRunRequestID + " " + _DebugMessage.DebugMessage.STOPPED_RESPONSE + " " + JSON.stringify(result);
|
||||
}
|
||||
}, {
|
||||
key: "marshallDebuggerStart",
|
||||
value: function marshallDebuggerStart(requestID) {
|
||||
return requestID + " " + _DebugMessage.DebugMessage.DEBUGGER_ATTACHED;
|
||||
}
|
||||
}, {
|
||||
key: "marshallContinueRequest",
|
||||
value: function marshallContinueRequest(requestID) {
|
||||
return requestID + " " + _DebugMessage.DebugMessage.PREPACK_RUN_COMMAND;
|
||||
}
|
||||
}, {
|
||||
key: "marshallSetBreakpointsRequest",
|
||||
value: function marshallSetBreakpointsRequest(requestID, breakpoints) {
|
||||
return requestID + " " + _DebugMessage.DebugMessage.BREAKPOINT_ADD_COMMAND + " " + JSON.stringify(breakpoints);
|
||||
}
|
||||
}, {
|
||||
key: "marshallStackFramesRequest",
|
||||
value: function marshallStackFramesRequest(requestID) {
|
||||
return requestID + " " + _DebugMessage.DebugMessage.STACKFRAMES_COMMAND;
|
||||
}
|
||||
}, {
|
||||
key: "marshallStackFramesResponse",
|
||||
value: function marshallStackFramesResponse(requestID, stackframes) {
|
||||
return requestID + " " + _DebugMessage.DebugMessage.STACKFRAMES_RESPONSE + " " + JSON.stringify(stackframes);
|
||||
}
|
||||
}, {
|
||||
key: "marshallScopesRequest",
|
||||
value: function marshallScopesRequest(requestID, frameId) {
|
||||
return requestID + " " + _DebugMessage.DebugMessage.SCOPES_COMMAND + " " + frameId;
|
||||
}
|
||||
}, {
|
||||
key: "marshallScopesResponse",
|
||||
value: function marshallScopesResponse(requestID, scopes) {
|
||||
return requestID + " " + _DebugMessage.DebugMessage.SCOPES_RESPONSE + " " + JSON.stringify(scopes);
|
||||
}
|
||||
}, {
|
||||
key: "marshallVariablesRequest",
|
||||
value: function marshallVariablesRequest(requestID, variablesReference) {
|
||||
return requestID + " " + _DebugMessage.DebugMessage.VARIABLES_COMMAND + " " + variablesReference;
|
||||
}
|
||||
}, {
|
||||
key: "marshallVariablesResponse",
|
||||
value: function marshallVariablesResponse(requestID, variables) {
|
||||
return requestID + " " + _DebugMessage.DebugMessage.VARIABLES_RESPONSE + " " + JSON.stringify(variables);
|
||||
}
|
||||
}, {
|
||||
key: "marshallStepIntoRequest",
|
||||
value: function marshallStepIntoRequest(requestID) {
|
||||
return requestID + " " + _DebugMessage.DebugMessage.STEPINTO_COMMAND;
|
||||
}
|
||||
}, {
|
||||
key: "marshallStepOverRequest",
|
||||
value: function marshallStepOverRequest(requestID) {
|
||||
return requestID + " " + _DebugMessage.DebugMessage.STEPOVER_COMMAND;
|
||||
}
|
||||
}, {
|
||||
key: "marshallEvaluateRequest",
|
||||
value: function marshallEvaluateRequest(requestID, frameId, expression) {
|
||||
var evalArgs = {
|
||||
kind: "evaluate",
|
||||
expression: expression
|
||||
};
|
||||
if (frameId !== undefined) {
|
||||
evalArgs.frameId = frameId;
|
||||
}
|
||||
return requestID + " " + _DebugMessage.DebugMessage.EVALUATE_COMMAND + " " + JSON.stringify(evalArgs);
|
||||
}
|
||||
}, {
|
||||
key: "marshallEvaluateResponse",
|
||||
value: function marshallEvaluateResponse(requestID, evalResult) {
|
||||
return requestID + " " + _DebugMessage.DebugMessage.EVALUATE_RESPONSE + " " + JSON.stringify(evalResult);
|
||||
}
|
||||
}, {
|
||||
key: "unmarshallRequest",
|
||||
value: function unmarshallRequest(message) {
|
||||
var parts = message.split(" ");
|
||||
// each request must have a length and a command
|
||||
(0, _invariant2.default)(parts.length >= 2, "Request is not well formed");
|
||||
// unique ID for each request
|
||||
var requestID = parseInt(parts[0], 10);
|
||||
(0, _invariant2.default)(!isNaN(requestID), "Request ID must be a number");
|
||||
var command = parts[1];
|
||||
var args = void 0;
|
||||
switch (command) {
|
||||
case _DebugMessage.DebugMessage.PREPACK_RUN_COMMAND:
|
||||
this._lastRunRequestID = requestID;
|
||||
var runArgs = {
|
||||
kind: "run"
|
||||
};
|
||||
args = runArgs;
|
||||
break;
|
||||
case _DebugMessage.DebugMessage.BREAKPOINT_ADD_COMMAND:
|
||||
args = this._unmarshallBreakpointsArguments(requestID, parts.slice(2).join(" "));
|
||||
break;
|
||||
case _DebugMessage.DebugMessage.STACKFRAMES_COMMAND:
|
||||
var stackFrameArgs = {
|
||||
kind: "stackframe"
|
||||
};
|
||||
args = stackFrameArgs;
|
||||
break;
|
||||
case _DebugMessage.DebugMessage.SCOPES_COMMAND:
|
||||
args = this._unmarshallScopesArguments(requestID, parts[2]);
|
||||
break;
|
||||
case _DebugMessage.DebugMessage.VARIABLES_COMMAND:
|
||||
args = this._unmarshallVariablesArguments(requestID, parts[2]);
|
||||
break;
|
||||
case _DebugMessage.DebugMessage.STEPINTO_COMMAND:
|
||||
this._lastRunRequestID = requestID;
|
||||
var stepIntoArgs = {
|
||||
kind: "stepInto"
|
||||
};
|
||||
args = stepIntoArgs;
|
||||
break;
|
||||
case _DebugMessage.DebugMessage.STEPOVER_COMMAND:
|
||||
this._lastRunRequestID = requestID;
|
||||
var stepOverArgs = {
|
||||
kind: "stepOver"
|
||||
};
|
||||
args = stepOverArgs;
|
||||
break;
|
||||
case _DebugMessage.DebugMessage.EVALUATE_COMMAND:
|
||||
args = this._unmarshallEvaluateArguments(requestID, parts.slice(2).join(" "));
|
||||
break;
|
||||
default:
|
||||
throw new _DebuggerError.DebuggerError("Invalid command", "Invalid command from adapter: " + command);
|
||||
}
|
||||
(0, _invariant2.default)(args !== undefined);
|
||||
var result = {
|
||||
id: requestID,
|
||||
command: command,
|
||||
arguments: args
|
||||
};
|
||||
return result;
|
||||
}
|
||||
}, {
|
||||
key: "_unmarshallBreakpointsArguments",
|
||||
value: function _unmarshallBreakpointsArguments(requestID, responseString) {
|
||||
var breakpoints = JSON.parse(responseString);
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator = breakpoints[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
||||
var breakpoint = _step.value;
|
||||
|
||||
(0, _invariant2.default)(breakpoint.hasOwnProperty("filePath"), "breakpoint missing filePath property");
|
||||
(0, _invariant2.default)(breakpoint.hasOwnProperty("line"), "breakpoint missing line property");
|
||||
(0, _invariant2.default)(breakpoint.hasOwnProperty("column"), "breakpoint missing column property");
|
||||
(0, _invariant2.default)(!isNaN(breakpoint.line));
|
||||
(0, _invariant2.default)(!isNaN(breakpoint.column));
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError = true;
|
||||
_iteratorError = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion && _iterator.return) {
|
||||
_iterator.return();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError) {
|
||||
throw _iteratorError;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var result = {
|
||||
kind: "breakpoint",
|
||||
breakpoints: breakpoints
|
||||
};
|
||||
return result;
|
||||
}
|
||||
}, {
|
||||
key: "_unmarshallScopesArguments",
|
||||
value: function _unmarshallScopesArguments(requestID, responseString) {
|
||||
var frameId = parseInt(responseString, 10);
|
||||
(0, _invariant2.default)(!isNaN(frameId));
|
||||
var result = {
|
||||
kind: "scopes",
|
||||
frameId: frameId
|
||||
};
|
||||
return result;
|
||||
}
|
||||
}, {
|
||||
key: "_unmarshallVariablesArguments",
|
||||
value: function _unmarshallVariablesArguments(requestID, responseString) {
|
||||
var varRef = parseInt(responseString, 10);
|
||||
(0, _invariant2.default)(!isNaN(varRef));
|
||||
var result = {
|
||||
kind: "variables",
|
||||
variablesReference: varRef
|
||||
};
|
||||
return result;
|
||||
}
|
||||
}, {
|
||||
key: "_unmarshallEvaluateArguments",
|
||||
value: function _unmarshallEvaluateArguments(requestID, responseString) {
|
||||
var evalArgs = JSON.parse(responseString);
|
||||
(0, _invariant2.default)(evalArgs.hasOwnProperty("kind"), "Evaluate arguments missing kind field");
|
||||
(0, _invariant2.default)(evalArgs.hasOwnProperty("expression"), "Evaluate arguments missing expression field");
|
||||
if (evalArgs.hasOwnProperty("frameId")) (0, _invariant2.default)(!isNaN(evalArgs.frameId));
|
||||
return evalArgs;
|
||||
}
|
||||
}, {
|
||||
key: "unmarshallResponse",
|
||||
value: function unmarshallResponse(message) {
|
||||
try {
|
||||
var parts = message.split(" ");
|
||||
var requestID = parseInt(parts[0], 10);
|
||||
(0, _invariant2.default)(!isNaN(requestID));
|
||||
var messageType = parts[1];
|
||||
var dbgResult = void 0;
|
||||
var resultString = parts.slice(2).join(" ");
|
||||
if (messageType === _DebugMessage.DebugMessage.PREPACK_READY_RESPONSE) {
|
||||
dbgResult = this._unmarshallReadyResult();
|
||||
} else if (messageType === _DebugMessage.DebugMessage.BREAKPOINT_ADD_ACKNOWLEDGE) {
|
||||
dbgResult = this._unmarshallBreakpointsAddResult(resultString);
|
||||
} else if (messageType === _DebugMessage.DebugMessage.STOPPED_RESPONSE) {
|
||||
dbgResult = this._unmarshallStoppedResult(resultString);
|
||||
} else if (messageType === _DebugMessage.DebugMessage.STACKFRAMES_RESPONSE) {
|
||||
dbgResult = this._unmarshallStackframesResult(resultString);
|
||||
} else if (messageType === _DebugMessage.DebugMessage.SCOPES_RESPONSE) {
|
||||
dbgResult = this._unmarshallScopesResult(resultString);
|
||||
} else if (messageType === _DebugMessage.DebugMessage.VARIABLES_RESPONSE) {
|
||||
dbgResult = this._unmarshallVariablesResult(resultString);
|
||||
} else if (messageType === _DebugMessage.DebugMessage.EVALUATE_RESPONSE) {
|
||||
dbgResult = this._unmarshallEvaluateResult(resultString);
|
||||
} else {
|
||||
(0, _invariant2.default)(false, "Unexpected response type");
|
||||
}
|
||||
|
||||
var dbgResponse = {
|
||||
id: requestID,
|
||||
result: dbgResult
|
||||
};
|
||||
return dbgResponse;
|
||||
} catch (e) {
|
||||
throw new _DebuggerError.DebuggerError("Invalid command", e.message);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "_unmarshallStackframesResult",
|
||||
value: function _unmarshallStackframesResult(resultString) {
|
||||
var frames = JSON.parse(resultString);
|
||||
(0, _invariant2.default)(Array.isArray(frames), "Stack frames is not an array");
|
||||
var _iteratorNormalCompletion2 = true;
|
||||
var _didIteratorError2 = false;
|
||||
var _iteratorError2 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator2 = frames[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
||||
var frame = _step2.value;
|
||||
|
||||
(0, _invariant2.default)(frame.hasOwnProperty("id"), "Stack frame is missing id");
|
||||
(0, _invariant2.default)(frame.hasOwnProperty("fileName"), "Stack frame is missing filename");
|
||||
(0, _invariant2.default)(frame.hasOwnProperty("line"), "Stack frame is missing line number");
|
||||
(0, _invariant2.default)(frame.hasOwnProperty("column"), "Stack frame is missing column number");
|
||||
(0, _invariant2.default)(frame.hasOwnProperty("functionName"), "Stack frame is missing function name");
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError2 = true;
|
||||
_iteratorError2 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion2 && _iterator2.return) {
|
||||
_iterator2.return();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError2) {
|
||||
throw _iteratorError2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var result = {
|
||||
kind: "stackframe",
|
||||
stackframes: frames
|
||||
};
|
||||
return result;
|
||||
}
|
||||
}, {
|
||||
key: "_unmarshallScopesResult",
|
||||
value: function _unmarshallScopesResult(resultString) {
|
||||
var scopes = JSON.parse(resultString);
|
||||
(0, _invariant2.default)(Array.isArray(scopes), "Scopes is not an array");
|
||||
var _iteratorNormalCompletion3 = true;
|
||||
var _didIteratorError3 = false;
|
||||
var _iteratorError3 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator3 = scopes[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
||||
var scope = _step3.value;
|
||||
|
||||
(0, _invariant2.default)(scope.hasOwnProperty("name"), "Scope is missing name");
|
||||
(0, _invariant2.default)(scope.hasOwnProperty("variablesReference"), "Scope is missing variablesReference");
|
||||
(0, _invariant2.default)(scope.hasOwnProperty("expensive"), "Scope is missing expensive");
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError3 = true;
|
||||
_iteratorError3 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion3 && _iterator3.return) {
|
||||
_iterator3.return();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError3) {
|
||||
throw _iteratorError3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var result = {
|
||||
kind: "scopes",
|
||||
scopes: scopes
|
||||
};
|
||||
return result;
|
||||
}
|
||||
}, {
|
||||
key: "_unmarshallVariablesResult",
|
||||
value: function _unmarshallVariablesResult(resultString) {
|
||||
var variables = JSON.parse(resultString);
|
||||
(0, _invariant2.default)(Array.isArray(variables), "Variables is not an array");
|
||||
var _iteratorNormalCompletion4 = true;
|
||||
var _didIteratorError4 = false;
|
||||
var _iteratorError4 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator4 = variables[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
|
||||
var variable = _step4.value;
|
||||
|
||||
(0, _invariant2.default)(variable.hasOwnProperty("name"));
|
||||
(0, _invariant2.default)(variable.hasOwnProperty("value"));
|
||||
(0, _invariant2.default)(variable.hasOwnProperty("variablesReference"));
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError4 = true;
|
||||
_iteratorError4 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion4 && _iterator4.return) {
|
||||
_iterator4.return();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError4) {
|
||||
throw _iteratorError4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var result = {
|
||||
kind: "variables",
|
||||
variables: variables
|
||||
};
|
||||
return result;
|
||||
}
|
||||
}, {
|
||||
key: "_unmarshallEvaluateResult",
|
||||
value: function _unmarshallEvaluateResult(resultString) {
|
||||
var evalResult = JSON.parse(resultString);
|
||||
(0, _invariant2.default)(evalResult.hasOwnProperty("kind"), "eval result missing kind property");
|
||||
(0, _invariant2.default)(evalResult.kind === "evaluate", "eval result is the wrong kind");
|
||||
(0, _invariant2.default)(evalResult.hasOwnProperty("displayValue", "eval result missing display value property"));
|
||||
(0, _invariant2.default)(evalResult.hasOwnProperty("type", "eval result missing type property"));
|
||||
(0, _invariant2.default)(evalResult.hasOwnProperty("variablesReference", "eval result missing variablesReference property"));
|
||||
return evalResult;
|
||||
}
|
||||
}, {
|
||||
key: "_unmarshallBreakpointsAddResult",
|
||||
value: function _unmarshallBreakpointsAddResult(resultString) {
|
||||
var breakpoints = JSON.parse(resultString);
|
||||
(0, _invariant2.default)(Array.isArray(breakpoints));
|
||||
var _iteratorNormalCompletion5 = true;
|
||||
var _didIteratorError5 = false;
|
||||
var _iteratorError5 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator5 = breakpoints[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
|
||||
var breakpoint = _step5.value;
|
||||
|
||||
(0, _invariant2.default)(breakpoint.hasOwnProperty("filePath"), "breakpoint missing filePath property");
|
||||
(0, _invariant2.default)(breakpoint.hasOwnProperty("line"), "breakpoint missing line property");
|
||||
(0, _invariant2.default)(breakpoint.hasOwnProperty("column"), "breakpoint missing column property");
|
||||
(0, _invariant2.default)(!isNaN(breakpoint.line));
|
||||
(0, _invariant2.default)(!isNaN(breakpoint.column));
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError5 = true;
|
||||
_iteratorError5 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion5 && _iterator5.return) {
|
||||
_iterator5.return();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError5) {
|
||||
throw _iteratorError5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var result = {
|
||||
kind: "breakpoint-add",
|
||||
breakpoints: breakpoints
|
||||
};
|
||||
return result;
|
||||
}
|
||||
}, {
|
||||
key: "_unmarshallStoppedResult",
|
||||
value: function _unmarshallStoppedResult(resultString) {
|
||||
var result = JSON.parse(resultString);
|
||||
(0, _invariant2.default)(result.kind === "stopped");
|
||||
(0, _invariant2.default)(result.hasOwnProperty("reason"));
|
||||
(0, _invariant2.default)(result.hasOwnProperty("filePath"));
|
||||
(0, _invariant2.default)(result.hasOwnProperty("line"));
|
||||
(0, _invariant2.default)(!isNaN(result.line));
|
||||
(0, _invariant2.default)(result.hasOwnProperty("column"));
|
||||
(0, _invariant2.default)(!isNaN(result.column));
|
||||
return result;
|
||||
}
|
||||
}, {
|
||||
key: "_unmarshallReadyResult",
|
||||
value: function _unmarshallReadyResult() {
|
||||
var result = {
|
||||
kind: "ready"
|
||||
};
|
||||
return result;
|
||||
}
|
||||
}]);
|
||||
|
||||
return MessageMarshaller;
|
||||
}();
|
||||
//# sourceMappingURL=MessageMarshaller.js.map
|
||||
Reference in New Issue
Block a user