gatsby-node-helpers
Advanced tools
Comparing version 0.1.1 to 0.1.2
{ | ||
"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", |
118
README.md
@@ -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/ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
10472
204