From bd78e3ed4dc93eef941c74653adc68a17ba0cd51 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 16 Dec 2014 08:06:38 +1100 Subject: [PATCH] add end/start user transformers --- lib/6to5/file.js | 18 +++++++++++++++--- lib/6to5/transformation/transformer.js | 3 ++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/6to5/file.js b/lib/6to5/file.js index c5763f991f..b4a926745d 100644 --- a/lib/6to5/file.js +++ b/lib/6to5/file.js @@ -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 () { diff --git a/lib/6to5/transformation/transformer.js b/lib/6to5/transformation/transformer.js index fdac3442e9..43f5a1b7c7 100644 --- a/lib/6to5/transformation/transformer.js +++ b/lib/6to5/transformation/transformer.js @@ -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; }