A Broccoli plugin which compiles TypeScript files.
$ npm install broccoli-typescript-compiler --save-dev
var typescript = require("broccoli-typescript-compiler").default;
var cjsTree = typescript(inputTree, {
tsconfig: {
compilerOptions: {
module: "commonjs",
target: "es5",
moduleResolution: "node",
newLine: "LF",
rootDir: "src",
outDir: "dist",
sourceMap: true,
declaration: true,
},
files: ["src/index.ts", "src/tests/**"],
},
throwOnError: false,
annotation: "compile program",
});
tsconfig:
- default (when ommited): will find the nearest
tsconfig
relative to where the BroccoliTypeScriptCompiler is invoked. - as string: a absolute path to a config tsconfig file
- as config object: See: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html
annotation:
An optional string, which when provide should be a descriptive annotation. Useful for debugging, to tell multiple instances of the same plugin apart.
throwOnError
An optional boolean, defaulting to false
. If set to true
, will cause the build to break on errors.
note: if process.env.NODE_ENV === 'production'
is true, throwOnError
will default to true
.
This outputs only the emitted files from the compiled program.
const { TypescriptCompiler } = require("broccoli-typescript-compiler");
let compiled = new TypescriptCompiler(input, options);
This outputs only the emitted files from the compiled program.
const { default: typescript } = require("broccoli-typescript-compiler");
let compiled = typescript(src, options);
This selects only ts files from the input to compile and merges emitted files with the non ts files in the input.
const { filterTypescript } = require("broccoli-typescript-compiler");
let output = filterTypescript(input, options);
- Initialize git submodules.
git submodule update --init
- Update
typescript
inpackage.json
- Run
yarn run generate-tsconfig-interface
- Update
vendor/typescript
.cd vendor/typescript && git fetch --tags && git checkout v[new-version-of-typescript]
- Commit all of the above changes
- Run
yarn test
. There may be some changes needed to the tests to accomidate changes in TypeScript.