bemhtml-compat
Advanced tools
Comparing version 0.0.3 to 0.0.4
var compat = exports; | ||
var ometajs = require('ometajs'); | ||
var esprima = require('esprima'); | ||
var BEMHTMLParser = require('./ometa/bemhtml').BEMHTMLParser; | ||
var BEMHTMLToXJST = require('./ometa/bemhtml').BEMHTMLToXJST; | ||
var XJSTToJS = require('./ometa/bemhtml').XJSTToJS; | ||
var ometajs = null; | ||
var BEMHTMLParser = null; | ||
var BEMHTMLToXJST = null; | ||
var XJSTToJS = null; | ||
function lazyLoad() { | ||
ometajs = require('ometajs'); | ||
BEMHTMLParser = require('./ometa/bemhtml').BEMHTMLParser; | ||
BEMHTMLToXJST = require('./ometa/bemhtml').BEMHTMLToXJST; | ||
XJSTToJS = require('./ometa/bemhtml').XJSTToJS; | ||
} | ||
// Parse old bemhtml source | ||
compat.parse = function parse(source) { | ||
lazyLoad(); | ||
return BEMHTMLParser.matchAll(source, 'topLevel'); | ||
@@ -15,2 +23,3 @@ }; | ||
compat.translate = function translate(ast) { | ||
lazyLoad(); | ||
ast = BEMHTMLToXJST.match(ast, 'topLevel'); | ||
@@ -23,2 +32,9 @@ var out = XJSTToJS.match(ast, 'topLevel'); | ||
compat.transpile = function transpile(source) { | ||
// If code is ECMAScript compatible - there is no need to use ometajs | ||
try { | ||
if (esprima.parse(source)) return source; | ||
} catch (e) { | ||
} | ||
lazyLoad(); | ||
var ast = compat.parse(source); | ||
@@ -25,0 +41,0 @@ ast = BEMHTMLToXJST.match(ast, 'topLevel'); |
{ | ||
"name": "bemhtml-compat", | ||
"version": "0.0.3", | ||
"version": "0.0.4", | ||
"description": "ERROR: No README.md file found!", | ||
@@ -5,0 +5,0 @@ "main": "lib/compat.js", |
26617
452