I'm extremely stupid and didn't commit as I go. To anyone reading this I'm extremely sorry. A lot of these changes are very broad and I plan on releasing Babel 6.0.0 today live on stage at Ember Camp London so I'm afraid I couldn't wait. If you're ever in London I'll buy you a beer (or assorted beverage!) to make up for it, also I'll kiss your feet and give you a back massage, maybe.
43 lines
926 B
JavaScript
43 lines
926 B
JavaScript
/* @flow */
|
|
|
|
import type Plugin from "./plugin";
|
|
import Store from "../store";
|
|
import traverse from "babel-traverse";
|
|
import File from "./file";
|
|
|
|
export default class PluginPass extends Store {
|
|
constructor(file: File, plugin: Plugin, options: Object = {}) {
|
|
super();
|
|
this.plugin = plugin;
|
|
this.file = file;
|
|
this.opts = options;
|
|
}
|
|
|
|
plugin: Plugin;
|
|
file: File;
|
|
opts: Object;
|
|
|
|
transform() {
|
|
let file = this.file;
|
|
file.log.debug(`Start transformer ${this.key}`);
|
|
traverse(file.ast, this.plugin.visitor, file.scope, file);
|
|
file.log.debug(`Finish transformer ${this.key}`);
|
|
}
|
|
|
|
addHelper(...args) {
|
|
return this.file.addHelper(...args);
|
|
}
|
|
|
|
addImport(...args) {
|
|
return this.file.addImport(...args);
|
|
}
|
|
|
|
getModuleName(...args) {
|
|
return this.file.getModuleName(...args);
|
|
}
|
|
|
|
buildCodeFrameError(...args) {
|
|
return this.file.buildCodeFrameError(...args);
|
|
}
|
|
}
|