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