@jpex-js/babel-plugin v1.9.0
babel
Babel plugin for jpex
usage
Jpex uses a babel plugin to infer type interfaces. Your babel config should look something like this:
{
presets: [ '@babel/preset-typescript' ],
plugins: [ 'jpex/babel-plugin' ]
}options
identifier
string | string[]The variable name of your jpex instance that the babel plugin should look for. By default it is just jpex.
For example in your app you may have something like:
const ioc = jpex.extend();
ioc.factory<Foo>(fooFn);Then you should set the identifier property to 'ioc' or [ 'ioc', 'jpex' ]
publicPath
string | boolean;The default behavior when creating string literals for types is to use the file path + the type name.
For example, if you import MyDep from 'src/types/common', jpex will name it type:/src/types/common/MyDep.
However, sometimes this is not ideal, such as when creating a node module package. (When you import a type from a node module, jpex will just use the package name as the file path)
publicPath allows you to set the path prefix. For example, setting it to myPackageName would result in a naming scheme of type:/myPackageName/MyDep.
If you set publicPath to true, it will attempt to load your package.json and read the name property.
pathAlias
{
[key: string]: string
}Creates aliases for certain paths. This is currently a very basic implementation. If an import starts with a pathAlias, it'll replace it with the given alias.
For example:
{
'@': '/src'
}Will convert
import { MyService } from "@/services";into
import { MyService } from "/src/services";This is only in terms of resolving a dependency's name, it doesn't actually update the import path.
omitIndex
boolean;When registering a dependency in an index file, the index will be omitted.
For example:
// /src/services/index.ts
type MyService = any;
jpex.service<MyService>(myService);This would normally produce a type name of type:/src/services/index/MyService. With omitIndex it will create type:/src/services/MyService.