# Usage
Use in your babel plugin as follows. It works the same as @babel/helpers addHelper
,
so you can use it anywhere in your visitor.
I made it like @babel/helpers
, so it can be used in the same way except loading helpers.
@babel-helpers#usage(inside a plugin)
Only three things to do.
- Define
UDF helpers
- Define
- Loading helpers in
pre()
- Loading helpers in
- Use
addUDFHelpers
like addHelpers of @babel/helpers
- Use
# Try
# 1. Define Helpers
# 2. Loading helpers in pre()
import { useDangerousUDFHelpers } from 'babel-udf-helpers';
/** 1. Define UDF helpers */
import helpers from './helpers';
export default function({types: t}){
pre(){
/** 2. Loading helpers in pre() */
useDangerousUDFHelpers(this, { helpers });
},
visitor: {
/** something */
}
}
# 3. Use addUDFHelpers like addHelpers of @babel/helpers
import { useDangerousUDFHelpers } from 'babel-udf-helpers';
/* 1. Define UDF helpers */
import helpers from './helpers';
export default function({types: t}){
pre(){
/* 2. Loading helpers in pre() */
useDangerousUDFHelpers(this, { helpers });
},
visitor: {
Program(path){
/* 3. Use addUDFHelpers like addHelpers of @babel/helpers */
const identifier = this.addUDFHelper("programHelper")
},
ImportDeclaration(path) {
/* 3. Use addUDFHelpers like addHelpers of @babel/helpers */
const identifier = this.addUDFHelper("importHelper")
}
}
}
# Tips
Once the helper is loaded, it will be retained until the execution of your babel-plugin.
If you want to delete the helper loaded in the middle of traverse, please execute clearAllUDFHelpers
.
import { clearAllUDFHelpers } from 'babel-udf-helpers'
clearAllUDFHelpers();
this.addUDFHelper("programHelper") /* # => ReferenceError Unknown helper programHelper */
this.addHelper("typeof") /* Not Error */
WARNING
- Helpers defined in @babel/helpers do not disappear.
← Motivation API →