function(callback) {
      var t = this;
      var className = this.__className;
      t.__fatalCompileError = false;
      t.__numClassesDefined = 0;

      fs.readFile(this.getSourcePath(), {encoding: "utf-8"}, function(err, src) {
        if (err) {
          callback(err);
          return;
        }

        try {
          let options = t.__analyser.getBabelOptions() || {};
          options.modules = false;
          var config = {
              babelrc: false,
              sourceFileName : t.getSourcePath(),
              filename: t.getSourcePath(),
              sourceMaps: true,
              "presets": [
                [ require.resolve("@babel/preset-env"), options]
              ],
              plugins: [
                t._babelClassPlugin()
              ],
              parserOpts: { sourceType: "script" },
              passPerPreset: true
            };
          var result = babelCore.transform(src, config);
        } catch (ex) {
          if (ex._babel) {
            console.log(ex);
          }
          t.addMarker("compiler.syntaxError", ex.loc, ex.message, ex.codeFrame);
          t.__fatalCompileError = true;
          t._compileDbClassInfo();
          callback();
          return;
        }
        
        if (!t.__numClassesDefined) {
          t.addMarker("compiler.missingClassDef");
          t.__fatalCompileError = true;
          t._compileDbClassInfo();
          callback();
          return;
        }

        if (!t.__metaDefinitions[className]) {
          t.addMarker("compiler.wrongClassName", null, className, Object.keys(t.__metaDefinitions).join(", "));
          t._compileDbClassInfo();
        }

        var pos = className.lastIndexOf("."); 
        var name = pos > -1 ? className.substring(pos + 1) : className;
        var outputPath = t.getOutputPath();
        util.mkParentPath(outputPath, function(err) {
          if (err) {
            callback(err);
            return;
          }
          fs.writeFile(outputPath, result.code + "\n\n//# sourceMappingURL=" + name + ".js.map?dt=" + (new Date().getTime()), {encoding: "utf-8"}, function(err) {
            if (err) {
              callback(err);
              return;
            }
            fs.writeFile(outputPath + ".map", JSON.stringify(result.map, null, 2), {encoding: "utf-8"}, function(err) {
              if (err) {
                callback(err);
                return;
              }
              t._waitForTaskQueueDrain(function() {
                callback();
              });
            });
          });
        });
      });
    }
function(callback) {
      var t = this;
      var className = this.__className;
      t.__fatalCompileError = false;
      t.__numClassesDefined = 0;

      fs.readFile(this.getSourcePath(), {encoding: "utf-8"}, function(err, src) {
        if (err) {
          callback(err);
          return;
        }

        try {
          let options = t.__analyser.getBabelOptions() || {};
          options.modules = false;
          var config = {
              babelrc: false,
              sourceFileName : t.getSourcePath(),
              filename: t.getSourcePath(),
              sourceMaps: true,
              "presets": [
                [ require.resolve("@babel/preset-env"), options]
              ],
              plugins: [
                t._babelClassPlugin()
              ],
              parserOpts: { sourceType: "script" },
              passPerPreset: true
            };
          var result = babelCore.transform(src, config);
        } catch (ex) {
          if (ex._babel) {
            console.log(ex);
          }
          t.addMarker("compiler.syntaxError", ex.loc, ex.message, ex.codeFrame);
          t.__fatalCompileError = true;
          t._compileDbClassInfo();
          callback();
          return;
        }
        
        if (!t.__numClassesDefined) {
          t.addMarker("compiler.missingClassDef");
          t.__fatalCompileError = true;
          t._compileDbClassInfo();
          callback();
          return;
        }

        if (!t.__metaDefinitions[className]) {
          t.addMarker("compiler.wrongClassName", null, className, Object.keys(t.__metaDefinitions).join(", "));
          t._compileDbClassInfo();
        }

        var pos = className.lastIndexOf("."); 
        var name = pos > -1 ? className.substring(pos + 1) : className;
        var outputPath = t.getOutputPath();
        util.mkParentPath(outputPath, function(err) {
          if (err) {
            callback(err);
            return;
          }
          fs.writeFile(outputPath, result.code + "\n\n
            if (err) {
              callback(err);
              return;
            }
            fs.writeFile(outputPath + ".map", JSON.stringify(result.map, null, 2), {encoding: "utf-8"}, function(err) {
              if (err) {
                callback(err);
                return;
              }
              t._waitForTaskQueueDrain(function() {
                callback();
              });
            });
          });
        });
      });
    }
function ( callback ) { var t = this ; var className = this . __className ; t . __fatalCompileError = false ; t . __numClassesDefined = 0 ; fs . readFile ( this . getSourcePath ( ) , { encoding : "utf-8" } , function ( err , src ) { if ( err ) { callback ( err ) ; return ; } try { let options = t . __analyser . getBabelOptions ( ) || { } ; options . modules = false ; var config = { babelrc : false , sourceFileName : t . getSourcePath ( ) , filename : t . getSourcePath ( ) , sourceMaps : true , "presets" : [ [ require . resolve ( "@babel/preset-env" ) , options ] ] , plugins : [ t . _babelClassPlugin ( ) ] , parserOpts : { sourceType : "script" } , passPerPreset : true } ; var result = babelCore . transform ( src , config ) ; } catch ( ex ) { if ( ex . _babel ) { console . log ( ex ) ; } t . addMarker ( "compiler.syntaxError" , ex . loc , ex . message , ex . codeFrame ) ; t . __fatalCompileError = true ; t . _compileDbClassInfo ( ) ; callback ( ) ; return ; } if ( ! t . __numClassesDefined ) { t . addMarker ( "compiler.missingClassDef" ) ; t . __fatalCompileError = true ; t . _compileDbClassInfo ( ) ; callback ( ) ; return ; } if ( ! t . __metaDefinitions [ className ] ) { t . addMarker ( "compiler.wrongClassName" , null , className , Object . keys ( t . __metaDefinitions ) . join ( ", " ) ) ; t . _compileDbClassInfo ( ) ; } var pos = className . lastIndexOf ( "." ) ; var name = pos > - 1 ? className . substring ( pos + 1 ) : className ; var outputPath = t . getOutputPath ( ) ; util . mkParentPath ( outputPath , function ( err ) { if ( err ) { callback ( err ) ; return ; } fs . writeFile ( outputPath , result . code + "\n\n//# sourceMappingURL=" + name + ".js.map?dt=" + ( new Date ( ) . getTime ( ) ) , { encoding : "utf-8" } , function ( err ) { if ( err ) { callback ( err ) ; return ; } fs . writeFile ( outputPath + ".map" , JSON . stringify ( result . map , null , 2 ) , { encoding : "utf-8" } , function ( err ) { if ( err ) { callback ( err ) ; return ; } t . _waitForTaskQueueDrain ( function ( ) { callback ( ) ; } ) ; } ) ; } ) ; } ) ; } ) ; }
Loads the source, transpiles and analyses the code, storing the result in outputPath

@param callback
{Function} callback for when the load is completed
Loads the source transpiles and analyses the code storing the result in outputPath