UNPKG

babel-plugin-transform-export-default-name

Version:
37 lines (24 loc) 880 B
'use strict'; 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; };