From 866d3a8eab67410d0270c0bb2502b04bc00f6cfe Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 16 Mar 2015 01:45:08 +1100 Subject: [PATCH] move file into a separate folder --- .../transformation/{file.js => file/index.js} | 54 +++++++------------ src/babel/transformation/{ => file}/logger.js | 8 ++- .../transformation/file/option-parsers.js | 20 +++++++ .../transformation/{ => file}/options.json | 6 +++ .../transformers/playground/method-binding.js | 8 +-- .../playground/object-getter-memoization.js | 2 +- test/_transformation-helper.js | 1 + 7 files changed, 57 insertions(+), 42 deletions(-) rename src/babel/transformation/{file.js => file/index.js} (89%) rename src/babel/transformation/{ => file}/logger.js (74%) create mode 100644 src/babel/transformation/file/option-parsers.js rename src/babel/transformation/{ => file}/options.json (96%) diff --git a/src/babel/transformation/file.js b/src/babel/transformation/file/index.js similarity index 89% rename from src/babel/transformation/file.js rename to src/babel/transformation/file/index.js index a8a63a02f8..22559262c1 100644 --- a/src/babel/transformation/file.js +++ b/src/babel/transformation/file/index.js @@ -1,24 +1,25 @@ import convertSourceMap from "convert-source-map"; +import * as optionParsers from "./option-parsers"; import shebangRegex from "shebang-regex"; -import TraversalPath from "../traversal/path"; +import TraversalPath from "../../traversal/path"; import isFunction from "lodash/lang/isFunction"; import isAbsolute from "path-is-absolute"; -import resolveRc from "../tools/resolve-rc"; +import resolveRc from "../../tools/resolve-rc"; import sourceMap from "source-map"; -import transform from "./index"; -import generate from "../generation"; +import transform from "./../index"; +import generate from "../../generation"; import defaults from "lodash/object/defaults"; import includes from "lodash/collection/includes"; -import traverse from "../traversal"; +import traverse from "../../traversal"; import assign from "lodash/object/assign"; import Logger from "./logger"; -import parse from "../helpers/parse"; -import Scope from "../traversal/scope"; +import parse from "../../helpers/parse"; +import Scope from "../../traversal/scope"; import slash from "slash"; -import * as util from "../util"; +import * as util from "../../util"; import path from "path"; import each from "lodash/collection/each"; -import * as t from "../types"; +import * as t from "../../types"; var checkTransformerVisitor = { enter(node, parent, scope, state) { @@ -105,20 +106,15 @@ export default class File { var val = opts[key]; if (val == null) val = option.default || null; + + var optionParser = optionParsers[option.type]; + if (optionParser) { + val = optionParser(key, val); + } + opts[key] = val; } - // - - defaults(opts, { - blacklist: [], - whitelist: [], - optional: [], - loose: [], - ignore: [], - only: [], - }); - if (opts.inputSourceMap) { opts.sourceMap = true; } @@ -135,17 +131,8 @@ export default class File { opts.basename = path.basename(opts.filename, path.extname(opts.filename)); - opts.blacklist = util.arrayify(opts.blacklist); - opts.whitelist = util.arrayify(opts.whitelist); - opts.optional = util.arrayify(opts.optional); - opts.compact = util.booleanify(opts.compact); - opts.loose = util.arrayify(opts.loose); - opts.ignore = util.arrayify(opts.ignore, util.regexify); - opts.only = util.arrayify(opts.only, util.regexify); - - if (includes(opts.loose, "all") || includes(opts.loose, true)) { - opts.loose = Object.keys(transform.transformers); - } + opts.ignore = util.arrayify(opts.ignore, util.regexify); + opts.only = util.arrayify(opts.only, util.regexify); defaults(opts, { moduleRoot: opts.sourceRoot @@ -170,11 +157,6 @@ export default class File { this.set("helpersNamespace", t.identifier("babelHelpers")); } - opts.blacklist = transform._ensureTransformerNames("blacklist", opts.blacklist); - opts.whitelist = transform._ensureTransformerNames("whitelist", opts.whitelist); - opts.optional = transform._ensureTransformerNames("optional", opts.optional); - opts.loose = transform._ensureTransformerNames("loose", opts.loose); - return opts; }; diff --git a/src/babel/transformation/logger.js b/src/babel/transformation/file/logger.js similarity index 74% rename from src/babel/transformation/logger.js rename to src/babel/transformation/file/logger.js index 29e185af9d..109019c810 100644 --- a/src/babel/transformation/logger.js +++ b/src/babel/transformation/file/logger.js @@ -1,4 +1,4 @@ -import * as util from "../util"; +import * as util from "../../util"; export default class Logger { constructor(file: File) { @@ -12,6 +12,12 @@ export default class Logger { return parts; } + deprecate(msg) { + if (!file.opts.suppressDeprecationMessages) { + console.error(msg); + } + } + debug(msg: string) { util.debug(this._buildMessage(msg)); } diff --git a/src/babel/transformation/file/option-parsers.js b/src/babel/transformation/file/option-parsers.js new file mode 100644 index 0000000000..a0a2cc33d2 --- /dev/null +++ b/src/babel/transformation/file/option-parsers.js @@ -0,0 +1,20 @@ +import transform from "./../index"; +import * as util from "../../util"; + +export function transformerList(key, val) { + val = util.arrayify(val); + + if (val.indexOf("all") >= 0 || val.indexOf(true) >= 0) { + val = Object.keys(transform.transformers); + } + + return transform._ensureTransformerNames(key, val); +} + +export function boolean(key, val) { + return util.booleanify(val); +} + +export function list(key, val) { + return util.list(val); +} diff --git a/src/babel/transformation/options.json b/src/babel/transformation/file/options.json similarity index 96% rename from src/babel/transformation/options.json rename to src/babel/transformation/file/options.json index 97c633f137..6824ebb66c 100644 --- a/src/babel/transformation/options.json +++ b/src/babel/transformation/file/options.json @@ -19,6 +19,12 @@ }, + "suppressDeprecationMessages": { + "type": "boolean", + "default": false, + "hidden": true + }, + "resolveModuleSource": { "hidden": true }, diff --git a/src/babel/transformation/transformers/playground/method-binding.js b/src/babel/transformation/transformers/playground/method-binding.js index ed92f512d6..86ec1312ae 100644 --- a/src/babel/transformation/transformers/playground/method-binding.js +++ b/src/babel/transformation/transformers/playground/method-binding.js @@ -3,8 +3,8 @@ import * as t from "../../../types"; export var playground = true; export var optional = true; -export function BindMemberExpression(node, parent, scope) { - console.error("Method binding is deprecated and will be removed in 5.0.0"); +export function BindMemberExpression(node, parent, scope, file) { + file.log.deprecate("Method binding is deprecated and will be removed in 5.0.0"); var object = node.object; var prop = node.property; @@ -27,8 +27,8 @@ export function BindMemberExpression(node, parent, scope) { } } -export function BindFunctionExpression(node, parent, scope) { - console.error("Method binding is deprecated and will be removed in 5.0.0"); +export function BindFunctionExpression(node, parent, scope, file) { + file.log.deprecate("Method binding is deprecated and will be removed in 5.0.0"); var buildCall = function (args) { var param = scope.generateUidIdentifier("val"); diff --git a/src/babel/transformation/transformers/playground/object-getter-memoization.js b/src/babel/transformation/transformers/playground/object-getter-memoization.js index 6fb0685e89..8c117811a7 100644 --- a/src/babel/transformation/transformers/playground/object-getter-memoization.js +++ b/src/babel/transformation/transformers/playground/object-getter-memoization.js @@ -21,7 +21,7 @@ export function MethodDefinition(node, parent, scope, file) { if (node.kind !== "memo") return; node.kind = "get"; - console.error("Object getter memoization is deprecated and will be removed in 5.0.0"); + file.log.deprecate("Object getter memoization is deprecated and will be removed in 5.0.0"); t.ensureBlock(node.value); diff --git a/test/_transformation-helper.js b/test/_transformation-helper.js index bcad6fdba8..14f0146983 100644 --- a/test/_transformation-helper.js +++ b/test/_transformation-helper.js @@ -55,6 +55,7 @@ var run = function (task, done) { var getOpts = function (self) { return _.merge({ + suppressDeprecationMessages: true, filename: self.loc }, opts); };