From 2b7635b0deeaed46487a0c40ff7d1f69699b3d56 Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Sun, 12 Jan 2020 13:52:29 +0200 Subject: [PATCH] fix: print warning when pnpmfile exports undefined close #1615 PR #2269 --- packages/pnpmfile/package.json | 2 +- packages/pnpmfile/src/requirePnpmfile.ts | 7 +++++++ packages/pnpmfile/test/index.ts | 9 +++++++++ packages/pnpmfile/test/pnpmfiles/undefined.js | 1 + 4 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 packages/pnpmfile/test/index.ts create mode 100644 packages/pnpmfile/test/pnpmfiles/undefined.js diff --git a/packages/pnpmfile/package.json b/packages/pnpmfile/package.json index 98c4867da6..660824fc85 100644 --- a/packages/pnpmfile/package.json +++ b/packages/pnpmfile/package.json @@ -13,7 +13,7 @@ "scripts": { "lint": "tslint -c ../../tslint.json src/**/*.ts test/**/*.ts", "tsc": "rimraf lib && tsc", - "test": "pnpm run tsc", + "test": "pnpm run tsc && ts-node test --type-check", "prepublishOnly": "pnpm run tsc" }, "repository": "https://github.com/pnpm/pnpm/blob/master/packages/pnpmfile", diff --git a/packages/pnpmfile/src/requirePnpmfile.ts b/packages/pnpmfile/src/requirePnpmfile.ts index 654bf6d8d1..a406b6e1f2 100644 --- a/packages/pnpmfile/src/requirePnpmfile.ts +++ b/packages/pnpmfile/src/requirePnpmfile.ts @@ -31,6 +31,13 @@ export default (pnpmFilePath: string, prefix: string) => { message: `Using hooks from: ${pnpmFilePath}`, prefix, }) + if (typeof pnpmfile === 'undefined') { + logger.warn({ + message: `Ignoring the pnpmfile at "${pnpmFilePath}". It exports "undefined".`, + prefix, + }) + return undefined + } if (pnpmfile?.hooks?.readPackage && typeof pnpmfile.hooks.readPackage !== 'function') { throw new TypeError('hooks.readPackage should be a function') } diff --git a/packages/pnpmfile/test/index.ts b/packages/pnpmfile/test/index.ts new file mode 100644 index 0000000000..e81f766a72 --- /dev/null +++ b/packages/pnpmfile/test/index.ts @@ -0,0 +1,9 @@ +import { requirePnpmfile } from '@pnpm/pnpmfile' +import path = require('path') +import test = require('tape') + +test('ignoring a pnpmfile that exports undefined', (t) => { + const pnpmfile = requirePnpmfile(path.join(__dirname, 'pnpmfiles/undefined.js'), __dirname) + t.equal(typeof pnpmfile, 'undefined') + t.end() +}) diff --git a/packages/pnpmfile/test/pnpmfiles/undefined.js b/packages/pnpmfile/test/pnpmfiles/undefined.js new file mode 100644 index 0000000000..c5f2ccf114 --- /dev/null +++ b/packages/pnpmfile/test/pnpmfiles/undefined.js @@ -0,0 +1 @@ +module.exports = undefined