src/solver.js
function ( config, actual ) {
	// In this way, if any topic declare the compilerOptions this will not
	// include in the tsconfig.json
	if ( actual.compilerOptions !== undefined ) {
	    
	    if ( config.compilerOptions === undefined ) {
		// Attach an empty object
		config.compilerOptions = {};
	    }
	    // In the case that a descendant set a option already set,
	    // the option will set at the value of descendant.
            if ( actual.compilerOptions.module !== undefined ) {
		config.compilerOptions.module = actual.compilerOptions.module;
		
	    } if ( actual.compilerOptions.target !== undefined ) {
		config.compilerOptions.target = actual.compilerOptions.target;
		
	    } if ( actual.compilerOptions.moduleResolution !== undefined ) {
		config.compilerOptions.moduleResolution =
		    actual.compilerOptions.moduleResolution;
		
	    } if ( actual.compilerOptions.noImplicitAny !== undefined ) {
		config.compilerOptions.noImplicitAny =
		    actual.compilerOptions.noImplicitAny;
		
	    } if ( actual.compilerOptions.removeComments !== undefined ) {
		config.compilerOptions.removeComments =
		    actual.compilerOptions.removeComments;
		
	    } if ( actual.compilerOptions.preserveConstEnums !== undefined ) {
		config.compilerOptions.preserveConstEnums =
		    actual.compilerOptions.preserveConstEnums;
		
	    } if ( actual.compilerOptions.outDir !== undefined ) {
		config.compilerOptions.outDir =
		    // Append a slash at the end of path because node return relative path
		    // but tsconfig want the path with the slah final
		    relative( actual.compilerOptions.outDir ) + "/";
		
	    } if ( actual.compilerOptions.outFile !== undefined ) {
		config.compilerOptions.outFile =
		    relative( actual.compilerOptions.outFile );

	    } if ( actual.compilerOptions.sourceMap !== undefined ) {
		config.compilerOptions.sourceMap =
		    actual.compilerOptions.sourceMap;
		
	    } if ( actual.compilerOptions.declaration !== undefined ) {
		config.compilerOptions.declaration =
		    actual.compilerOptions.declaration;
		
	    } if ( actual.compilerOptions.noEmitOnError !== undefined ) {
		config.compilerOptions.noEmitOnError =
		    actual.compilerOptions.noEmitOnError;
	    } if ( actual.compilerOptions.jsx !== undefined ) {
		config.compilerOptions.jsx =
		    actual.compilerOptions.jsx;
	    }
	    
	} if ( actual.include !== undefined ) {

	    if ( config.include === undefined ) {
		// Attach an empty array
		config.include = [];
	    }

	    // Push all relative path
	    config.include = config.include.concat(
		// Apply the transformation function
		actual.include.map( relative )
	    );
	    
	} if ( actual.exclude !== undefined ) {
	    config.exclude = actual.exclude;
	}
    }
