json-fs
convert JSON to files and directories and back
Getting Started
Install the module with: npm install json-fs
Refer to it in Node.JS with: require('json-fs')
Command-Line Interface
This module provides basic CLI tools. The easiest way to access them is to install the module globally (with permission):
npm install -g json-fs
You'll be able to run json2fs
and fs2json
for convenient access to the
functionality provided by the library. You can run them with -h
or --help
to see basic instructions.
json2fs
reads a JSON stream from stdin and modifies the current working
directory accordingly. Make sure to cd
to your target directory first!
json2fs < path/to/file.json
fs2json
writes a JSON stream to stdout, based on the current working
directory. This doesn't modify the file-system, so it's safe to run anywhere.
fs2json > path/to/file.json
Documentation
- specification for data type mapping
Whilst a JSON document containing only a Null, Boolean, Number or String may be considered valid for other purposes, JSON-FS is only intended for use with valid JSON documents that specify an Array or Object.
Generating API Documentation
You may build the documentation using JSDoc3 with the following grunt task (note this requires Java and JAVA_HOME to be set):
grunt doc
The HTML documentation will be built in the doc/jsdoc
directory.
Examples
FSBuilder
var fsBuilder = new require('json-fs').FSBuilder();
fsBuilder.setSource({ object: 'or array', [ 'to', 'store', 'as', 'files' ] });
fsBuilder.setOutput('/path/to/output/directory')
fsBuilder.build(function (err) {
if (err) {
throw err;
}
// otherwise, the contents of the directory have been built!
});
JSONBuilder
var jsonBuilder = new require('json-fs').JSONBuilder();
jsonBuilder.setSource('/path/to/input/directory')
jsonBuilder.build(function (err, result) {
if (err) {
throw err;
}
// otherwise, result will be an Object or Array as per the directory
});
Contributing
Formal style-guide for this project is JSLint. See JSLint settings at the top of each file.
Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
grunt test
This project uses Git Flow, so the master branch always reflects what is in production (i.e. what is in the NPM repository). New code should be merged into the develop branch.
Release History
See GitHub Releases
License
Copyright (c) 2013 Ron Waldon Licensed under the MIT license.