framework/js-packages/tsconfig
Sami Mazouz 27fb011bf5
chore: with yarn workspaces we only need a single yarn.lock (#3464)
* chore: yarn workspaces means we only need a single `yarn.lock`
* fix: add a `cache_dependency_path` workflow input
* fix: re-introduce `env.cache_dependency_path`
2022-06-19 19:01:21 +01:00
..
.gitignore Add missing typing packages as dependencies 2021-05-20 22:51:33 +01:00
LICENSE Add MIT license 2021-05-15 00:53:49 +01:00
package.json v1.0.2 2021-09-10 19:16:19 +01:00
README.md Add configuration for global typings (#2) 2021-08-15 20:01:53 +01:00
tsconfig.json Add support for Array.flat() as per core polyfill 2021-09-10 19:08:58 +01:00

Flarum Typescript Config

A standardised tsconfig.json for use in Flarum extensions.

Usage

You'll need to configure a tsconfig.json file to ensure your IDE sets up Typescript support correctly.

You need to install this package as a dev dependency to your extension JS:

npm install --save-dev flarum-tsconfig
yarn add --dev flarum-tsconfig

A baseline tsconfig.json is provided below that you can modify as needed. This file needs to be copied into your extension's js folder for your IDE to apply the correct settings.

{
  // Use Flarum's tsconfig as a starting point
  "extends": "flarum-tsconfig",
  // This will match all .ts, .tsx, .d.ts, .js, .jsx files in your `src` folder
  // and also tells your Typescript server to read core's global typings for
  // access to `dayjs` and `$` in the global namespace.
  "include": ["src/**/*", "../vendor/flarum/core/js/dist-typings/@types/**/*"],
  "compilerOptions": {
    // This will output typings to `dist-typings`
    "declarationDir": "./dist-typings",
    "baseUrl": ".",
    "paths": {
      "flarum/*": ["../vendor/flarum/core/js/dist-typings/*"]
    }
  }
}

You'll also need to ensure that you run composer update in your extension's root directory to ensure that a copy of Flarum core is downloaded to your vendor folder. Remember that vendor should not be committed to Git repositories.