add end/start user transformers

This commit is contained in:
Sebastian McKenzie
2014-12-16 08:06:38 +11:00
parent 1f990f4030
commit bd78e3ed4d
2 changed files with 17 additions and 4 deletions

View File

@@ -192,13 +192,25 @@ File.prototype.transform = function (ast) {
var self = this;
_.each(this.opts.transformers, function (transformer) {
transformer.transform(self);
});
var runUserTransformers = function (end) {
_.each(self.opts.transformers, function (transformer) {
if (transformer.opts.end) {
if (!end) return;
} else if (end) {
return;
}
transformer.transform(self);
});
};
runUserTransformers();
_.each(transform.transformers, function (transformer) {
transformer.transform(self);
});
runUserTransformers(true);
};
File.prototype.generate = function () {

View File

@@ -4,8 +4,9 @@ var traverse = require("../traverse");
var t = require("../types");
var _ = require("lodash");
function Transformer(key, transformer) {
function Transformer(key, transformer, opts) {
this.transformer = Transformer.normalise(transformer);
this.opts = opts || {};
this.key = key;
}