From df56bfb616380291b56f5818e52fd80c3ee6ec52 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Fri, 23 Oct 2020 18:46:55 +0200 Subject: [PATCH] fix(typescript): add composite to validation checks (#618) --- packages/typescript/src/options/validate.ts | 2 +- packages/typescript/test/test.js | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/typescript/src/options/validate.ts b/packages/typescript/src/options/validate.ts index 6fe077f89..dce893d47 100644 --- a/packages/typescript/src/options/validate.ts +++ b/packages/typescript/src/options/validate.ts @@ -83,7 +83,7 @@ export function validatePaths( } } - if (compilerOptions.declaration || compilerOptions.declarationMap) { + if (compilerOptions.declaration || compilerOptions.declarationMap || compilerOptions.composite) { if (DIRECTORY_PROPS.every((dirProperty) => !compilerOptions[dirProperty])) { context.error( `@rollup/plugin-typescript: 'outDir' or 'declarationDir' must be specified to generate declaration files.` diff --git a/packages/typescript/test/test.js b/packages/typescript/test/test.js index 3aa5920ae..067bca11b 100644 --- a/packages/typescript/test/test.js +++ b/packages/typescript/test/test.js @@ -162,13 +162,13 @@ test.serial('supports creating declaration files in declarationDir', async (t) = t.true(output[1].source.includes('declare const answer = 42;'), output[1].source); }); -test.serial('ensures outDir is set when creating declaration files', async (t) => { +async function ensureOutDirWhenCreatingDeclarationFiles(t, compilerOptionName) { const bundle = await rollup({ input: 'fixtures/basic/main.ts', plugins: [ typescript({ tsconfig: 'fixtures/basic/tsconfig.json', - declaration: true + [compilerOptionName]: true }) ], onwarn @@ -183,6 +183,14 @@ test.serial('ensures outDir is set when creating declaration files', async (t) = ), `Unexpected error message: ${caughtError.message}` ); +} + +test.serial('ensures outDir is set when creating declaration files (declaration)', async (t) => { + await ensureOutDirWhenCreatingDeclarationFiles(t, 'declaration'); +}); + +test.serial('ensures outDir is set when creating declaration files (composite)', async (t) => { + await ensureOutDirWhenCreatingDeclarationFiles(t, 'composite'); }); test.serial('ensures outDir is located in Rollup output dir', async (t) => {