UNPKG

babel-plugin-mocktail

Version:
55 lines (40 loc) 2.23 kB
"use strict"; 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")); }