sweet-data v0.1.4
sweet-data - Nodejs plugin
Fork of pretty-data
nodejs plugin to pretty-print or minify text in XML, JSON, CSS and SQL formats.
NOTE: This library is under active development and is subject to breaking changes. Thank you for your patience and your support.
License: Dual licensed under the MIT and GPL licenses:
http://www.opensource.org/licenses/mit-license.php
http://www.gnu.org/licenses/gpl.html
Overview
sd.xml(data)- pretty print XML;sd.json(data)- pretty print JSON;sd.css(data)- pretty print CSS;sd.sql(data)- pretty print SQL;sd.xmlmin(data [, preserveComments])- minify XML;sd.jsonmin(data)- minify JSON text;sd.cssmin(data [, preserveComments] )- minify CSS text;sd.sqlmin(data)- minify SQL text;sd.setStep([indentationCount, indentationChar])- update indentation character(s) and character count (per depth).SPACEorTABwill use respective characters. Any other character provided will be assumed as ' '. Default values areSPACEand 2
USAGE
var sd = require('sweet-data');
var xml_pp = sd.xml(data);
var xml_min = sd.xmlmin(data [,true]);
var css_pp = sd.css(data);
var css_min = sd.cssmin(data [, true]);
var sql_pp = sd.sql(data);
var sql_min = sd.sqlmin(data);
CONFIGURATION
setStep(indentationCount, indentationChar)
Set indentation character(s) and character count (per depth). SPACE or TAB will use respective characters. Any other character provided will be assumed as ' '.
Default values are SPACE and 2
JSON
json(json: string | object)
Returns a promise which is resolved asynchronously when the json input (string or object) is parsed and beautified. The promise resolves a string accessed via .then(). Errors can be caught/handled via .catch().
ES6
import { SweetData as sd } from 'sweet-data';
const json = { "foo": "bar" };
sd.json(json)
.then(beautifiedJSON => console.log(beautifiedJSON))
.catch(error => console.log(error));CommonJS
const sd = require('sweet-data');
const json = { "foo": "bar" };
sd.json(json)
.then(beautifiedJSON => console.log(beautifiedJSON))
.catch(error => console.log(error));JSON Minification
jsonmin(json: string | object)
Returns a promise which is resolved asynchronously when the json input (string or object) is parsed and minified. The promise resolves a string accessed via .then(). Errors can be caught/handled via .catch().
ES6
import { SweetData as sd } from 'sweet-data';
const json = { "foo": "bar" };
sd.jsonmin(json)
.then(minifiedJSON => console.log(minifiedJSON))
.catch(error => console.log(error));CommonJS
const sd = require('sweet-data');
const json = { "foo": "bar" };
sd.jsonmin(json)
.then(minifiedJSON => console.log(minifiedJSON))
.catch(error => console.log(error));XML
xml(xml: string)
Returns a promise which is resolved asynchronously when the xml string input is beautified. The promise resolves a string accessed via .then(). Errors can be caught/handled via .catch().
ES6
import { SweetData as sd } from 'sweet-data';
const xml = '<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE foo SYSTEM "Foo.dtd"><a> <b>bbb</b> <!-- comment --><c/><d><soapenv:Envelope xmlns:soapenv="http://xxx" xmlns:xsd="http://yyy" xmlns:xsi="http://zzz"></soapenv> </d><e> <![CDATA[ <z></z> ]]></e><f><g></g></f></a>';
sd.xml(xml)
.then(beautifiedXML => console.log(beautifiedXML))
.catch(error => console.log(error));CommonJS
const sd = require('sweet-data');
const xml = '<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE foo SYSTEM "Foo.dtd"><a> <b>bbb</b> <!-- comment --><c/><d><soapenv:Envelope xmlns:soapenv="http://xxx" xmlns:xsd="http://yyy" xmlns:xsi="http://zzz"></soapenv> </d><e> <![CDATA[ <z></z> ]]></e><f><g></g></f></a>';
sd.xml(xml)
.then(beautifiedXML => console.log(beautifiedXML))
.catch(error => console.log(error));XML Minification
xmlmin(xml: string)
Returns a promise which is resolved asynchronously when the xml string input is minified. The promise resolves a string accessed via .then(). Errors can be caught/handled via .catch().
ES6
import { SweetData as sd } from 'sweet-data';
const xml = '<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE foo SYSTEM "Foo.dtd"><a> <b>bbb</b> <!-- comment --><c/><d><soapenv:Envelope xmlns:soapenv="http://xxx" xmlns:xsd="http://yyy" xmlns:xsi="http://zzz"></soapenv> </d><e> <![CDATA[ <z></z> ]]></e><f><g></g></f></a>';
sd.xmlmin(xml)
.then(minifiedXML => console.log(minifiedXML))
.catch(error => console.log(error));CommonJS
const sd = require('sweet-data');
const xml = '<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE foo SYSTEM "Foo.dtd"><a> <b>bbb</b> <!-- comment --><c/><d><soapenv:Envelope xmlns:soapenv="http://xxx" xmlns:xsd="http://yyy" xmlns:xsi="http://zzz"></soapenv> </d><e> <![CDATA[ <z></z> ]]></e><f><g></g></f></a>';
sd.xmlmin(xml)
.then(minifiedXML => console.log(minifiedXML))
.catch(error => console.log(error));Tests
Install dependencies using npm install
Run tests
npm testWatch tests
npm run test-watchPARAMETERS:
@data - String; XML, JSON, CSS or SQL text to beautify;
@preserveComments - Bool (optional, used in npp.minxml and npp.mincss only);
Set this flag to true to prevent removing comments from @data;
@Return - String | Promise(String);
@indentationCount - Numeric (optional, used to set number of indentation (per level))
@indentationChar - String (optional, indentation character. SPACE or TAB* will use
respective characters, other values will assume a single space ())
*`TAB` may not be visible in your editor within the web browser.