Socket
Book a DemoInstallSign in
Socket

gulp-folder-index

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gulp-folder-index

Convert a buffer of files into a JSON representation of the folder structure with configurable file extension adjustments

0.0.3
latest
Source
npmnpm
Version published
Weekly downloads
5
-73.68%
Maintainers
1
Weekly downloads
 
Created
Source

gulp-folder-index

NPM version Build Status

Convert a buffer of files into a JSON representation of the directory structure using gulp, with configurable file extension

Usage

First, install gulp-folder-index as a development dependency:

npm install --save-dev gulp-folder-index

Then, add it to your gulpfile.js:

let folderIndex = require("gulp-folder-index");

gulp.src('app/**/*.yml')
  .pipe(folderIndex({
    extension: '.json',       // default
    filename: 'index.json',   // default
    prefix: '',               // default
    directory: false          // default
  }))
  .pipe(gulp.dest('dist'));

Given this directory structure...

app
  | folder-1
    | folder-2
      | something.yml
    | faqs.yml
  | folder-3
    |_folder-4
      | something-else.yml
  | hello-world.yml

... this JSON object would be written to dist/index.json:

[
  "hello-world.json",
  "folder-1/faqs.json",
  "folder-1/folder2/something.json",
  "folder-3/folder-4/something-else.json"
]

This is useful for mapping out a directory structure after passing files through a pre-processor, generating data to create navigation during build, and more. Have fun!

API

folder-index(options)

options.filename

Type: String
Default: index.json

The path to write the directory structure JSON file to.

options.prefix

Type: String Default: none

A string to prepend to every url.

Given the directory structure above, specifiying prefix: 'prefixed-folder' would generate this JSON:

[
  "prefixed-folder/hello-world.json",
  "prefixed-folder/folder-1/faqs.json",
  "prefixed-folder/folder-1/folder2/something.json",
  "prefixed-folder/folder-3/folder-4/something-else.json"
]

options.extension

Type: String Default: json

An extension string to replace the original with.

Given the directory structure above, specifiying extension: 'html' would generate this JSON:

[
  "hello-world.html",
  "folder-1/faqs.html",
  "folder-1/folder2/something.html",
  "folder-3/folder-4/something-else.html"
]

options.directory

Type: Boolean Default: false

An extension boolean to generate json with directory and path.

Given the directory structure above, specifiying directory: true would generate this JSON:

[
  {
    "directory": "",
    "path": "hello-world.json"
  },
  {
    "directory": "folder-1/",
    "path": "folder-1/faqs.json"
  },
  {
    "directory": "folder-1/folder2/",
    "path": "folder-1/folder2/something.json"
  },
  {
    "directory": "folder-3/folder-4/",
    "path": "folder-3/folder-4/something-else.json"
  }
]

Contributing

Contributions are welcomed. Please see the contributing notes for details.

License

MIT License

Thanks

Thanks to @masondesu for creating the gulp-directory-map upon which this is based.

Keywords

gulpplugin

FAQs

Package last updated on 01 Feb 2018

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

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.