Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Convert an array of objects into a persistent or temporary directory structure.
fsify
creates a persistent or temporary directory structure from an array of objects. It's like the opposite of the Linux and Unix tree
command.
npm install fsify
.
├── dirname
│ └── filename
└── filename
const fsify = require('fsify')()
const structure = [
{
type: fsify.DIRECTORY,
name: 'dirname',
contents: [
{
type: fsify.FILE,
name: 'filename',
contents: 'data'
}
]
},
{
type: fsify.FILE,
name: 'filename',
contents: 'data'
}
]
fsify(structure)
.then((structure) => console.log(structure))
.catch((err) => console.error(err))
.
└── dirname
└── dirname
└── filename
const fsify = require('fsify')()
const structure = [
{
type: fsify.DIRECTORY,
name: 'dirname',
contents: [
{
type: fsify.DIRECTORY,
name: 'dirname',
contents: [
{
type: fsify.FILE,
name: 'filename'
}
]
}
]
}
]
fsify(structure)
.then((structure) => console.log(structure))
.catch((err) => console.error(err))
dirname/
└── filename
const fsify = require('fsify')({
cwd: 'dirname/',
persistent: false
})
const structure = [
{
type: fsify.FILE,
name: 'filename'
}
]
fsify(structure)
.then((structure) => console.log(structure))
.catch((err) => console.error(err))
tree -J
tree
is a Linux and Unix command that lists the contents of directories in a tree-like format. It's a helpful CLI to view the structure of your file system. The flag -J
prints out an JSON representation of the tree. The output can be used in fsify
.
tree -J > tree.json
const fs = require('fs')
const fsify = require('fsify')()
const structure = fs.readFileSync('tree.json', 'utf8')
fsify(structure)
.then((structure) => console.log(structure))
.catch((err) => console.error(err))
const fsify = require('fsify')()
const fsify = require('fsify')({
cwd: process.cwd(),
persistent: true,
force: false
})
opts
{?Object}
Options.
cwd
{?String}
- Custom relative or absolute path. Defaults to process.cwd()
.persistent
{?Boolean}
- Keep directories and files even when the process exists. Defaults to true
.force
{?Boolean}
- Allow deleting the current working directory and outside.instance
{Function}({?Array})
fsify instance.const structure = [
{
type: fsify.FILE,
name: 'filename'
}
]
fsify(structure)
.then((structure) => console.log(structure))
.catch((err) => console.error(err))
structure
{?Array}
Array of objects containing information about a directory or file.{Promise}({Array})
A promise that resolves a structure. Equal to the input structure, but parsed and with a absolute path as the name.A structure is an array of objects that represents a directory structure. Each object must contain information about a directory or file.
The structure …
.
├── dirname
│ └── filename
└── filename
… is equal to …
[
{
type: fsify.DIRECTORY,
name: 'dirname',
contents: [
{
type: fsify.FILE,
name: 'filename',
contents: 'data'
}
]
},
{
type: fsify.FILE,
name: 'filename',
contents: 'data'
}
]
A directory must have the type
of a directory and a name
. It can also contain another nested structure in its contents
and a mode
.
{
type: fsify.DIRECTORY,
name: 'dirname',
mode: 0o777,
contents: []
}
A file must have the type
of a file and a name
. It can also contain contents
(data of the file). encoding
, mode
and flag
will be passed directly to fs.writeFile
.
{
type: fsify.FILE,
name: 'filename',
contents: 'data',
encoding: 'utf8',
mode: 0o666,
flag: 'w'
}
FAQs
Convert an array of objects into a persistent or temporary directory structure
We found that fsify demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.