{"_id":"@cabloy/vue-server-renderer","name":"@cabloy/vue-server-renderer","dist-tags":{"latest":"3.5.18"},"versions":{"3.5.18":{"name":"@cabloy/vue-server-renderer","version":"3.5.18","description":"@vue/server-renderer","main":"index.js","module":"dist/server-renderer.esm-bundler.js","types":"dist/server-renderer.d.ts","exports":{".":{"types":"./dist/server-renderer.d.ts","node":{"production":"./dist/server-renderer.cjs.prod.js","development":"./dist/server-renderer.cjs.js","default":"./index.js"},"module":"./dist/server-renderer.esm-bundler.js","import":"./dist/server-renderer.esm-bundler.js","require":"./index.js"},"./*":"./*"},"buildOptions":{"name":"VueServerRenderer","formats":["esm-bundler","esm-browser","cjs"]},"repository":{"type":"git","url":"git+https://github.com/vuejs/core.git","directory":"packages/server-renderer"},"keywords":["vue"],"author":{"name":"Evan You"},"license":"MIT","bugs":{"url":"https://github.com/vuejs/core/issues"},"homepage":"https://github.com/vuejs/core/tree/main/packages/server-renderer#readme","peerDependencies":{"vue":"3.5.13"},"dependencies":{"@vue/shared":"3.5.13","@vue/compiler-ssr":"3.5.13"},"_id":"@cabloy/vue-server-renderer@3.5.18","_integrity":"sha512-9cvaMJ/xNlylgQjvE9CD+g+gJFXPrxBnpykqD9RHR64Mhx7yDJp9331NR9FbzmZbZkezJckKJblXwEeJbFv2Vg==","_resolved":"/private/var/folders/qy/ds95fdx91vz7rplzrblbdxnr0000gn/T/7002cf58880a74e978923a0c7b281485/cabloy-vue-server-renderer-3.5.18.tgz","_from":"file:cabloy-vue-server-renderer-3.5.18.tgz","_nodeVersion":"23.9.0","_npmVersion":"11.2.0","dist":{"integrity":"sha512-9cvaMJ/xNlylgQjvE9CD+g+gJFXPrxBnpykqD9RHR64Mhx7yDJp9331NR9FbzmZbZkezJckKJblXwEeJbFv2Vg==","shasum":"bee612f66128aaf5f824cc819df10cb0d51c8d4e","tarball":"https://registry.npmjs.org/@cabloy/vue-server-renderer/-/vue-server-renderer-3.5.18.tgz","fileCount":10,"unpackedSize":415123,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDJl/W52ZSiWuhqbIBmzGC0/D14zEi/QVCV0cgmYsUE9gIgKZYZZXDYXO8FzxLpQhQvYqXMdx46LuTeoJIU4QiUs1E="}]},"_npmUser":{"name":"zhennann","email":"zhen.nann@icloud.com"},"directories":{},"maintainers":[{"name":"zhennann","email":"zhen.nann@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vue-server-renderer_3.5.18_1743843522795_0.29225744561605604"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-05T08:58:42.724Z","3.5.18":"2025-04-05T08:58:42.993Z","modified":"2025-04-05T08:58:43.253Z"},"maintainers":[{"name":"zhennann","email":"zhen.nann@icloud.com"}],"description":"@vue/server-renderer","homepage":"https://github.com/vuejs/core/tree/main/packages/server-renderer#readme","keywords":["vue"],"repository":{"type":"git","url":"git+https://github.com/vuejs/core.git","directory":"packages/server-renderer"},"author":{"name":"Evan You"},"bugs":{"url":"https://github.com/vuejs/core/issues"},"license":"MIT","readme":"# @vue/server-renderer\n\n**Note: as of 3.2.13+, this package is included as a dependency of the main `vue` package and can be accessed as `vue/server-renderer`. This means you no longer need to explicitly install this package and ensure its version match that of `vue`'s. Just use the `vue/server-renderer` deep import instead.**\n\n## Basic API\n\n### `renderToString`\n\n**Signature**\n\n```ts\nfunction renderToString(\n  input: App | VNode,\n  context?: SSRContext,\n): Promise<string>\n```\n\n**Usage**\n\n```js\nconst { createSSRApp } = require('vue')\nconst { renderToString } = require('@vue/server-renderer')\n\nconst app = createSSRApp({\n  data: () => ({ msg: 'hello' }),\n  template: `<div>{{ msg }}</div>`,\n})\n\n;(async () => {\n  const html = await renderToString(app)\n  console.log(html)\n})()\n```\n\n### Handling Teleports\n\nIf the rendered app contains teleports, the teleported content will not be part of the rendered string. Instead, they are exposed under the `teleports` property of the ssr context object:\n\n```js\nconst ctx = {}\nconst html = await renderToString(app, ctx)\n\nconsole.log(ctx.teleports) // { '#teleported': 'teleported content' }\n```\n\n## Streaming API\n\n### `renderToNodeStream`\n\nRenders input as a [Node.js Readable stream](https://nodejs.org/api/stream.html#stream_class_stream_readable).\n\n**Signature**\n\n```ts\nfunction renderToNodeStream(input: App | VNode, context?: SSRContext): Readable\n```\n\n**Usage**\n\n```js\n// inside a Node.js http handler\nrenderToNodeStream(app).pipe(res)\n```\n\n**Note:** This method is not supported in the ESM build of `@vue/server-renderer`, which is decoupled from Node.js environments. Use `pipeToNodeWritable` instead.\n\n### `pipeToNodeWritable`\n\nRender and pipe to an existing [Node.js Writable stream](https://nodejs.org/api/stream.html#stream_writable_streams) instance.\n\n**Signature**\n\n```ts\nfunction pipeToNodeWritable(\n  input: App | VNode,\n  context: SSRContext = {},\n  writable: Writable,\n): void\n```\n\n**Usage**\n\n```js\n// inside a Node.js http handler\npipeToNodeWritable(app, {}, res)\n```\n\n### `renderToWebStream`\n\nRenders input as a [Web ReadableStream](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API).\n\n**Signature**\n\n```ts\nfunction renderToWebStream(\n  input: App | VNode,\n  context?: SSRContext,\n): ReadableStream\n```\n\n**Usage**\n\n```js\n// inside an environment with ReadableStream support\nreturn new Response(renderToWebStream(app))\n```\n\n**Note:** in environments that do not expose `ReadableStream` constructor in the global scope, `pipeToWebWritable` should be used instead.\n\n### `pipeToWebWritable`\n\nRender and pipe to an existing [Web WritableStream](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream) instance.\n\n**Signature**\n\n```ts\nfunction pipeToWebWritable(\n  input: App | VNode,\n  context: SSRContext = {},\n  writable: WritableStream,\n): void\n```\n\n**Usage**\n\nThis is typically used in combination with [`TransformStream`](https://developer.mozilla.org/en-US/docs/Web/API/TransformStream):\n\n```js\n// TransformStream is available in environments such as CloudFlare workers.\n// in Node.js, TransformStream needs to be explicitly imported from 'stream/web'\nconst { readable, writable } = new TransformStream()\npipeToWebWritable(app, {}, writable)\n\nreturn new Response(readable)\n```\n\n### `renderToSimpleStream`\n\nRenders input in streaming mode using a simple readable interface.\n\n**Signature**\n\n```ts\nfunction renderToSimpleStream(\n  input: App | VNode,\n  context: SSRContext,\n  options: SimpleReadable,\n): SimpleReadable\n\ninterface SimpleReadable {\n  push(content: string | null): void\n  destroy(err: any): void\n}\n```\n\n**Usage**\n\n```js\nlet res = ''\n\nrenderToSimpleStream(\n  app,\n  {},\n  {\n    push(chunk) {\n      if (chunk === null) {\n        // done\n        console(`render complete: ${res}`)\n      } else {\n        res += chunk\n      }\n    },\n    destroy(err) {\n      // error encountered\n    },\n  },\n)\n```\n","readmeFilename":"README.md","_rev":"1-1579655f2ebc0352446ee2f3a028b93b"}