Skip to content

Latest commit

 

History

History
76 lines (51 loc) · 4.02 KB

README.md

File metadata and controls

76 lines (51 loc) · 4.02 KB

vite-plugin-flow

Support Flow static type checking in Vite

Install

npm install @bunchtogether/vite-plugin-flow --save-dev

or

yarn add @bunchtogether/vite-plugin-flow --dev

Usage

import { flowPlugin, esbuildFlowPlugin } from '@bunchtogether/vite-plugin-flow';

export default {
  optimizeDeps: {
    esbuildOptions: {
      plugins: [esbuildFlowPlugin()]
    }
  },
  plugins: [
    flowPlugin()
  ]
}

API

Table of Contents

flowPlugin

Create a Vite plugin object

Parameters

  • options Object? Filter options (optional, default {include:/\.(flow|jsx?)$/,exclude:/node_modules/,flow:{all:false,pretty:false,ignoreUninitializedFields:false}})

    • options.include (string | Regexp | Array<(string | Regexp)>) Strings and/or regular expressions matching file paths to include (optional, default /\.(flow|jsx?)$/)
    • options.exclude (string | Regexp | Array<(string | Regexp)>) Strings and/or regular expressions matching file paths to exclude (optional, default /node_modules/)

Returns VitePlugin Returns esbuild plugin object

esbuildFlowPlugin

Create an esbuild plugin object

Parameters

  • filter RegExp Regular expression matching the path a files to be processed (optional, default /\.(flow|jsx?)$/)

  • loaderFunction Function Function that accepts the file path and returns the esbuild loader type (optional, default (path)=>(/\.jsx$/.test(path)?'jsx':'js'))

  • flowOptions Object Options to pass to flow-remove-types (optional, default {all:false,pretty:false,ignoreUninitializedFields:false})

    • flowOptions.all boolean If true, bypasses looking for an @flow pragma comment before parsing. (optional, default false)
    • flowOptions.pretty boolean If true, removes types completely rather than replacing with spaces. (optional, default false)
    • flowOptions.ignoreUninitializedFields boolean If true, removes uninitialized class fields (foo;, foo: string;) completely rather than only removing the type. THIS IS NOT SPEC COMPLIANT! Instead, use declare foo: string; for type-only fields. (optional, default false)

Returns EsbuildPlugin Returns esbuild plugin object