prepack
Version:
Execute a JS bundle, serialize global state and side effects to a snapshot that can be quickly restored.
103 lines (82 loc) • 4.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createMockReactDOM = createMockReactDOM;
exports.createMockReactDOMServer = createMockReactDOMServer;
var _index = require("../../values/index.js");
var _utils = require("../../react/utils.js");
var _invariant = _interopRequireDefault(require("../../invariant.js"));
var _utils2 = require("./utils.js");
var _rendering = require("../../react/experimental-server-rendering/rendering.js");
var _generator = require("../../utils/generator.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* 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.
*/
function createMockReactDOM(realm, reactDomRequireName) {
let reactDomValue = new _index.ObjectValue(realm, realm.intrinsics.ObjectPrototype);
reactDomValue.refuseSerialization = true;
(0, _utils2.updateIntrinsicNames)(realm, reactDomValue, reactDomRequireName);
const genericTemporalFunc = (funcVal, args) => {
let reactDomMethod = _index.AbstractValue.createTemporalFromBuildFunction(realm, _index.FunctionValue, [funcVal, ...args], (0, _generator.createOperationDescriptor)("REACT_TEMPORAL_FUNC"), {
skipInvariant: true,
isPure: true
});
(0, _invariant.default)(reactDomMethod instanceof _index.AbstractObjectValue);
return reactDomMethod;
};
(0, _utils2.addMockFunctionToObject)(realm, reactDomValue, reactDomRequireName, "render", genericTemporalFunc);
(0, _utils2.addMockFunctionToObject)(realm, reactDomValue, reactDomRequireName, "hydrate", genericTemporalFunc);
(0, _utils2.addMockFunctionToObject)(realm, reactDomValue, reactDomRequireName, "findDOMNode", genericTemporalFunc);
(0, _utils2.addMockFunctionToObject)(realm, reactDomValue, reactDomRequireName, "unmountComponentAtNode", genericTemporalFunc);
const createPortalFunc = (funcVal, [reactPortalValue, domNodeValue]) => {
let reactDomMethod = _index.AbstractValue.createTemporalFromBuildFunction(realm, _index.ObjectValue, [funcVal, reactPortalValue, domNodeValue], (0, _generator.createOperationDescriptor)("REACT_TEMPORAL_FUNC"), {
skipInvariant: true,
isPure: true
});
(0, _invariant.default)(reactDomMethod instanceof _index.AbstractObjectValue);
realm.react.abstractHints.set(reactDomMethod, (0, _utils.createReactHintObject)(reactDomValue, "createPortal", [reactPortalValue, domNodeValue], realm.intrinsics.undefined));
return reactDomMethod;
};
(0, _utils2.addMockFunctionToObject)(realm, reactDomValue, reactDomRequireName, "createPortal", createPortalFunc);
reactDomValue.refuseSerialization = false;
reactDomValue.makeFinal();
return reactDomValue;
}
function createMockReactDOMServer(realm, requireName) {
let reactDomServerValue = new _index.ObjectValue(realm, realm.intrinsics.ObjectPrototype);
reactDomServerValue.refuseSerialization = true;
(0, _utils2.updateIntrinsicNames)(realm, reactDomServerValue, requireName);
const genericTemporalFunc = (funcVal, args) => {
let reactDomMethod = _index.AbstractValue.createTemporalFromBuildFunction(realm, _index.FunctionValue, [funcVal, ...args], (0, _generator.createOperationDescriptor)("REACT_TEMPORAL_FUNC"), {
skipInvariant: true,
isPure: true
});
(0, _invariant.default)(reactDomMethod instanceof _index.AbstractObjectValue);
return reactDomMethod;
};
(0, _utils2.addMockFunctionToObject)(realm, reactDomServerValue, requireName, "renderToString", (funcVal, [input]) => {
if (input instanceof _index.ObjectValue && (0, _utils.isReactElement)(input)) {
return (0, _rendering.renderToString)(realm, input, false);
}
return genericTemporalFunc(funcVal, [input]);
});
(0, _utils2.addMockFunctionToObject)(realm, reactDomServerValue, requireName, "renderToStaticMarkup", (funcVal, [input]) => {
if (input instanceof _index.ObjectValue && (0, _utils.isReactElement)(input)) {
return (0, _rendering.renderToString)(realm, input, true);
}
return genericTemporalFunc(funcVal, [input]);
});
(0, _utils2.addMockFunctionToObject)(realm, reactDomServerValue, requireName, "renderToNodeStream", genericTemporalFunc);
(0, _utils2.addMockFunctionToObject)(realm, reactDomServerValue, requireName, "renderToStaticNodeStream", genericTemporalFunc);
reactDomServerValue.refuseSerialization = false;
reactDomServerValue.makeFinal();
return reactDomServerValue;
}
//# sourceMappingURL=react-dom-mocks.js.map