Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

gatsby-node-helpers

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gatsby-node-helpers - npm Package Compare versions

Comparing version 0.1.1 to 0.1.2

2

package.json
{
"name": "gatsby-node-helpers",
"version": "0.1.1",
"version": "0.1.2",
"description": "Gatsby node helper functions to aid node creation.",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -6,2 +6,5 @@ # gatsby-node-helpers

**Note**: The following documentation is incomplete and will be written at a
later time.
## Status

@@ -67,4 +70,4 @@

It handles setting up Gatsby's internal fields, including the content digest
and node type.
It handles setting up Gatsby's internal fields, including the content digest and
node type.

@@ -91,4 +94,113 @@ ```js

Coming soon...
### `createNodeHelpers`
**Default export** of the package.
```js
({
sourceId?: String,
typePrefix: String,
conflictFieldPrefix?: String
}) => ({
createNodeFactory: (type: String, middleware?: Node => Node),
generateNodeId: (type: String, id: String),
generateTypeName: (type: String)
})
```
#### Inputs
The following options are provided as an object.
* `sourceId?: String` - Optional (default: `__SOURCE__`)
Default source parent ID. If not defined, the node is set as a top-level node.
* `typePrefix: String` - **Required**
Prefix for all nodes. Used a namespace for node type names and IDs. Must be
PascalCase.
* `conflictFieldPrefix?: String` - Optional (default: camelcased `typePrefix`)
Prefix for all fields conflicting with Gatsby's internal fields:
* `id`
* `children`
* `parent`
* `fields`
* `internal`
#### Outputs
The following outputs are provided as an object.
* `createNodeFactory: (type: String, middleware?: Node => Node)`
Jump to documentation: [`createNodeFactory`](#createNodeFactory)
* `generateNodeId: (type: String, id: String)`
Jump to documentation: [`generateNodeId`](#generateNodeId)
* `generateTypeName: (type: String)`
Jump to documentation: [`generateTypeName`](#generateTypeName)
---
The following functions are generated by `createNodeHelpers`.
### `createNodeFactory`
Creates a factory function that takes in an object and outputs a Gatsby
`createNode` compatible object.
By default, the input object is kept intact, with the following exceptions:
* Fields conflicting with Gatsby's internal fields are prefixed.
* `obj.id` is set to a generated string containing `typePrefix` set in
`createNodeHelpers`, `type` set in the factory function, and `obj.id`
* `obj.parent` is set to `sourceId` set in `createNodeHelpers` (`__SOURCE__` by
default)
* `obj.children` is set to `[]` by default
* `obj.internal.type` is set to a generated string containing `typePrefix` set
in `createNodeHelpers` and `type` set in the factory function
* `obj.internal.contentDigest` is set to the MD5 hash of the object including
Gatsby's internal fields.
A middleware function can be provided to modify the node beyond these
exceptions. This can be used, for example, to set `obj.children`. The middleware
function is passed the modified object and must return a Gatsby-comptabible
object.
The resulting function of `createNodeFactory` can take in an object and an
overrides object. This can be used, for example, to set `obj.parent`. The
overrides object is merged with the modified object using `Object.assign`; no
mutations are performed, so be careful with what you set.
### `generateNodeId`
Creates a function that takes in a node type and node ID and returns a formatted
string. It is used internally to create a node's ID, but it can be useful when
setting `obj.parent` and `obj.children` in a middleware function or overrides
object.
### `generateTypeName`
Creates a function that takes in a node type and returns a formatted string. It
is used internally to create a node's type name.
#### Type signature
```js
(options: {
sourceId?: String,
typePrefix: String,
conflictFieldPrefix?: String
}) => {
createNodeFactory: (type: String, middleware: )
}
```
[gatsby-source-plugins]: https://www.gatsbyjs.org/docs/create-source-plugin/
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc