From 74605015cbd44034fbdd60490ac3a98e567be45a Mon Sep 17 00:00:00 2001 From: Steve Calvert Date: Mon, 21 Mar 2022 16:40:54 -0700 Subject: [PATCH 1/2] task: Adding debug package for better debugging --- package-lock.json | 74 +++++++++++++++++++++++++++++++++------- package.json | 3 ++ src/create-bin-tester.ts | 32 +++++++++++------ 3 files changed, 86 insertions(+), 23 deletions(-) diff --git a/package-lock.json b/package-lock.json index 44a9584..6fe9579 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,8 @@ "version": "0.3.0", "license": "MIT", "dependencies": { + "@types/debug": "^4.1.7", + "debug": "^4.3.4", "deepmerge": "^4.2.2", "execa": "^5.1.1", "fixturify-project": "^4.1.0" @@ -2231,6 +2233,14 @@ "@types/chai": "*" } }, + "node_modules/@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "dependencies": { + "@types/ms": "*" + } + }, "node_modules/@types/fs-extra": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.2.tgz", @@ -2311,6 +2321,11 @@ "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", "dev": true }, + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + }, "node_modules/@types/node": { "version": "17.0.21", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", @@ -3886,10 +3901,9 @@ } }, "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -7359,8 +7373,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/mute-stream": { "version": "0.0.8", @@ -8850,6 +8863,23 @@ "node": ">=8.17.0" } }, + "node_modules/release-it/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/release-it/node_modules/globby": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", @@ -12230,6 +12260,14 @@ "@types/chai": "*" } }, + "@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "requires": { + "@types/ms": "*" + } + }, "@types/fs-extra": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.2.tgz", @@ -12310,6 +12348,11 @@ "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", "dev": true }, + "@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + }, "@types/node": { "version": "17.0.21", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", @@ -13471,10 +13514,9 @@ "dev": true }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } @@ -15994,8 +16036,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "mute-stream": { "version": "0.0.8", @@ -17058,6 +17099,15 @@ "yargs-parser": "20.2.9" }, "dependencies": { + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, "globby": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", diff --git a/package.json b/package.json index c41eb9c..7af5810 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "build": "tsup src/index.ts --format cjs,esm --dts --clean", "docs:generate": "readme-api-generator ./src --ts", "lint": "eslint .", + "prepare": "npm run build", "prepublishOnly": "npm run build", "test": "npm run lint && vitest run", "test:watch": "vitest", @@ -39,6 +40,8 @@ "dist" ], "dependencies": { + "@types/debug": "^4.1.7", + "debug": "^4.3.4", "deepmerge": "^4.2.2", "execa": "^5.1.1", "fixturify-project": "^4.1.0" diff --git a/src/create-bin-tester.ts b/src/create-bin-tester.ts index 4048090..2aea7ed 100644 --- a/src/create-bin-tester.ts +++ b/src/create-bin-tester.ts @@ -1,4 +1,5 @@ import execa from 'execa'; +import createDebug from 'debug'; import BinTesterProject from './project'; interface BinTesterOptions { /** @@ -65,6 +66,8 @@ interface CreateBinTesterResult { type RunBinArgs = [...binArgs: string[], execaOptions: execa.Options]; +const debug = createDebug('bin-tester'); + const DEFAULT_BIN_TESTER_OPTIONS = { staticArgs: [], projectConstructor: BinTesterProject, @@ -108,22 +111,29 @@ export function createBinTester( ...options, } as Required>; + debug('createBinTester options %O', mergedOptions); + /** * @param {...RunBinArgs} args - Arguments or execa options. * @returns {execa.ExecaChildProcess} An instance of execa's child process. */ function runBin(...args: RunBinArgs): execa.ExecaChildProcess { const mergedRunOptions = parseArgs(args); - - return execa( - process.execPath, - [mergedOptions.binPath, ...mergedOptions.staticArgs, ...mergedRunOptions.args], - { - reject: false, - cwd: project.baseDir, - ...mergedRunOptions.execaOptions, - } - ); + const execaArguments = [ + mergedOptions.binPath, + ...mergedOptions.staticArgs, + ...mergedRunOptions.args, + ]; + + debug('running bin script in %s', project.baseDir); + debug('runBin execa arguments %O', execaArguments); + debug('runBin execa options %O', mergedRunOptions.execaOptions); + + return execa(process.execPath, execaArguments, { + reject: false, + cwd: project.baseDir, + ...mergedRunOptions.execaOptions, + }); } /** @@ -132,7 +142,7 @@ export function createBinTester( async function setupProject() { project = 'createProject' in mergedOptions - ? await mergedOptions.createProject() + ? mergedOptions.createProject() : (new BinTesterProject() as TProject); await project.write(); From 1fb669e41f742254ce75144b7e20ced7ab2a9516 Mon Sep 17 00:00:00 2001 From: Steve Calvert Date: Mon, 21 Mar 2022 16:41:26 -0700 Subject: [PATCH 2/2] Moving @types package to devDeps --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7af5810..a357358 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,6 @@ "dist" ], "dependencies": { - "@types/debug": "^4.1.7", "debug": "^4.3.4", "deepmerge": "^4.2.2", "execa": "^5.1.1", @@ -53,6 +52,7 @@ "@babel/preset-env": "^7.16.11", "@babel/preset-typescript": "^7.16.7", "@scalvert/readme-api-generator": "^0.2.0", + "@types/debug": "^4.1.7", "@typescript-eslint/eslint-plugin": "^5.14.0", "@typescript-eslint/parser": "^5.14.0", "eslint": "^8.10.0",