mlh-tsd
Version:
Check TypeScript type definitions
27 lines (26 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const typescript_1 = require("../../libraries/typescript");
/**
* Load the configuration settings.
*
* @param pkg - The package.json object.
* @returns The config object.
*/
exports.default = (pkg, cwd) => {
const pkgConfig = pkg.tsd || {};
const tsConfigCompilerOptions = getOptionsFromTsConfig(cwd);
const packageJsonCompilerOptions = parseCompilerConfigObject(pkgConfig.compilerOptions || {}, cwd);
return Object.assign(Object.assign({ directory: 'test-d' }, pkgConfig), { compilerOptions: Object.assign(Object.assign(Object.assign({ strict: true, jsx: typescript_1.JsxEmit.React, lib: ['lib.es2017.d.ts'], module: typescript_1.ModuleKind.CommonJS, target: typescript_1.ScriptTarget.ES2017 }, tsConfigCompilerOptions), packageJsonCompilerOptions), { moduleResolution: typescript_1.ModuleResolutionKind.NodeJs, skipLibCheck: false }) });
};
function getOptionsFromTsConfig(cwd) {
const configPath = typescript_1.findConfigFile(cwd, typescript_1.sys.fileExists);
if (!configPath) {
return {};
}
return typescript_1.parseJsonSourceFileConfigFileContent(typescript_1.readJsonConfigFile(configPath, typescript_1.sys.readFile), typescript_1.sys, path.basename(configPath)).options;
}
function parseCompilerConfigObject(compilerOptions, cwd) {
return typescript_1.parseJsonConfigFileContent({ compilerOptions: compilerOptions || {} }, typescript_1.sys, cwd).options;
}