globalize-compiler
Version:
Globalize.js runtime compiler for your formatters and parsers
31 lines (26 loc) • 885 B
JavaScript
var esprima = require( "esprima" );
var Syntax = esprima.Syntax;
function isDefaultProperty(prop) {
return (prop.type === Syntax.Literal && prop.value === "default") ||
(prop.type === Syntax.Identifier && prop.name === "default");
}
/**
* Transform `_globalize2["default"].<fn>` or `_globalize2.default.<fn>`
* (commonly generated by babel when transpiling ES6) into `Globalize.<fn>`.
*/
module.exports = {
test: function( node ) {
return node.type === Syntax.CallExpression &&
node.callee.type === Syntax.MemberExpression &&
node.callee.object.type === Syntax.MemberExpression &&
node.callee.object.object.type === Syntax.Identifier &&
node.callee.object.object.name === "_globalize2" &&
isDefaultProperty(node.callee.object.property);
},
transform: function( node ) {
node.callee.object = {
type: Syntax.Identifier,
name: "Globalize"
};
}
};