ts-add-module-exports
Version:
Adds `module.exports = exports['default'];` for `exports.default`, for CommonJS default export interoperability.
19 lines (18 loc) • 1.06 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var ast_types_1 = __importDefault(require("ast-types"));
var recast_1 = require("recast");
var hasExports_1 = require("./hasExports");
var b = ast_types_1.default.builders;
function addModuleExports(input) {
var ast = recast_1.parse(input, { parser: require("recast/parsers/babel") });
var _a = hasExports_1.hasExports(ast), hasModuleExports = _a.hasModuleExports, hasExportsNamed = _a.hasExportsNamed, hasExportsDefault = _a.hasExportsDefault;
if (!hasExportsNamed && !hasModuleExports && hasExportsDefault) {
ast.program.body.push(b.expressionStatement(b.assignmentExpression("=", b.memberExpression(b.identifier("module"), b.identifier("exports")), b.memberExpression(b.identifier("exports"), b.stringLiteral("default"), true))));
}
return recast_1.print(ast).code;
}
exports.addModuleExports = addModuleExports;