react-raw-html
Version:
React components that output their children as raw HTML.
52 lines (32 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _multistream = require("multistream");
var _multistream2 = _interopRequireDefault(_multistream);
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _flattenChildren = require("./flattenChildren");
var _flattenChildren2 = _interopRequireDefault(_flattenChildren);
var _isReadableStream = require("./isReadableStream");
var _isReadableStream2 = _interopRequireDefault(_isReadableStream);
var _rawHtmlFactory = require("./rawHtmlFactory");
var _rawHtmlFactory2 = _interopRequireDefault(_rawHtmlFactory);
var _stringToStream = require("./stringToStream");
var _stringToStream2 = _interopRequireDefault(_stringToStream);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// returns the children as either a readable stream or, if possible, just a simple string.
var getChildrenAsStream = function getChildrenAsStream(children) {
var childrenArray = (0, _flattenChildren2.default)(children);
if (childrenArray.every(function (child) {
return typeof child === "string";
})) {
return childrenArray.join("");
}
return (0, _multistream2.default)(childrenArray.map(function (child) {
if ((0, _isReadableStream2.default)(child)) return child;
if (typeof child === "string") return (0, _stringToStream2.default)(child);
throw new Error("RawHtml can only have string or stream descendents when being run in node, but encountered " + child);
}));
};
exports.default = (0, _rawHtmlFactory2.default)(getChildrenAsStream);