Skip to content

Commit

Permalink
[BREAKING] normalizer: Rename optional parameter "translator"
Browse files Browse the repository at this point in the history
This should future-proof the normalizer API to allow for eventually passing
translator objects/instances instead of a simple string.

BREAKING CHANGE: Renamed parameter "translator" of functions generateDependencyTree and generateProjectTree to "translatorName"
  • Loading branch information
RandomByte committed Jan 9, 2019
1 parent 98243c5 commit 92321e0
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 14 deletions.
19 changes: 9 additions & 10 deletions lib/normalizer.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ const Normalizer = {
* @param {Object} [options]
* @param {string} [options.cwd] Current working directory
* @param {string} [options.configPath] Path to configuration file
* @param {string} [options.translator] Translator to use
* @param {string} [options.translatorName] Translator to use
* @returns {Promise<Object>} Promise resolving to tree object
*/
generateProjectTree: async function(options = {}) {
Expand All @@ -36,32 +36,31 @@ const Normalizer = {
* @public
* @param {Object} [options]
* @param {string} [options.cwd=.] Current working directory
* @param {string} [options.translator=npm] Translator to use
* @param {string} [options.translatorName=npm] Translator to use
* @param {Object} [options.translatorOptions] Options to pass to translator
* @returns {Promise<Object>} Promise resolving to tree object
*/
generateDependencyTree: async function({cwd = ".", translator="npm", translatorOptions={}} = {}) {
// TODO NEXT MAJOR: Rename "translator" option to "translatorName"
generateDependencyTree: async function({cwd = ".", translatorName="npm", translatorOptions={}} = {}) {
log.verbose("Building dependency tree...");

let translatorParams = [];
let translatorName = translator;
if (translator.indexOf(":") !== -1) {
translatorParams = translator.split(":");
translatorName = translatorParams[0];
let translator = translatorName;
if (translatorName.indexOf(":") !== -1) {
translatorParams = translatorName.split(":");
translator = translatorParams[0];
translatorParams = translatorParams.slice(1);
}

let translatorModule;
switch (translatorName) {
switch (translator) {
case "static":
translatorModule = require("./translators/static");
break;
case "npm":
translatorModule = require("./translators/npm");
break;
default:
return Promise.reject(new Error(`Unknown translator ${translatorName}`));
return Promise.reject(new Error(`Unknown translator ${translator}`));
}

translatorOptions.parameters = translatorParams;
Expand Down
8 changes: 4 additions & 4 deletions test/lib/normalizer.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ test.serial("Uses npm translator as default strategy", (t) => {

test.serial("Uses static translator as strategy", (t) => {
normalizer.generateDependencyTree({
translator: "static"
translatorName: "static"
});
t.truthy(staticTranslatorStub.generateDependencyTree.called);
});
Expand All @@ -29,10 +29,10 @@ test.serial("Generate project tree using with overwritten config path", async (t
});

test("Error: Throws if unknown translator should be used as strategy", async (t) => {
const translator = "notExistingTranslator";
const translatorName = "notExistingTranslator";
return normalizer.generateDependencyTree({
translator
translatorName
}).catch((error) => {
t.is(error.message, `Unknown translator ${translator}`);
t.is(error.message, `Unknown translator ${translatorName}`);
});
});

0 comments on commit 92321e0

Please sign in to comment.