From 394a4fa6cfec038415a30a3c952884b9084a74f2 Mon Sep 17 00:00:00 2001 From: marcosvega91 Date: Mon, 7 Dec 2020 21:25:27 +0100 Subject: [PATCH 1/3] fix: create definition files into provided folder --- src/scripts/build/rollup.js | 2 +- src/utils.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/scripts/build/rollup.js b/src/scripts/build/rollup.js index 04a9ea86..ba5c9d3a 100644 --- a/src/scripts/build/rollup.js +++ b/src/scripts/build/rollup.js @@ -83,7 +83,7 @@ function go() { if (hasTypescript && !args.includes('--no-ts-defs')) { console.log('Generating TypeScript definitions') - result = generateTypeDefs() + result = generateTypeDefs(fromRoot('dist')) if (result.status !== 0) return result.status for (const format of formats) { diff --git a/src/utils.js b/src/utils.js index e732db72..97e1eac4 100644 --- a/src/utils.js +++ b/src/utils.js @@ -168,7 +168,7 @@ function hasLocalConfig(moduleName, searchOptions = {}) { return result !== null } -function generateTypeDefs() { +function generateTypeDefs(outputDir) { return spawn.sync( resolveBin('typescript', {executable: 'tsc'}), // prettier-ignore @@ -176,7 +176,7 @@ function generateTypeDefs() { '--declaration', '--emitDeclarationOnly', '--noEmit', 'false', - '--outDir', fromRoot('dist'), + '--outDir', outputDir, ], {stdio: 'inherit'}, ) From a8f4f79cd35d11f0dbed6ca6982945af1b5e06b4 Mon Sep 17 00:00:00 2001 From: marcosvega91 Date: Mon, 7 Dec 2020 22:18:23 +0100 Subject: [PATCH 2/3] fix(babel): pass destination folder from babel --- src/scripts/build/babel.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/scripts/build/babel.js b/src/scripts/build/babel.js index 0a116c0f..94052c12 100644 --- a/src/scripts/build/babel.js +++ b/src/scripts/build/babel.js @@ -64,15 +64,16 @@ function go() { ) if (result.status !== 0) return result.status + const pathToOutDir = fromRoot(parsedArgs.outDir || builtInOutDir) + if (hasTypescript && !args.includes('--no-ts-defs')) { console.log('Generating TypeScript definitions') - result = generateTypeDefs() + result = generateTypeDefs(pathToOutDir) console.log('TypeScript definitions generated') if (result.status !== 0) return result.status } // because babel will copy even ignored files, we need to remove the ignored files - const pathToOutDir = fromRoot(parsedArgs.outDir || builtInOutDir) const ignoredPatterns = (parsedArgs.ignore || builtInIgnore) .split(',') .map(pattern => path.join(pathToOutDir, pattern)) From f70fb7eaaedc90c8a0ef74fbe5b691751a9b6170 Mon Sep 17 00:00:00 2001 From: marcosvega91 Date: Mon, 7 Dec 2020 22:18:51 +0100 Subject: [PATCH 3/3] test: check if folder is used correctly --- src/__tests__/utils.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/__tests__/utils.js b/src/__tests__/utils.js index 505dab99..e3b8b24f 100644 --- a/src/__tests__/utils.js +++ b/src/__tests__/utils.js @@ -160,6 +160,17 @@ test('hasLocalConfiguration returns true if a local config found and it is empty expect(require('../utils').hasLocalConfig('module')).toBe(true) }) +test('should generate typescript definitions into provided folder', () => { + whichSyncMock.mockImplementationOnce(() => require.resolve('../')) + const {sync: crossSpawnSyncMock} = require('cross-spawn') + require('../utils').generateTypeDefs('destination folder') + expect(crossSpawnSyncMock).toHaveBeenCalledTimes(1) + const args = crossSpawnSyncMock.mock.calls[0][1] + const outDirIndex = args.findIndex(arg => arg === '--outDir') + 1 + + expect(args[outDirIndex]).toBe('destination folder') +}) + function mockPkg({package: pkg = {}, path = '/blah/package.json'}) { readPkgUpSyncMock.mockImplementationOnce(() => ({packageJson: pkg, path})) }