b4b8690d2751b54efaff95d09fa137c4b570f055 introduced experimental TypeScript support, though without any abstraction/simplification WRT TypeScript-specific configuration (i.e. merely passing through the respective config object, if any).
strict mode (strict: true in compiler options)
line endings (newLine: "lf" in compiler options)
module format: generating ES modules currently requires both module: "es6" in compiler options and format: "es" in faucet.config.js, which seems like unnecessary redundancy
transpilation (target: "es5" in compiler options)
JSX: elsewhere @tillsc suggested we add explicit support for TSX:
let ts = require("rollup-plugin-typescript2");
ts({
tsconfigDefaults: {
compilerOptions: {
jsxFactory: bundleConfig.jsx.pragma // e.g. `"createElement"`
}
}
});
("compiler options" refers to compilerOptions in tsconfig.json)
We should consider adding defaults and/or simplified configuration options for such common use cases. However, it's not clear what this means for tsconfig.json, which is most likely expected by various tools (e.g. IDEs) and thus needs to be maintained anyway? Perhaps tsconfig.json should (optionally) be auto-generated on startup.
In conversation with @larsrh, we concluded that it might be worth considering some sort of "quick [unsafe] mode" to omit type checking (i.e. only transpile to JS), possibly using Sucrase under the hood.
b4b8690d2751b54efaff95d09fa137c4b570f055 introduced experimental TypeScript support, though without any abstraction/simplification WRT TypeScript-specific configuration (i.e. merely passing through the respective config object, if any).
strict: true
in compiler options)newLine: "lf"
in compiler options)module: "es6"
in compiler options andformat: "es"
infaucet.config.js
, which seems like unnecessary redundancytarget: "es5"
in compiler options)JSX: elsewhere @tillsc suggested we add explicit support for TSX:
(according to TypeScript JSX docs,
React
is still hard-coded - yet docs for compiler options listsjsxFactory
as a way to customize this)("compiler options" refers to
compilerOptions
intsconfig.json
)We should consider adding defaults and/or simplified configuration options for such common use cases. However, it's not clear what this means for
tsconfig.json
, which is most likely expected by various tools (e.g. IDEs) and thus needs to be maintained anyway? Perhapstsconfig.json
should (optionally) be auto-generated on startup.