diff --git a/lib/narn-lib.js b/lib/narn-lib.js index b7b92a0..76041c0 100644 --- a/lib/narn-lib.js +++ b/lib/narn-lib.js @@ -167,13 +167,15 @@ exports.getNpmArgs = (narnArgs, isPnpm = false) => { break; default: npmTarget = "run"; + // Don't end up with a: run run [optScript] + if (narnArgs[0] === "run") { + narnArgs.shift(); + } if (narnArgs.length > 1) { // https://github.com/pnpm/pnpm/discussions/4678 const doubleDashArgs = isPnpm ? [] : ["--"]; npmArgs = [narnArgs[0], ...doubleDashArgs, ...narnArgs.slice(1)]; - } else if (narnArgs.length === 1 && narnArgs[0] === "run") { - npmArgs = []; } else { npmArgs = narnArgs; } diff --git a/test/run.test.js b/test/run.test.js index 6d23565..266efc4 100644 --- a/test/run.test.js +++ b/test/run.test.js @@ -5,4 +5,8 @@ describe("narn run", () => { it("lists all available commands with npm run", () => { expect(getNpmArgs(["run"])).toEqual(["run"]); }); + + it("doesnt repeat 'run'", () => { + expect(getNpmArgs(["run", "build"])).toEqual(["run", "build"]); + }); });