UNPKG

@wrench/roll-typescript

Version:

plugin for bundling TypeScript with support of modular output and declaration bundle

30 lines (24 loc) 1.01 kB
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)), ]; }