Skip to content

TypeScript configuration abstractions #32

@FND

Description

@FND

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions