https://github.com/meteor-community-packages/meteor-inject-data
A way to inject data to the client with initial HTML
https://github.com/meteor-community-packages/meteor-inject-data
hacktoberfest meteor
Last synced: 10 days ago
JSON representation
A way to inject data to the client with initial HTML
- Host: GitHub
- URL: https://github.com/meteor-community-packages/meteor-inject-data
- Owner: Meteor-Community-Packages
- License: mit
- Created: 2021-04-05T17:34:41.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-05-18T17:45:49.000Z (about 1 year ago)
- Last Synced: 2024-05-18T18:22:42.658Z (about 1 year ago)
- Topics: hacktoberfest, meteor
- Language: JavaScript
- Homepage:
- Size: 130 KB
- Stars: 5
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# communitypackages:inject-data
A way to inject data to the client with initial HTML. A continuation of `meteorhacks:inject-data`.
> This is the package used by [`fast-render`](https://github.com/Meteor-Community-Packages/meteor-fast-render) to push data to the client with the initial HTML.
## Installation
```sh
meteor add communitypackages:inject-data
```## Push Data
We need to use this package with a server side router. We've extended nodejs `http.OutgoingMessage` and provides an API like this.
Here is an example with [picker](https://github.com/Meteor-Community-Packages/picker).
```js
Picker.route('/', function(params, req, res, next) {
var ejsonData = { aa: 10 }
InjectData.pushData(req, 'some-key', ejsonData)
// make sure to move the routing forward.
next()
})
```## Get Data
You can get data with the following API from the **client**.
```js
InjectData.getData('some-key', function(data) {
console.log(data)
})
```## Disable Automatic Injection
You may wish to manually inject the data payload if you are using SSR.
```js
InjectData._disableInjection = true
```## Injection Location
By default, the injector will place the payload inside the `` element. This is render blocking and intended to front-load the data for client-side rendering apps.
You can disable this functionality by setting `InjectData.injectToHead = false`. The payload will be placed before the closing `` tag. Use this setting to deliver payloads after the initial render, e.g. SSR data hydration.