kevzettler
kevzettler

Reputation: 5213

gatsby-source-filesystem allDirectory how to exclude root directory

I have gatsby-source-filesystem configured like:

module.exports = {
  /* Your site config here */
  plugins: [
    {
      resolve: `gatsby-source-filesystem`,
      options:{
        name: `dosbox`,
        path: `${__dirname}/src/dosbox/`,
      }
    },
  ],
}

I want to query for subdirectories in the dosbox directory. I don't want to return a reference to the dosbox directory itself. I use the following query

query MyQuery {
  allDirectory(filter: {sourceInstanceName: {eq: "dosbox"}}) {
    edges {
      node {
        name
        dir
        modifiedTime
      }
    }
  }
}

This returns the following result. That returns the undesired root dosbox directory.

{
  "data": {
    "allDirectory": {
      "edges": [
        {
          "node": {
            "name": "dosbox",
            "dir": "/Users/kevzettler/code/radlab/src",
            "modifiedTime": "2020-09-09T04:52:09.400Z"
          }
        },
        {
          "node": {
            "name": "DOOM",
            "dir": "/Users/kevzettler/code/radlab/src/dosbox",
            "modifiedTime": "2020-09-09T05:22:20.000Z"
          }
        }
      ]
    }
  },
  "extensions": {}
}

Upvotes: 0

Views: 574

Answers (1)

Ali Mousavi
Ali Mousavi

Reputation: 915

You can exclude it in your query using the ne operator:

query MyQuery {
  allDirectory(filter: {sourceInstanceName: {eq: "dosbox"}, name: { ne: "dosbox" }}) {
    edges {
      node {
        name
        dir
        modifiedTime
      }
    }
  }
}

Upvotes: 1

Related Questions