🌎 babel-plugin-intlized-components
Babel plugin for package intlized-components. The primary use case for this plugin is to extract message ids and default messages from all files of a project.
Installation
npm install babel-plugin-intlized-components
# or
yarn add babel-plugin-intlized-components
Usage
Add the plugin to your babel configuration:
{
"plugins": ["babel-plugin-styled-components"]
}
import babel from '@babel/core';
const { metadata: result } = babel.transformFileSync(fileName, babelConfig);
const { translations } = result['intlized-components'];
Docs
Options
customImportKey
If you don't import createDict
from intlized-components
directly, you can set a custom import key in the babel plugin, so that createDict
is detected anyway.
Example:
In babel configuration:
{
"plugins": [
[
"babel-plugin-styled-components",
{ "customImportKey": "my-custom-import" }
]
]
}
In a file:
import { createDict } from 'my-custom-import';
const dict = createDict(...);
ignoreImport
If this option is set to true
, imports will not be verified. This means that all functions named createDict
will be transformed no matter what the import is. While this option might be helpful in some cases, you need to be careful as you should not name other functions createDict
.
autoResolveKey
Normally you have to set a key as the first parameter and a message object as the second parameter for createDict
. If you set this option to the base path of your application, the babel plugin will derive the first parameter from the file name, so that you can call createDict
with a message object only.
Example:
Without autoResolveKey
option:
const dict = createDict('welcome.Welcome', {
hello: 'Hello',
});
With autoResolveKey
option:
In babel configuration:
{
"plugins": [
["babel-plugin-styled-components", { "autoResolveKey": "path-to-my-app" }]
]
}
In file welcome/Welcome.js
:
const dict = createDict({
hello: 'Hello',
});
Hint: You can even set a key manually if this option is on, so you can mix up auto resolved and manually set keys.
License
This package is released under the MIT License.