babel-plugin-mocktail
Version:
Mocktail.mock() all your exports
55 lines (40 loc) • 2.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getModuleName = getModuleName;
exports.ensureIdentifier = ensureIdentifier;
exports.ensureStringLiteral = ensureStringLiteral;
exports.buildMockExportDefaultDeclaration = buildMockExportDefaultDeclaration;
exports.buildMockExportVar = buildMockExportVar;
exports.buildExportNamedDeclaration = buildExportNamedDeclaration;
exports.buildMocktailImport = buildMocktailImport;
var _path = require("path");
var _camelcase = require("camelcase");
var _camelcase2 = _interopRequireDefault(_camelcase);
var _uppercamelcase = require("uppercamelcase");
var _uppercamelcase2 = _interopRequireDefault(_uppercamelcase);
var _babelCore = require("babel-core");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function getModuleName(filename) {
var name = (0, _path.parse)(filename).name;
return name[0] === name[0].toUpperCase() ? (0, _uppercamelcase2.default)(name) : (0, _camelcase2.default)(name);
}
function ensureIdentifier(value) {
return typeof value === "string" ? _babelCore.types.identifier(value) : value;
}
function ensureStringLiteral(value) {
return typeof value === "string" ? _babelCore.types.stringLiteral(value) : value;
}
function buildMockExportDefaultDeclaration(mock, name, expression) {
return _babelCore.types.exportDefaultDeclaration(_babelCore.types.callExpression(ensureIdentifier(mock), [ensureIdentifier(expression), ensureStringLiteral(name)]));
}
function buildMockExportVar(mock, name, _name, declaration) {
return _babelCore.types.variableDeclaration("const", [_babelCore.types.variableDeclarator(ensureIdentifier(_name), _babelCore.types.callExpression(ensureIdentifier(mock), [ensureIdentifier(declaration || name), ensureStringLiteral(name)]))]);
}
function buildExportNamedDeclaration(local, exported) {
return _babelCore.types.exportNamedDeclaration(null, [_babelCore.types.exportSpecifier(ensureIdentifier(local), ensureIdentifier(exported))], null);
}
function buildMocktailImport(mock) {
return _babelCore.types.importDeclaration([_babelCore.types.importSpecifier(mock, ensureIdentifier("mock"))], ensureStringLiteral("mocktail"));
}