@@ -8,14 +8,13 @@ const projectPreprocessor = require("./projectPreprocessor");
88 * @module normalizer/normalizer
99 */
1010const Normalizer = {
11-
1211 /**
1312 * Generates a project and dependency tree via translators and configures all projects via the projectPreprocessor
1413 *
15- * @param {Object } options Options
16- * @param {string } options.cwd Current working directory
17- * @param {string } options.configPath Path to configuration file
18- * @param {string } options.translator Translator to use
14+ * @param {Object } [ options]
15+ * @param {string } [ options.cwd] Current working directory
16+ * @param {string } [ options.configPath] Path to configuration file
17+ * @param {string } [ options.translator] Translator to use
1918 * @returns {Promise } Promise resolving to tree object
2019 */
2120 generateProjectTree : async function ( options = { } ) {
@@ -26,40 +25,42 @@ const Normalizer = {
2625 }
2726 return projectPreprocessor . processTree ( tree ) ;
2827 } ,
28+
2929 /**
3030 * Generates a project and dependency tree via translators
3131 *
32- * @param {Object } options Options
33- * @param {string } options.cwd Current working directory
34- * @param {string } options.configPath Path to configuration file
35- * @param {string } options.translator Translator to use
32+ * @param {Object } [ options]
33+ * @param {string } [ options.cwd=.] Current working directory
34+ * @param {string } [ options.translator=npm] Translator to use
35+ * @param {object } [ options.translatorOptions] Options to pass to translator
3636 * @returns {Promise } Promise resolving to tree object
3737 */
38- generateDependencyTree : async function ( options = { } ) {
38+ generateDependencyTree : async function ( { cwd = "." , translator= "npm" , translatorOptions= { } } = { } ) {
39+ // TODO NEXT MAJOR: Rename "translator" option to "translatorName"
3940 log . verbose ( "Building dependency tree..." ) ;
40- const cwd = options && options . cwd || "." ;
4141
42- let translatorName = "npm" ; // Default is npm translator
4342 let translatorParams = [ ] ;
44- if ( options . translator ) {
45- const translatorOptions = options . translator . split ( ":" ) ;
46- translatorName = translatorOptions [ 0 ] ;
47- translatorParams = translatorOptions . slice ( 1 ) ;
43+ let translatorName = translator ;
44+ if ( translator . indexOf ( ":" ) !== - 1 ) {
45+ translatorParams = translator . split ( ":" ) ;
46+ translatorName = translatorParams [ 0 ] ;
47+ translatorParams = translatorParams . slice ( 1 ) ;
4848 }
4949
50- let translator ;
50+ let translatorModule ;
5151 switch ( translatorName ) {
5252 case "static" :
53- translator = require ( "./translators/static" ) ;
53+ translatorModule = require ( "./translators/static" ) ;
5454 break ;
5555 case "npm" :
56- translator = require ( "./translators/npm" ) ;
56+ translatorModule = require ( "./translators/npm" ) ;
5757 break ;
5858 default :
5959 return Promise . reject ( new Error ( `Unknown translator ${ translatorName } ` ) ) ;
6060 }
6161
62- return translator . generateDependencyTree ( cwd , translatorParams ) ;
62+ translatorOptions . parameters = translatorParams ;
63+ return translatorModule . generateDependencyTree ( cwd , translatorOptions ) ;
6364 }
6465} ;
6566
0 commit comments