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

@dotdev/gatsby-source-navigation

Package Overview
Dependencies
Maintainers
16
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dotdev/gatsby-source-navigation

Gatsby source plugin for sourcing custom navigation solution. Currently uses Firebase Firestore as a data source.

  • 2.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
16
Created
Source

@dotdev/gatsby-source-navigation

Gatsby source plugin for sourcing custom navigation solution. Currently uses Firebase Firestore as a data source.

Usage

  1. Get Firebase config from Firebase project.

  2. Add @dotdev/gatsby-source-navigation as a dependency by running using npm or yarn:

    npm i @dotdev/gatsby-source-navigation
    # or
    yarn add @dotdev/gatsby-source-navigation
    
  3. Configure settings at gatsby-config.js, for example:

    module.exports = {
       plugins: [
         {
           resolve: `@dotdev/gatsby-source-navigation`,
           options: {
             // Note that this can be simplified by importing the config as an object, 
             // thereby abstracting the dependency on Firebase.
             // This example merely shows what is required.
             appConfig: {
               apiKey: "api-key",
               authDomain: "project-id.firebaseapp.com",
               databaseURL: "https://project-id.firebaseio.com",
               projectId: "project-id",
               storageBucket: "project-id.appspot.com",
               messagingSenderId: "sender-id",
               appID: "app-id",
    
             },
             types: [
               {
                 type: "Navigation",
                 collection: "navigation",
                 map: doc => ({
                   active: doc.active,
                   type: doc.type,
                   items: doc.items, // Will return all sub navigation levels as well
                 }),
               },
             ],
           },
         },
       ],
     }
    

    Note that you will need to have navigation in Firestore matching this schema before Gatsby can query correctly.

  4. Test GraphQL query:

{
  allNavigation {
    edges {
      node {
        active
        type
        items {
          items {
            items {
              label
              order
              url
            }
            label
            order
            url
          }
          order
          label
          url
        }
      }
    }
  }
}

Configurations

KeyDescription
appConfigApp config required to initialise Firebase
typesArray of types, which require the following keys (type, collection, map)
types.typeThe type of the collection, which will be used in GraphQL queries, e.g. when type = Book, the GraphQL types are named book and allBook
types.collectionThe name of the collections in Firestore. Nested collections are not tested
types.mapA function to map your data in Firestore to Gatsby nodes, utilize the undocumented ___NODE to link between nodes

Acknowledgement

Keywords

FAQs

Package last updated on 08 Nov 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

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