diff options
Diffstat (limited to 'lib/models/output.js')
-rw-r--r-- | lib/models/output.js | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/lib/models/output.js b/lib/models/output.js new file mode 100644 index 0000000..43e36f8 --- /dev/null +++ b/lib/models/output.js @@ -0,0 +1,93 @@ +var Immutable = require('immutable'); + +var Book = require('./book'); + +var Output = Immutable.Record({ + book: Book(), + + // Name of the generator being used + generator: String(), + + // Map of plugins to use (String -> Plugin) + plugins: Immutable.OrderedMap(), + + // Map pages to generation (String -> Page) + pages: Immutable.OrderedMap(), + + // List assets (String) + assets: Immutable.List(), + + // Option for the generation + options: Immutable.Map(), + + // Internal state for the generation + state: Immutable.Map() +}); + +Output.prototype.getBook = function() { + return this.get('book'); +}; + +Output.prototype.getGenerator = function() { + return this.get('generator'); +}; + +Output.prototype.getPlugins = function() { + return this.get('plugins'); +}; + +Output.prototype.getPages = function() { + return this.get('pages'); +}; + +Output.prototype.getOptions = function() { + return this.get('options'); +}; + +Output.prototype.getAssets = function() { + return this.get('assets'); +}; + +Output.prototype.getState = function() { + return this.get('state'); +}; + +/** + Get root folder for output + + @return {String} +*/ +Output.prototype.getRoot = function() { + return this.getOptions().get('root'); +}; + +/** + Update state of output + + @param {Map} newState + @return {Output} +*/ +Output.prototype.setState = function(newState) { + return this.set('state', newState); +}; + +/** + Update options + + @param {Map} newOptions + @return {Output} +*/ +Output.prototype.setOptions = function(newOptions) { + return this.set('options', newOptions); +}; + +/** + Return logegr for this output (same as book) + + @return {Logger} +*/ +Output.prototype.getLogger = function() { + return this.getBook().getLogger(); +}; + +module.exports = Output; |