babel-plugin-transform-export-default-name
Version:
Babel plugin that transforms default exports to named exports.
37 lines (24 loc) • 880 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _camelcase = require('camelcase');
var _camelcase2 = _interopRequireDefault(_camelcase);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var ValidNameRegex = /^[a-zA-Z_$][0-9a-zA-Z_$]+$/;
var AlphabeticalCharacterRegex = /[a-zA-Z_$]/i;
exports.default = name => {
if (ValidNameRegex.test(name)) {
return name;
}
var firstCharacter = name.slice(0, 1);
if (!AlphabeticalCharacterRegex.test(firstCharacter)) {
throw new Error('Invalid name.');
}
var firstCharacterUpperCase = firstCharacter.toUpperCase() === firstCharacter;
var camelCaseName = (0, _camelcase2.default)(name);
if (firstCharacterUpperCase) {
return camelCaseName.slice(0, 1).toUpperCase() + camelCaseName.slice(1);
}
return camelCaseName;
};