From 80e5740db96e98b87ebcb94d259d13f4397970a6 Mon Sep 17 00:00:00 2001 From: joeldenning Date: Sat, 19 Mar 2022 16:18:32 -0600 Subject: [PATCH] Support for narn exec --- lib/narn-lib.js | 9 +++++++-- test/exec.test.js | 11 +++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 test/exec.test.js diff --git a/lib/narn-lib.js b/lib/narn-lib.js index 26bbd46..bbf3800 100644 --- a/lib/narn-lib.js +++ b/lib/narn-lib.js @@ -161,6 +161,10 @@ exports.getNpmArgs = (narnArgs, isPnpm = false) => { npmTarget = "info"; npmArgs = narnArgs.slice(1); break; + case "exec": + npmTarget = "exec"; + npmArgs = yarnSubCommands; + break; default: npmTarget = "run"; if (narnArgs.length > 1) { @@ -188,8 +192,9 @@ function transformNarnPackageString(packageToAdd) { ? packageToAdd.lastIndexOf("@") : packageToAdd.length + 1 ); - const isValidPackageName = validateNpmPackageName(packageNameWithoutVersion) - .validForNewPackages; + const isValidPackageName = validateNpmPackageName( + packageNameWithoutVersion + ).validForNewPackages; if (isValidPackageName && packageNameWithoutVersion === packageToAdd) { return `${packageToAdd}@latest`; } else { diff --git a/test/exec.test.js b/test/exec.test.js new file mode 100644 index 0000000..735f6cf --- /dev/null +++ b/test/exec.test.js @@ -0,0 +1,11 @@ +const { getNpmArgs } = require("../lib/narn-lib"); + +describe("narn exec", () => { + it("can exec with narn", () => { + expect(getNpmArgs(["exec", "changeset", "init"])).toEqual([ + "exec", + "changeset", + "init", + ]); + }); +});