gatsby-page-utils
Usage
npm install gatsby-page-utils
Example
const {
createPath,
ignorePath,
validatePath,
watchDirectory,
} = require(`gatsby-page-utils`)
const pagesDirectory = "/pages"
watchDirectory(
pagesDirectory,
"**/*.{js, jsx}",
addedPath => {
if (!validatePath(addedPath)) {
return
}
if (ignorePath(addedPath, "*/connexion")) {
return
}
const createdPath = createPath(addedPath)
const page = {
path: createdPath,
component: systemPath.join(pagesDirectory, addedPath),
}
createPage(page)
},
removedPath => {
const componentPath = systemPath.join(pagesDirectory, removedPath)
store.getState().pages.forEach(page => {
if (page.component === componentPath) {
deletePage({
path: createPath(removedPath),
component: componentPath,
})
}
})
}
)
watchDirectory
Watch activity on a directory and call functions each time a file is added or removed
| path | Directory path in which pages are stored | String |
| glob | A glob that select files to watch | String |
| onNewFile | A function called each time a new file is added | Function |
| onRemovedFile | A function called each time a file is removed | Function |
createPath
Create a page path from a file path. It returns the page path.
validatePath
Validate a file path. It verifies that the path doesn't contain specific characters or strings. It returns true if the path is valid otherwise it returns false.
ignorePath
Determines if path should be ignored regarding of a ignore pattern passed as parameter. It returns true if the passed path should be ignored otherwise it returns false.
| path | File path | String |
| ignore | A pattern to match with file path | (Object | String | Array) |