@wrench/roll-typescript
Version:
plugin for bundling TypeScript with support of modular output and declaration bundle
30 lines (24 loc) • 1.01 kB
JavaScript
import { findConfigFile, parseJsonConfigFileContent, ParseReportHost, readConfigFile } from "../host";
import { arrifyInput } from "../util";
import { Project } from "./project";
export function createProject(props, input) {
const ts = props.typescript || require("typescript");
const host = new ParseReportHost(ts);
const configPath = props.tsconfig || findConfigFile(host);
const json = readConfigFile(configPath, host);
const entry = arrifyInput(input.input).map(host.getCanonicalFileName);
json.include = [...entry];
const pcl = parseJsonConfigFileContent(json, host, props.baseCompilerOptions);
const options = Object.assign({}, pcl.options, props.compilerOptions);
const project = new Project({
ts,
options,
fileNames: pcl.fileNames,
currentDirectory: host.currentDirectory,
transformerFactory: props.transformerFactory,
});
return [
project,
new Set(entry.map(project.getCanonicalFileName)),
];
}