Complete generator name in plugins API

This commit is contained in:
Samy Pessé
2016-04-27 09:59:09 +02:00
parent 93c26a839b
commit f4de7748f5
3 changed files with 59 additions and 7 deletions
+6
View File
@@ -24,6 +24,12 @@ function encodeConfig(output, config) {
deprecate.field(output, 'config.options', result, 'options',
result.values, '"config.options" property is deprecated, use "config.get(key)" instead');
deprecate.field(output, 'config.options.generator', result.values, 'generator',
output.getGenerator(), '"options.generator" property is deprecated, use "output.name" instead');
deprecate.field(output, 'config.options.generator', result.values, 'output',
output.getRoot(), '"options.output" property is deprecated, use "output.root()" instead');
return result;
}
+37 -7
View File
@@ -1,6 +1,6 @@
var path = require('path');
var fs = require('../utils/fs');
var Promise = require('../utils/promise');
var PathUtils = require('../utils/promise');
var deprecate = require('./deprecate');
var encodeConfig = require('./encodeConfig');
@@ -15,8 +15,7 @@ var encodeConfig = require('./encodeConfig');
function encodeGlobal(output) {
var book = output.getBook();
var logger = output.getLogger();
var outputFolder = output.getOptions().get('root');
var outputFolder = output.getRoot();
var result = {
log: logger,
@@ -24,15 +23,46 @@ function encodeGlobal(output) {
};
result.output = {
name: 'website',
/**
Name of the generator being used
{String}
*/
name: output.getGenerator(),
/**
Return absolute path to the root folder of output
@return {String}
*/
root: function() {
return outputFolder;
},
/**
Convert a filepath into an url
@return {String}
*/
toURL: function(s) {
return s;
},
/**
Write a file to the output folder,
It creates the required folder
@param {String} fileName
@param {Buffer} content
@return {Promise}
*/
writeFile: function(fileName, content) {
var filePath = path.join(outputFolder, fileName);
return fs.writeFile(filePath, content);
return Promise()
.then(function() {
var filePath = PathUtils.resolveInRoot(outputFolder, fileName);
return fs.ensure(filePath)
.then(function() {
return fs.writeFile(filePath, content);
});
});
}
};
+16
View File
@@ -5,6 +5,9 @@ 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(),
@@ -25,6 +28,10 @@ Output.prototype.getBook = function() {
return this.get('book');
};
Output.prototype.getGenerator = function() {
return this.get('generator');
};
Output.prototype.getPlugins = function() {
return this.get('plugins');
};
@@ -45,6 +52,15 @@ Output.prototype.getState = function() {
return this.get('state');
};
/**
Get root folder for output
@return {String}
*/
Output.prototype.getRoot = function() {
return this.getOptions().get('root');
};
/**
Return logegr for this output (same as book)