ohm-loader
Version:
Ohm loader for webpack
34 lines (26 loc) • 896 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (rawGrammar) {
if (this.cacheable) {
this.cacheable();
}
var namespace = _ohmJs2.default.grammars(rawGrammar);
for (var grammarName in namespace) {
namespace[grammarName] = namespace[grammarName].toRecipe();
}
return 'module.exports = (' + createGrammars + ')(require(\'ohm-js\'), ' + JSON.stringify(namespace) + ');';
};
var _ohmJs = require('ohm-js');
var _ohmJs2 = _interopRequireDefault(_ohmJs);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var createGrammars = function createGrammars(ohm, recipes) {
for (var recipeKey in recipes) {
recipes[recipeKey] = ohm.makeRecipe(recipes[recipeKey]);
}
if (Object.keys(recipes).length === 1) {
return Object.values(recipes)[0];
}
return recipes;
};