
Security News
Crates.io Users Targeted by Phishing Emails
The Rust Security Response WG is warning of phishing emails from rustfoundation.dev targeting crates.io users.
@vtex/babel-plugin-react-intl
Advanced tools
Extracts string messages for translation from modules that use React Intl.
Extracts string messages for translation from modules that use React Intl.
This Babel plugin works with React Intl v2.x
$ npm install babel-plugin-react-intl
This Babel plugin only visits ES6 modules which import
React Intl.
The default message descriptors for the app's default language will be extracted from: defineMessages()
, <FormattedMessage>
, and <FormattedHTMLMessage>
; all of which are named exports of the React Intl package.
If a message descriptor has a description
, it'll be removed from the source after it's extracted to save bytes since it isn't used at runtime.
.babelrc
(Recommended).babelrc
{
"plugins": [
[
"react-intl",
{
"messagesDir": "./build/messages/"
}
]
]
}
messagesDir
: The target location where the plugin will output a .json
file corresponding to each component from which React Intl messages were extracted. If not provided, the extracted message descriptors will only be accessible via Babel's API.
extractSourceLocation
: Whether the metadata about the location of the message in the source file should be extracted. If true
, then file
, start
, and end
fields will exist for each extracted message descriptors. Defaults to false
.
moduleSourceName
: The ES6 module source name of the React Intl package. Defaults to: "react-intl"
, but can be changed to another name/path to React Intl.
overrideIdFn
: A function with the signature (id: string, defaultMessage: string, description: string|object) => string
which allows you to override the ID both in the extracted javascript and messages.
removeDefaultMessage
: Remove defaultMessage
field in generated js after extraction.
additionalComponentNames
: Additional component names to extract messages from, e.g: ['FormattedFooBarMessage']
. NOTE: By default we check for the fact that FormattedMessage
& FormattedHTMLMessage
are imported from moduleSourceName
to make sure variable alias works. This option does not do that so it's less safe.
extractFromFormatMessageCall
: Opt-in to extract from intl.formatMessage
call with the same restrictions, e.g: has to be called with object literal such as intl.formatMessage({ id: 'foo', defaultMessage: 'bar', description: 'baz'})
The extract message descriptors are available via the metadata
property on the object returned from Babel's transform()
API:
require('@babel/core').transform('code', {
plugins: ['react-intl'],
}); // => { code, map, ast, metadata['react-intl'].messages };
FAQs
Extracts string messages for translation from modules that use React Intl.
We found that @vtex/babel-plugin-react-intl demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 54 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The Rust Security Response WG is warning of phishing emails from rustfoundation.dev targeting crates.io users.
Product
Socket now lets you customize pull request alert headers, helping security teams share clear guidance right in PRs to speed reviews and reduce back-and-forth.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.