babel-plugin-yui
Version:
Babel plugin for YUI
38 lines (27 loc) • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.add = add;
exports.use = use;
var _babelTemplate = require('babel-template');
var _babelTemplate2 = _interopRequireDefault(_babelTemplate);
var _babelTypes = require('babel-types');
var types = _interopRequireWildcard(_babelTypes);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
var addTemplate = (0, _babelTemplate2.default)('\n var Y;\n YUI.add(MODULE_NAME_STRING, function(Y1) {\n Y = Y1;\n }, \'1.0.0\', {\n \'requires\': MODULE_REQUIRES\n });\n');
var useTemplate = (0, _babelTemplate2.default)('\n YUI().use(MODULE_REQUIRES, function(Y) {\n MODULE_BODY\n });\n');
function add(name, requires) {
return addTemplate({
MODULE_NAME_STRING: types.stringLiteral(name),
MODULE_REQUIRES: types.arrayExpression(requires)
});
};
function use(body, requires) {
return useTemplate({
MODULE_BODY: body,
MODULE_REQUIRES: types.arrayExpression(requires)
});
};