@kawix/core
Version:
The next generation module loader for nodejs
73 lines (61 loc) • 1.48 kB
JavaScript
var Babel
var dynamicImport
var transpiledLine = exports.transpiledLineComment= "\n// kawi converted. Preserve this line, Kawi transpiler will not reprocess if this line found"
var Next= exports.default= function(){}
Next.prototype.transpile= function(source, options){
if(source.indexOf(transpiledLine) >= 0){
return {
code: source,
ignore: true
}
}
if(!Babel){
require("./babel")
Babel = ___Babel
}
/*
if (!options) {
options = {
presets: ['typescript', 'es2015','es2016','es2017',['stage-2',{
decoratorsBeforeExport: false
}]],
sourceMaps: true,
comments: false
}
}
*/
if(!options.filename.endsWith(".ts")){
/*
if(options.presets && options.presets.indexOf("typescript") >= 0){
options.filename += ".ts"
}*/
options.filename += ".ts"
}
/*
// options.filename += ".js"
if(!options.plugins){
if(!dynamicImport)
dynamicImport=require("./babel.dynamic.import.js")
options.plugins= [dynamicImport]
}*/
var result
if(Babel.__defaultTransform)
result = Babel.__defaultTransform(source,options)
else
result= Babel.transform(source, options)
if(result.code){
result.code += transpiledLine
if(result.code.trim().startsWith("#!")){
// remove that line
result.code= result.code.split(/\r\n|\r|\n/g)
result.code.shift()
result.code= result.code.join("\n")
}
}
return result
}
exports.Next= Next
exports.transpile= function(a,b){
var next= new Next()
return next.transpile(a,b)
}