JSTransformer
Normalize the API of any jstransformer
Installation
npm install jstransformer
Usage
var transformer = require('jstransformer');
var marked = transformer(require('jstransformer-marked'));
var options = {};
var res = marked.render('Some **markdown**', options);
// => {body: 'Some <strong>markdown</strong>', dependencies: []}
This gives the same API regardless of the jstransformer passed in.
API
A transformer, once normalised using this module, will implement the following methods. Note that if the underlying transformer cannot be used to implement the functionality, it may ultimately just throw an error.
.render*
Returned object from {body: String, dependencies: Array.<String>}
-
body
represents the result as a string -
dependencies
is an array of files that were read in as part of the render process (or an empty array if there were no dependencies)
.render
transformer.render(str, options, locals);
=> {body: String, dependencies: Array.<String>}
requires the underlying transform to implement .render
or .compile
Transform a string and return an object.
.renderAsync
transformer.renderAsync(str[, options], locals, callback);
transformer.renderAsync(str[, options], locals);
=> Promise({body: String, dependencies: Array.<String>})
requires the underlying transform to implement .renderAsync
or .render
Transform a string asynchronously. If a callback is provided, it is called as callback(err, data)
, otherwise a Promise is returned.
.renderFile
transformer.renderFile(filename, options, locals)
=> {body: String, dependencies: Array.<String>}
requires the underlying transform to implement .renderFile
, .render
, .compileFile
, or .compile
Transform a file and return an object.
.renderFileAsync
transformer.renderFileAsync(filename[, options], locals, callback);
transformer.renderFileAsync(filename[, options], locals);
=> Promise({body: String, dependencies: Array.<String>})
requires the underlying transform to implement .renderFileAsync
, .renderFile
, .renderAsync
, .render
, .compileFileAsync
, .compileFile
, .compileAsync
, or .compileFile
Transform a file asynchronously. If a callback is provided, it is called as callback(err, data)
, otherwise a Promise is returned.
.inputFormats
var formats = transformer.inputFormats;
=> ['md', 'markdown']
Returns an array of strings representing potential input formats for the transform. If not provided directly by the transform, results in an array containing the name of the transform.
.outputFormat
var md = require('jstransformer')(require('jstransformer-markdown'))
var outputFormat = md.outputFormat
=> 'html'
Returns a string representing the default output format the transform would be expected to return when calling .render()
.
License
MIT