fly-flatten
v1.0.1
Published
Flatten all source files to a specified maximum of sub-directories.
Downloads
28
Maintainers
Readme
fly-flatten
Flatten all source files to a specified maximum of sub-directories.
A source's directory structure isn't always desirable in the output. With fly-flatten
, you may dictate how many parent directories of a file to keep.
Install
npm install --save-dev fly-flatten
Usage
src
├── images
│ ├── img.jpg
│ ├── foo
│ ├── foo.jpg
│ ├── bar
│ ├── bar.jpg
exports.images = function * (fly) {
yield fly.source('src/images/**/*.jpg').flatten({ levels: 1 }).target('dist/img');
}
# output
dist
├── img
│ ├── img.jpg
│ ├── foo
│ ├── foo.jpg
│ ├── bar
│ ├── bar.jpg
API
.flatten(options)
options.levels
Type: Number
Default: 0
The number of sub-directories allowed in relation to your glob root.
Examples
All examples use the demo file tree listed above.
Level: 0
No parent directories are kept.
Note: The
img
directory is kept because we've used.target('dist/img')
.
dist
├── img
│ ├── img.jpg
│ ├── foo.jpg
│ ├── bar.jpg
Level: 1
Each file is allowed to keep 1 parent directory.
dist
├── img
│ ├── img.jpg
│ ├── foo
│ ├── foo.jpg
│ ├── bar
│ ├── bar.jpg
Level: 5
Our file tree is only 2 levels deep (images [0]/foo [1]/bar [2]/bar.jpg
). Because our "allowed levels" exceeds our tree depth, fly-flatten
won't do anthing and so the entire structure will be copied.
dist
├── img
│ ├── img.jpg
│ ├── foo
│ ├── foo.jpg
│ ├── bar
│ ├── bar.jpg
License
MIT © Luke Edwards