UNPKG

firescript

Version:
75 lines (68 loc) 2.38 kB
const path = require('path') const fs = require('fs') const { FirescriptParser, Parser } = require('firescript-parser') const { FirescriptConfig } = require('firescript-config') const { JavascriptTranspiler } = require('firescript-transpiler') module.exports = { FirescriptParser, JavascriptTranspiler, Parser, tokenize(input, opts = {}) { const parser = new FirescriptParser(opts) return parser.tokenize(input) }, transpileFile(filename, opts = {}) { const ext = path.extname(filename) opts.type = opts.type || ext === '.fire' ? 'fire' : 'js' return this.transpile(fs.readFileSync(filename, 'utf8'), opts) }, transpile(input, opts = {}) { const config = new FirescriptConfig(opts) let ast if (typeof input === 'string') { const parserConf = config.getConfig('parser') parserConf.filename = opts.filename const parser = new FirescriptParser(parserConf) ast = parser.parse(input) } else { ast = input } opts.features = config.getConfig('features') const transpiler = new JavascriptTranspiler(opts) return transpiler.transpile(ast) }, parse (input, opts = {}) { const parser = new FirescriptParser(opts) return parser.parse(input) }, loadConf () { console.warn('Firescript.loadConf is deprecated! Use FirescriptConfig module instead') return new FirescriptConfig() }, version (print) { const loadVersion = (pkgName) => { try { return `v${require(pkgName).version}` } catch (err) { return 'Not installed' } } const version = loadVersion('../package.json') const builderVersion = loadVersion('firescript-builder/package.json') const parserVersion = loadVersion('firescript-parser/package.json') const transpilerVersion = loadVersion('firescript-transpiler/package.json') const linterVersion = loadVersion('firescript-linter/package.json') if (print) { console.log(`Firescript: ${version}`) console.log(`Firescript Builder: ${builderVersion}`) console.log(`Firescript Parser: ${parserVersion}`) console.log(`Firescript Transpiler: ${transpilerVersion}`) } return { firescript: version, 'firescript-builder': builderVersion, 'firescript-parser': parserVersion, 'firescript-transpiler': transpilerVersion } } }