use the current file basename for the displayName of export default React.createClass - 6to5/6to5-sublime#21

This commit is contained in:
Sebastian McKenzie 2015-02-02 23:48:03 +11:00
parent 8bdb723004
commit e712c5225b
4 changed files with 25 additions and 7 deletions

View File

@ -4,16 +4,17 @@ module.exports = File;
var SHEBANG_REGEX = /^\#\!.*/;
var isFunction = require("lodash/lang/isFunction");
var transform = require("./transformation");
var generate = require("./generation");
var defaults = require("lodash/object/defaults");
var contains = require("lodash/collection/contains");
var clone = require("./helpers/clone");
var Scope = require("./traverse/scope");
var util = require("./util");
var t = require("./types");
var contains = require("lodash/collection/contains");
var path = require("path");
var each = require("lodash/collection/each");
var defaults = require("lodash/object/defaults");
var isFunction = require("lodash/lang/isFunction");
var t = require("./types");
function File(opts) {
this.dynamicImportIds = {};
@ -118,6 +119,8 @@ File.prototype.normaliseOptions = function (opts) {
// normalise windows path separators to unix
opts.filename = opts.filename.replace(/\\/g, "/");
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);

View File

@ -199,8 +199,6 @@ var cleanJSXElementLiteralChild = function (child, args) {
// display names
var addDisplayName = function (id, call) {
if (!react.isCreateClass(call)) return;
var props = call.arguments[0].properties;
var safe = true;
@ -217,6 +215,12 @@ var addDisplayName = function (id, call) {
}
};
exports.ExportDeclaration = function (node, parent, scope, context, file) {
if (node.default && react.isCreateClass(node.declaration)) {
addDisplayName(file.opts.basename, node.declaration);
}
};
exports.AssignmentExpression =
exports.Property =
exports.VariableDeclarator = function (node) {
@ -237,7 +241,7 @@ exports.VariableDeclarator = function (node) {
left = left.property;
}
if (t.isIdentifier(left)) {
if (t.isIdentifier(left) && react.isCreateClass(right)) {
addDisplayName(left.name, right);
}
};

View File

@ -0,0 +1,5 @@
export default React.createClass({
render: function () {
return null;
}
});

View File

@ -0,0 +1,6 @@
module.exports = React.createClass({
displayName: "actual",
render: function () {
return null;
}
});