import React from 'react'; import ReactDOM from 'react-dom/server.js'; import StaticHtml from './static-html.js'; const reactTypeof = Symbol.for('react.element'); function errorIsComingFromPreactComponent(err) { return ( err.message && (err.message.startsWith("Cannot read property '__H'") || err.message.includes("(reading '__H')")) ); } function check(Component, props, children) { // Note: there are packages that do some unholy things to create "components". // Checking the $$typeof property catches most of these patterns. if (typeof Component === 'object') { const $$typeof = Component['$$typeof']; return $$typeof && $$typeof.toString().slice('Symbol('.length).startsWith('react'); } if (typeof Component !== 'function') return false; if (Component.prototype != null && typeof Component.prototype.render === 'function') { return React.Component.isPrototypeOf(Component) || React.PureComponent.isPrototypeOf(Component); } let error = null; let isReactComponent = false; function Tester(...args) { try { const vnode = Component(...args); if (vnode && vnode['$$typeof'] === reactTypeof) { isReactComponent = true; } } catch (err) { if (!errorIsComingFromPreactComponent(err)) { error = err; } } return React.createElement('div'); } renderToStaticMarkup(Tester, props, children, {}); if (error) { throw error; } return isReactComponent; } function renderToStaticMarkup(Component, props, children, metadata) { delete props['class']; const vnode = React.createElement(Component, { ...props, children: children != null ? React.createElement(StaticHtml, { value: children }) : undefined, }); let html; if (metadata && metadata.hydrate) { html = ReactDOM.renderToString(vnode); } else { html = ReactDOM.renderToStaticMarkup(vnode); } return { html }; } export default { check, renderToStaticMarkup, }; -signal-rebased Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/bench/snippets/http-hello.node.mjs (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2023-01-05lazily create buffer/string slices (#1735)Gravatar Alex Lam S.L 3-33/+158
2023-01-05Report unhandled promise rejection on exit and make exit code 1 instead of 0 ...Gravatar Jarred Sumner 6-54/+108
2023-01-05always report rejected promisesGravatar Jarred Sumner 2-1/+3
2023-01-05Clean up some napi codeGravatar Jarred Sumner 2-70/+79
2023-01-05napi_boolean -> napi_numberGravatar Jarred Sumner 1-1/+1
2023-01-05Fixes #1733Gravatar Jarred Sumner 2-67/+79
2023-01-05[socket] fix double-free in `finalize()` (#1731)Gravatar Alex Lam S.L 3-53/+45
2023-01-05BumpGravatar Jarred Sumner 1-1/+1
2023-01-05fix `onConnectError()` error propagation (#1730)Gravatar Alex Lam S.L 1-2/+2
2023-01-05Update tcp-echo.bun.tsGravatar Jarred Sumner 1-13/+15
2023-01-05Really fix #1722Gravatar Jarred Sumner 2-3/+41
2023-01-05improve `.toThrow()` compatibility with Jest (#1728)Gravatar Alex Lam S.L 2-17/+33
2023-01-04Fix Bun.serve typings (#1714)Gravatar u9g 1-2/+2
2023-01-04implement `expect().toThrow()` (#1727)Gravatar Alex Lam S.L 5-130/+370
2023-01-04Add `SharedBuffer` from WebKit to make it easier to import more WebCore stuffGravatar Jarred Sumner 2-0/+1111
2023-01-04Fix default export for streamGravatar Jarred Sumner 1-11/+4
2023-01-04Fixes #1722Gravatar Jarred Sumner 1-1/+2
2023-01-04split server/client for tcp echo benchmark to better measure net.Socket perfGravatar Jarred Sumner 2-58/+60
2023-01-04buffer list clean-ups (#1721)Gravatar Alex Lam S.L 1-37/+68
2023-01-04Support non-classes in node:net (#1712)Gravatar Jarred Sumner 1-198/+216
2023-01-04Fixes #1716Gravatar Jarred Sumner 1-2/+2
2023-01-0410x faster `new Buffer` (#1717)Gravatar Jarred Sumner 19-520/+480
2023-01-03Update README.mdGravatar Jarred Sumner 1-2/+2
2023-01-03Add sqlite to vendorGravatar Jarred Sumner 1-4/+8
2023-01-03Fixes https://github.com/oven-sh/bun/issues/1695Gravatar Jarred Sumner 1-1/+1
2023-01-03Remove usages of std.xGravatar Jarred Sumner 7-98/+75
2023-01-03[streams] speed up `Readable` in some cases (#1708)Gravatar Alex Lam S.L 3-14/+140
2023-01-03Fix crash in BufferListGravatar Jarred Sumner 1-2/+2