You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
3.4 KiB
43 lines
3.4 KiB
'use strict';
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports['default'] = render;
|
|
|
|
var _object = require('object.assign');
|
|
|
|
var _object2 = _interopRequireDefault(_object);
|
|
|
|
var _getAdapter = require('./getAdapter');
|
|
|
|
var _getAdapter2 = _interopRequireDefault(_getAdapter);
|
|
|
|
var _Utils = require('./Utils');
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
|
|
|
/**
|
|
* Renders a react component into static HTML and provides a cheerio wrapper around it. This is
|
|
* somewhat asymmetric with `mount` and `shallow`, which don't use any external libraries, but
|
|
* Cheerio's API is pretty close to what we actually want and has a significant amount of utility
|
|
* that would be recreating the wheel if we didn't use it.
|
|
*
|
|
* I think there are a lot of good use cases to use `render` instead of `shallow` or `mount`, and
|
|
* thus I'd like to keep this API in here even though it's not really "ours".
|
|
*
|
|
* @param node
|
|
* @param options
|
|
* @returns {Cheerio}
|
|
*/
|
|
|
|
function render(node) {
|
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
|
|
var adapter = (0, _getAdapter2['default'])(options);
|
|
var renderer = adapter.createRenderer((0, _object2['default'])({ mode: 'string' }, options));
|
|
var html = renderer.render(node, options.context);
|
|
return (0, _Utils.loadCheerioRoot)(html);
|
|
}
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXIuanMiXSwibmFtZXMiOlsicmVuZGVyIiwibm9kZSIsIm9wdGlvbnMiLCJhZGFwdGVyIiwicmVuZGVyZXIiLCJjcmVhdGVSZW5kZXJlciIsIm1vZGUiLCJodG1sIiwiY29udGV4dCJdLCJtYXBwaW5ncyI6Ijs7Ozs7cUJBaUJ3QkEsTTs7Ozs7O0FBakJ4Qjs7OztBQUNBOzs7O0FBRUE7Ozs7Ozs7Ozs7Ozs7O0FBY2UsU0FBU0EsTUFBVCxDQUFnQkMsSUFBaEIsRUFBb0M7QUFBQSxNQUFkQyxPQUFjLHVFQUFKLEVBQUk7O0FBQ2pELE1BQU1DLFVBQVUsNkJBQVdELE9BQVgsQ0FBaEI7QUFDQSxNQUFNRSxXQUFXRCxRQUFRRSxjQUFSLDRCQUF5QkMsTUFBTSxRQUEvQixJQUE0Q0osT0FBNUMsRUFBakI7QUFDQSxNQUFNSyxPQUFPSCxTQUFTSixNQUFULENBQWdCQyxJQUFoQixFQUFzQkMsUUFBUU0sT0FBOUIsQ0FBYjtBQUNBLFNBQU8sNEJBQWdCRCxJQUFoQixDQUFQO0FBQ0QiLCJmaWxlIjoicmVuZGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldEFkYXB0ZXIgZnJvbSAnLi9nZXRBZGFwdGVyJztcbmltcG9ydCB7IGxvYWRDaGVlcmlvUm9vdCB9IGZyb20gJy4vVXRpbHMnO1xuXG4vKipcbiAqIFJlbmRlcnMgYSByZWFjdCBjb21wb25lbnQgaW50byBzdGF0aWMgSFRNTCBhbmQgcHJvdmlkZXMgYSBjaGVlcmlvIHdyYXBwZXIgYXJvdW5kIGl0LiBUaGlzIGlzXG4gKiBzb21ld2hhdCBhc3ltbWV0cmljIHdpdGggYG1vdW50YCBhbmQgYHNoYWxsb3dgLCB3aGljaCBkb24ndCB1c2UgYW55IGV4dGVybmFsIGxpYnJhcmllcywgYnV0XG4gKiBDaGVlcmlvJ3MgQVBJIGlzIHByZXR0eSBjbG9zZSB0byB3aGF0IHdlIGFjdHVhbGx5IHdhbnQgYW5kIGhhcyBhIHNpZ25pZmljYW50IGFtb3VudCBvZiB1dGlsaXR5XG4gKiB0aGF0IHdvdWxkIGJlIHJlY3JlYXRpbmcgdGhlIHdoZWVsIGlmIHdlIGRpZG4ndCB1c2UgaXQuXG4gKlxuICogSSB0aGluayB0aGVyZSBhcmUgYSBsb3Qgb2YgZ29vZCB1c2UgY2FzZXMgdG8gdXNlIGByZW5kZXJgIGluc3RlYWQgb2YgYHNoYWxsb3dgIG9yIGBtb3VudGAsIGFuZFxuICogdGh1cyBJJ2QgbGlrZSB0byBrZWVwIHRoaXMgQVBJIGluIGhlcmUgZXZlbiB0aG91Z2ggaXQncyBub3QgcmVhbGx5IFwib3Vyc1wiLlxuICpcbiAqIEBwYXJhbSBub2RlXG4gKiBAcGFyYW0gb3B0aW9uc1xuICogQHJldHVybnMge0NoZWVyaW99XG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVuZGVyKG5vZGUsIG9wdGlvbnMgPSB7fSkge1xuICBjb25zdCBhZGFwdGVyID0gZ2V0QWRhcHRlcihvcHRpb25zKTtcbiAgY29uc3QgcmVuZGVyZXIgPSBhZGFwdGVyLmNyZWF0ZVJlbmRlcmVyKHsgbW9kZTogJ3N0cmluZycsIC4uLm9wdGlvbnMgfSk7XG4gIGNvbnN0IGh0bWwgPSByZW5kZXJlci5yZW5kZXIobm9kZSwgb3B0aW9ucy5jb250ZXh0KTtcbiAgcmV0dXJuIGxvYWRDaGVlcmlvUm9vdChodG1sKTtcbn1cbiJdfQ==
|
|
//# sourceMappingURL=render.js.map
|