createDeleteAction = node => {
        return {
          ...actionOptions,
          type: `DELETE_NODE`,
          plugin,
          payload: node,
          isRecursiveChildrenDelete: true,
        }
      }
Create a new node.
@memberof actions
@param {Object} node a node object
@param {string} node.id The node's ID. Must be globally unique.
@param {string} node.parent The ID of the parent's node. If the node is
derived from another node, set that node as the parent. Otherwise it can
just be `null`.
@param {Array} node.children An array of children node IDs. If you're
creating the children nodes while creating the parent node, add the
children node IDs here directly. If you're adding a child node to a
parent node created by a plugin, you can't mutate this value directly
to add your node id, instead use the action creator `createParentChildLink`.
@param {Object} node.internal node fields that aren't generally
interesting to consumers of node data but are very useful for plugin writers
and Gatsby core. Only fields described below are allowed in `internal` object.
Using any type of custom fields will result in validation errors.
@param {string} node.internal.mediaType An optional field to indicate to
transformer plugins that your node has raw content they can transform.
Use either an official media type (we use mime-db as our source
(https://www.npmjs.com/package/mime-db) or a made-up one if your data
doesn't fit in any existing bucket. Transformer plugins use node media types
for deciding if they should transform a node into a new one. E.g.
markdown transformers look for media types of
`text/markdown`.
@param {string} node.internal.type An arbitrary globally unique type
chosen by the plugin creating the node. Should be descriptive of the
node as the type is used in forming GraphQL types so users will query
for nodes based on the type chosen here. Nodes of a given type can
only be created by one plugin.
@param {string} node.internal.content An optional field. This is rarely
used. It is used when a source plugin sources data it doesn't know how
to transform e.g. a markdown string pulled from an API. The source plugin
can defer the transformation to a specialized transformer plugin like
gatsby-transformer-remark. This `content` field holds the raw content
(so for the markdown case, the markdown string).

Data that's already structured should be added to the top-level of the node
object and _not_ added here. You should not `JSON.stringify` your node's
data here.

If the content is very large and can be lazy-loaded, e.g. a file on disk,
you can define a `loadNodeContent` function for this node and the node
content will be lazy loaded when it's needed.
@param {string} node.internal.contentDigest the digest for the content
of this node. Helps Gatsby avoid doing extra work on data that hasn't
changed.
@param {string} node.internal.description An optional field. Human
readable description of what this node represent / its source. It will
be displayed when type conflicts are found, making it easier to find
and correct type conflicts.
@param {string} node.internal.contentFilePath An optional field. A plugin
can add an absolute path to a content file (e.g. markdown file) here
while creating the node. Example: gatsby-plugin-mdx adds the absolute path
of the `File` node to the `Mdx` node under `internal.contentFilePath`.
@returns {Promise} The returned Promise resolves when all cascading
`onCreateNode` API calls triggered by `createNode` have finished.
@example
createNode({
  // Data for the node.
  field1: `a string`,
  field2: 10,
  field3: true,
  ...arbitraryOtherData,

  // Required fields.
  id: `a-node-id`,
  parent: `the-id-of-the-parent-node`, // or null if it's a source node without a parent
  children: [],
  internal: {
    type: `CoolServiceMarkdownField`,
    contentDigest: crypto
      .createHash(`md5`)
      .update(JSON.stringify(fieldData))
      .digest(`hex`),
    mediaType: `text/markdown`, // optional
    content: JSON.stringify(fieldData), // optional
    description: `Cool Service: "Title of entry"`, // optional
  }
})