function ( config, actual ) {
	// In this way, if any topic declare the compilerOptions this will not
	// include in the tsconfig.json
	if ( actual.compilerOptions !== undefined ) {
	    
	    if ( config.compilerOptions === undefined ) {
		// Attach an empty object
		config.compilerOptions = {};
	    }
	    // In the case that a descendant set a option already set,
	    // the option will set at the value of descendant.
            if ( actual.compilerOptions.module !== undefined ) {
		config.compilerOptions.module = actual.compilerOptions.module;
		
	    } if ( actual.compilerOptions.target !== undefined ) {
		config.compilerOptions.target = actual.compilerOptions.target;
		
	    } if ( actual.compilerOptions.moduleResolution !== undefined ) {
		config.compilerOptions.moduleResolution =
		    actual.compilerOptions.moduleResolution;
		
	    } if ( actual.compilerOptions.noImplicitAny !== undefined ) {
		config.compilerOptions.noImplicitAny =
		    actual.compilerOptions.noImplicitAny;
		
	    } if ( actual.compilerOptions.removeComments !== undefined ) {
		config.compilerOptions.removeComments =
		    actual.compilerOptions.removeComments;
		
	    } if ( actual.compilerOptions.preserveConstEnums !== undefined ) {
		config.compilerOptions.preserveConstEnums =
		    actual.compilerOptions.preserveConstEnums;
		
	    } if ( actual.compilerOptions.outDir !== undefined ) {
		config.compilerOptions.outDir =
		    // Append a slash at the end of path because node return relative path
		    // but tsconfig want the path with the slah final
		    relative( actual.compilerOptions.outDir ) + "/";
		
	    } if ( actual.compilerOptions.outFile !== undefined ) {
		config.compilerOptions.outFile =
		    relative( actual.compilerOptions.outFile );

	    } if ( actual.compilerOptions.sourceMap !== undefined ) {
		config.compilerOptions.sourceMap =
		    actual.compilerOptions.sourceMap;
		
	    } if ( actual.compilerOptions.declaration !== undefined ) {
		config.compilerOptions.declaration =
		    actual.compilerOptions.declaration;
		
	    } if ( actual.compilerOptions.noEmitOnError !== undefined ) {
		config.compilerOptions.noEmitOnError =
		    actual.compilerOptions.noEmitOnError;
	    } if ( actual.compilerOptions.jsx !== undefined ) {
		config.compilerOptions.jsx =
		    actual.compilerOptions.jsx;
	    }
	    
	} if ( actual.include !== undefined ) {

	    if ( config.include === undefined ) {
		// Attach an empty array
		config.include = [];
	    }

	    // Push all relative path
	    config.include = config.include.concat(
		// Apply the transformation function
		actual.include.map( relative )
	    );
	    
	} if ( actual.exclude !== undefined ) {
	    config.exclude = actual.exclude;
	}
    }
function ( config , actual ) { // In this way, if any topic declare the compilerOptions this will not // include in the tsconfig.json if ( actual . compilerOptions !== undefined ) { if ( config . compilerOptions === undefined ) { // Attach an empty object config . compilerOptions = { } ; } // In the case that a descendant set a option already set, // the option will set at the value of descendant. if ( actual . compilerOptions . module !== undefined ) { config . compilerOptions . module = actual . compilerOptions . module ; } if ( actual . compilerOptions . target !== undefined ) { config . compilerOptions . target = actual . compilerOptions . target ; } if ( actual . compilerOptions . moduleResolution !== undefined ) { config . compilerOptions . moduleResolution = actual . compilerOptions . moduleResolution ; } if ( actual . compilerOptions . noImplicitAny !== undefined ) { config . compilerOptions . noImplicitAny = actual . compilerOptions . noImplicitAny ; } if ( actual . compilerOptions . removeComments !== undefined ) { config . compilerOptions . removeComments = actual . compilerOptions . removeComments ; } if ( actual . compilerOptions . preserveConstEnums !== undefined ) { config . compilerOptions . preserveConstEnums = actual . compilerOptions . preserveConstEnums ; } if ( actual . compilerOptions . outDir !== undefined ) { config . compilerOptions . outDir = // Append a slash at the end of path because node return relative path // but tsconfig want the path with the slah final relative ( actual . compilerOptions . outDir ) + "/" ; } if ( actual . compilerOptions . outFile !== undefined ) { config . compilerOptions . outFile = relative ( actual . compilerOptions . outFile ) ; } if ( actual . compilerOptions . sourceMap !== undefined ) { config . compilerOptions . sourceMap = actual . compilerOptions . sourceMap ; } if ( actual . compilerOptions . declaration !== undefined ) { config . compilerOptions . declaration = actual . compilerOptions . declaration ; } if ( actual . compilerOptions . noEmitOnError !== undefined ) { config . compilerOptions . noEmitOnError = actual . compilerOptions . noEmitOnError ; } if ( actual . compilerOptions . jsx !== undefined ) { config . compilerOptions . jsx = actual . compilerOptions . jsx ; } } if ( actual . include !== undefined ) { if ( config . include === undefined ) { // Attach an empty array config . include = [ ] ; } // Push all relative path config . include = config . include . concat ( // Apply the transformation function actual . include . map ( relative ) ) ; } if ( actual . exclude !== undefined ) { config . exclude = actual . exclude ; } }
The function stored in buildRule tell as get the configuration in the actual level of hierarchy and how it integrate with them.
The function stored in buildRule tell as get the configuration in the actual level of hierarchy and how it integrate with them .