Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TypeScript configuration abstractions #32

Open
FND opened this issue Feb 19, 2018 · 1 comment
Open

TypeScript configuration abstractions #32

FND opened this issue Feb 19, 2018 · 1 comment

Comments

@FND
Copy link
Contributor

FND commented Feb 19, 2018

b4b8690 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"`
            }
        }
    });

    (according to TypeScript JSX docs, React is still hard-coded - yet docs for compiler options lists jsxFactory as a way to customize this)

("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.

@FND
Copy link
Contributor Author

FND commented May 15, 2020

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant