- fix for extended tsconfigs #101

This commit is contained in:
Eugene Zolenko 2018-09-25 11:40:27 -06:00
parent 3840a25e6e
commit 95ed8869cf
13 changed files with 64 additions and 72 deletions

View File

@ -1,4 +1,4 @@
import * as tsTypes from "typescript";
import { IOptions } from "./ioptions";
export declare function getOptionsOverrides({ useTsconfigDeclarationDir, cacheRoot }: IOptions, tsConfigJson?: any): tsTypes.CompilerOptions;
export declare function getOptionsOverrides({ useTsconfigDeclarationDir, cacheRoot }: IOptions, preParsedTsconfig?: tsTypes.ParsedCommandLine): tsTypes.CompilerOptions;
//# sourceMappingURL=get-options-overrides.d.ts.map

View File

@ -1 +1 @@
{"version":3,"file":"get-options-overrides.d.ts","sourceRoot":"","sources":["src/get-options-overrides.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,wBAAgB,mBAAmB,CAAC,EAAE,yBAAyB,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,CAyBnI"}
{"version":3,"file":"get-options-overrides.d.ts","sourceRoot":"","sources":["src/get-options-overrides.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,wBAAgB,mBAAmB,CAAC,EAAE,yBAAyB,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,eAAe,CA2B9J"}

View File

@ -1 +1 @@
{"version":3,"file":"parse-tsconfig.d.ts","sourceRoot":"","sources":["src/parse-tsconfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAKrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKtC,wBAAgB,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CA6CnG"}
{"version":3,"file":"parse-tsconfig.d.ts","sourceRoot":"","sources":["src/parse-tsconfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAKrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKtC,wBAAgB,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CA8CnG"}

View File

@ -19937,7 +19937,7 @@ function printDiagnostics(context, diagnostics, pretty) {
});
}
function getOptionsOverrides({ useTsconfigDeclarationDir, cacheRoot }, tsConfigJson) {
function getOptionsOverrides({ useTsconfigDeclarationDir, cacheRoot }, preParsedTsconfig) {
const overrides = {
noEmitHelpers: false,
importHelpers: true,
@ -19947,15 +19947,17 @@ function getOptionsOverrides({ useTsconfigDeclarationDir, cacheRoot }, tsConfigJ
outDir: `${cacheRoot}/placeholder`,
moduleResolution: tsModule.ModuleResolutionKind.NodeJs,
};
const declaration = lodash_1(tsConfigJson, "compilerOptions.declaration", false);
if (!declaration)
overrides.declarationDir = null;
if (declaration && !useTsconfigDeclarationDir)
overrides.declarationDir = process.cwd();
// unsetting sourceRoot if sourceMap is not enabled (in case original tsconfig had inlineSourceMap set that is being unset and would cause TS5051)
const sourceMap = lodash_1(tsConfigJson, "compilerOptions.sourceMap", false);
if (!sourceMap)
overrides.sourceRoot = null;
if (preParsedTsconfig) {
const declaration = preParsedTsconfig.options.declaration;
if (!declaration)
overrides.declarationDir = null;
if (declaration && !useTsconfigDeclarationDir)
overrides.declarationDir = process.cwd();
// unsetting sourceRoot if sourceMap is not enabled (in case original tsconfig had inlineSourceMap set that is being unset and would cause TS5051)
const sourceMap = preParsedTsconfig.options.sourceMap;
if (!sourceMap)
overrides.sourceRoot = null;
}
return overrides;
}
@ -20005,7 +20007,8 @@ function parseTsConfig(context, pluginOptions) {
}
const mergedConfig = {};
lodash_14(mergedConfig, getOptionsDefaults(), pluginOptions.tsconfigDefaults, loadedConfig, pluginOptions.tsconfigOverride);
const compilerOptionsOverride = getOptionsOverrides(pluginOptions, mergedConfig);
const preParsedTsConfig = tsModule.parseJsonConfigFileContent(mergedConfig, tsModule.sys, baseDir, getOptionsOverrides(pluginOptions), configFileName);
const compilerOptionsOverride = getOptionsOverrides(pluginOptions, preParsedTsConfig);
const parsedTsConfig = tsModule.parseJsonConfigFileContent(mergedConfig, tsModule.sys, baseDir, compilerOptionsOverride, configFileName);
checkTsConfig(parsedTsConfig);
printDiagnostics(context, convertDiagnostic("config", parsedTsConfig.errors), pretty);
@ -20076,7 +20079,7 @@ function typescript(options) {
context = new ConsoleContext(pluginOptions.verbosity, "rpt2: ");
context.info(`typescript version: ${tsModule.version}`);
context.info(`tslib version: ${tslibVersion}`);
context.info(`rollup-plugin-typescript2 version: 0.17.0`);
context.info(`rollup-plugin-typescript2 version: 0.17.1`);
context.debug(() => `plugin options:\n${JSON.stringify(pluginOptions, (key, value) => key === "typescript" ? `version ${value.version}` : value, 4)}`);
context.debug(() => `rollup config:\n${JSON.stringify(rollupOptions, undefined, 4)}`);
watchMode = process.env.ROLLUP_WATCH === "true";

File diff suppressed because one or more lines are too long

View File

@ -19933,7 +19933,7 @@ function printDiagnostics(context, diagnostics, pretty) {
});
}
function getOptionsOverrides({ useTsconfigDeclarationDir, cacheRoot }, tsConfigJson) {
function getOptionsOverrides({ useTsconfigDeclarationDir, cacheRoot }, preParsedTsconfig) {
const overrides = {
noEmitHelpers: false,
importHelpers: true,
@ -19943,15 +19943,17 @@ function getOptionsOverrides({ useTsconfigDeclarationDir, cacheRoot }, tsConfigJ
outDir: `${cacheRoot}/placeholder`,
moduleResolution: tsModule.ModuleResolutionKind.NodeJs,
};
const declaration = lodash_1(tsConfigJson, "compilerOptions.declaration", false);
if (!declaration)
overrides.declarationDir = null;
if (declaration && !useTsconfigDeclarationDir)
overrides.declarationDir = process.cwd();
// unsetting sourceRoot if sourceMap is not enabled (in case original tsconfig had inlineSourceMap set that is being unset and would cause TS5051)
const sourceMap = lodash_1(tsConfigJson, "compilerOptions.sourceMap", false);
if (!sourceMap)
overrides.sourceRoot = null;
if (preParsedTsconfig) {
const declaration = preParsedTsconfig.options.declaration;
if (!declaration)
overrides.declarationDir = null;
if (declaration && !useTsconfigDeclarationDir)
overrides.declarationDir = process.cwd();
// unsetting sourceRoot if sourceMap is not enabled (in case original tsconfig had inlineSourceMap set that is being unset and would cause TS5051)
const sourceMap = preParsedTsconfig.options.sourceMap;
if (!sourceMap)
overrides.sourceRoot = null;
}
return overrides;
}
@ -20001,7 +20003,8 @@ function parseTsConfig(context, pluginOptions) {
}
const mergedConfig = {};
lodash_14(mergedConfig, getOptionsDefaults(), pluginOptions.tsconfigDefaults, loadedConfig, pluginOptions.tsconfigOverride);
const compilerOptionsOverride = getOptionsOverrides(pluginOptions, mergedConfig);
const preParsedTsConfig = tsModule.parseJsonConfigFileContent(mergedConfig, tsModule.sys, baseDir, getOptionsOverrides(pluginOptions), configFileName);
const compilerOptionsOverride = getOptionsOverrides(pluginOptions, preParsedTsConfig);
const parsedTsConfig = tsModule.parseJsonConfigFileContent(mergedConfig, tsModule.sys, baseDir, compilerOptionsOverride, configFileName);
checkTsConfig(parsedTsConfig);
printDiagnostics(context, convertDiagnostic("config", parsedTsConfig.errors), pretty);
@ -20072,7 +20075,7 @@ function typescript(options) {
context = new ConsoleContext(pluginOptions.verbosity, "rpt2: ");
context.info(`typescript version: ${tsModule.version}`);
context.info(`tslib version: ${tslibVersion}`);
context.info(`rollup-plugin-typescript2 version: 0.17.0`);
context.info(`rollup-plugin-typescript2 version: 0.17.1`);
context.debug(() => `plugin options:\n${JSON.stringify(pluginOptions, (key, value) => key === "typescript" ? `version ${value.version}` : value, 4)}`);
context.debug(() => `rollup config:\n${JSON.stringify(rollupOptions, undefined, 4)}`);
watchMode = process.env.ROLLUP_WATCH === "true";

File diff suppressed because one or more lines are too long

31
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "rollup-plugin-typescript2",
"version": "0.16.2",
"version": "0.17.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -1361,36 +1361,13 @@
}
},
"rollup-plugin-typescript2": {
"version": "github:ezolenko/rollup-plugin-typescript2#b2cb064766829abcd3889eb1cbde9a768b48d39e",
"version": "github:ezolenko/rollup-plugin-typescript2#3840a25e6e94a9271a3cb20e3938f8782412f2c2",
"dev": true,
"requires": {
"fs-extra": "5.0.0",
"fs-extra": "7.0.0",
"resolve": "1.8.1",
"rollup-pluginutils": "2.3.0",
"rollup-pluginutils": "2.3.1",
"tslib": "1.9.3"
},
"dependencies": {
"fs-extra": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz",
"integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==",
"dev": true,
"requires": {
"graceful-fs": "4.1.11",
"jsonfile": "4.0.0",
"universalify": "0.1.2"
}
},
"rollup-pluginutils": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.0.tgz",
"integrity": "sha512-xB6hsRsjdJdIYWEyYUJy/3ki5g69wrf0luHPGNK3ZSocV6HLNfio59l3dZ3TL4xUwEKgROhFi9jOCt6c5gfUWw==",
"dev": true,
"requires": {
"estree-walker": "0.5.2",
"micromatch": "2.3.11"
}
}
}
},
"rollup-pluginutils": {

View File

@ -1,6 +1,6 @@
{
"name": "rollup-plugin-typescript2",
"version": "0.17.0",
"version": "0.17.1",
"description": "Seamless integration between Rollup and TypeScript. Now with errors.",
"main": "dist/rollup-plugin-typescript2.cjs.js",
"module": "dist/rollup-plugin-typescript2.es.js",

View File

@ -3,7 +3,7 @@ import * as tsTypes from "typescript";
import { IOptions } from "./ioptions";
import * as _ from "lodash";
export function getOptionsOverrides({ useTsconfigDeclarationDir, cacheRoot }: IOptions, tsConfigJson?: any): tsTypes.CompilerOptions
export function getOptionsOverrides({ useTsconfigDeclarationDir, cacheRoot }: IOptions, preParsedTsconfig?: tsTypes.ParsedCommandLine): tsTypes.CompilerOptions
{
const overrides = {
noEmitHelpers: false,
@ -15,17 +15,19 @@ export function getOptionsOverrides({ useTsconfigDeclarationDir, cacheRoot }: IO
moduleResolution: tsModule.ModuleResolutionKind.NodeJs,
};
const declaration = _.get(tsConfigJson, "compilerOptions.declaration", false);
if (preParsedTsconfig)
{
const declaration = preParsedTsconfig.options.declaration;
if (!declaration)
(overrides as any).declarationDir = null;
if (declaration && !useTsconfigDeclarationDir)
(overrides as any).declarationDir = process.cwd();
if (!declaration)
(overrides as any).declarationDir = null;
if (declaration && !useTsconfigDeclarationDir)
(overrides as any).declarationDir = process.cwd();
// unsetting sourceRoot if sourceMap is not enabled (in case original tsconfig had inlineSourceMap set that is being unset and would cause TS5051)
const sourceMap = _.get(tsConfigJson, "compilerOptions.sourceMap", false);
if (!sourceMap)
(overrides as any).sourceRoot = null;
// unsetting sourceRoot if sourceMap is not enabled (in case original tsconfig had inlineSourceMap set that is being unset and would cause TS5051)
const sourceMap = preParsedTsconfig.options.sourceMap;
if (!sourceMap)
(overrides as any).sourceRoot = null;
}
return overrides;
}

View File

@ -45,7 +45,8 @@ export function parseTsConfig(context: IContext, pluginOptions: IOptions): tsTyp
const mergedConfig = {};
_.merge(mergedConfig, getOptionsDefaults(), pluginOptions.tsconfigDefaults, loadedConfig, pluginOptions.tsconfigOverride);
const compilerOptionsOverride = getOptionsOverrides(pluginOptions, mergedConfig);
const preParsedTsConfig = tsModule.parseJsonConfigFileContent(mergedConfig, tsModule.sys, baseDir, getOptionsOverrides(pluginOptions), configFileName);
const compilerOptionsOverride = getOptionsOverrides(pluginOptions, preParsedTsConfig);
const parsedTsConfig = tsModule.parseJsonConfigFileContent(mergedConfig, tsModule.sys, baseDir, compilerOptionsOverride, configFileName);
checkTsConfig(parsedTsConfig);

6
tsconfig.base.json Normal file
View File

@ -0,0 +1,6 @@
{
"compilerOptions": {
"declaration": true,
"declarationMap": true,
},
}

View File

@ -1,4 +1,5 @@
{
"extends": "./tsconfig.base",
"compilerOptions": {
"target": "es6",
"noImplicitAny": true,
@ -14,13 +15,12 @@
"strictNullChecks": true,
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"declaration": true,
"declarationMap": true,
"strict": true,
"outDir": "./build",
"allowSyntheticDefaultImports": true
},
"include": [
"src/**/*.ts"
]
],
"exclude": []
}