expose transformers and types
This commit is contained in:
parent
833a4900da
commit
ceb8e812b6
@ -2,12 +2,13 @@ module.exports = File;
|
|||||||
|
|
||||||
var SHEBANG_REGEX = /^\#\!.*/;
|
var SHEBANG_REGEX = /^\#\!.*/;
|
||||||
|
|
||||||
var transform = require("./transformation/transform");
|
var Transformer = require("./transformation/transformer");
|
||||||
var generate = require("./generation/generator");
|
var transform = require("./transformation/transform");
|
||||||
var Scope = require("./traverse/scope");
|
var generate = require("./generation/generator");
|
||||||
var util = require("./util");
|
var Scope = require("./traverse/scope");
|
||||||
var t = require("./types");
|
var util = require("./util");
|
||||||
var _ = require("lodash");
|
var t = require("./types");
|
||||||
|
var _ = require("lodash");
|
||||||
|
|
||||||
function File(opts) {
|
function File(opts) {
|
||||||
this.opts = File.normaliseOptions(opts);
|
this.opts = File.normaliseOptions(opts);
|
||||||
@ -28,10 +29,21 @@ File.declarations = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
File.normaliseOptions = function (opts) {
|
File.normaliseOptions = function (opts) {
|
||||||
opts = _.cloneDeep(opts || {});
|
opts = opts || {};
|
||||||
|
|
||||||
|
_.each(opts.transformers, function (transformer, i) {
|
||||||
|
if (!(transformer instanceof Transformer)) {
|
||||||
|
throw new TypeError("opts.transformers[" + i + "] isn't an instance of Transformer");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
opts = _.cloneDeep(opts, function (value) {
|
||||||
|
return value instanceof Transformer ? value : undefined;
|
||||||
|
});
|
||||||
|
|
||||||
_.defaults(opts, {
|
_.defaults(opts, {
|
||||||
experimental: false,
|
experimental: false,
|
||||||
|
transformers: [],
|
||||||
playground: false,
|
playground: false,
|
||||||
whitespace: true,
|
whitespace: true,
|
||||||
blacklist: [],
|
blacklist: [],
|
||||||
@ -180,6 +192,10 @@ File.prototype.transform = function (ast) {
|
|||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
|
_.each(this.opts.transformers, function (transformer) {
|
||||||
|
transformer.transform(self);
|
||||||
|
});
|
||||||
|
|
||||||
_.each(transform.transformers, function (transformer) {
|
_.each(transform.transformers, function (transformer) {
|
||||||
transformer.transform(self);
|
transformer.transform(self);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -3,6 +3,10 @@ var util = require("./util");
|
|||||||
var fs = require("fs");
|
var fs = require("fs");
|
||||||
var _ = require("lodash");
|
var _ = require("lodash");
|
||||||
|
|
||||||
|
exports.Transformer = require("./transformation/transformer");
|
||||||
|
|
||||||
|
exports.types = require("./types");
|
||||||
|
|
||||||
exports.runtime = require("./runtime");
|
exports.runtime = require("./runtime");
|
||||||
|
|
||||||
exports.register = function (opts) {
|
exports.register = function (opts) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user